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 wi