diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2009-11-24 16:57:35 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2009-11-24 16:57:35 +0000 |
commit | de92e01861fe5199cb0f5e772c199117a97fe3bb (patch) | |
tree | 85503a22553412d45f48aec07e73cbef4eaa08ff | |
parent | 649d67fad9d3d59eeb8014ff1cff11512f23b2f1 (diff) |
Update to xf86-video-radeonhd 1.3.0
Tested by killi@ on a HD3200.
74 files changed, 11235 insertions, 5926 deletions
diff --git a/driver/xf86-video-radeonhd/ChangeLog b/driver/xf86-video-radeonhd/ChangeLog index 9232fc164..5b39e240d 100644 --- a/driver/xf86-video-radeonhd/ChangeLog +++ b/driver/xf86-video-radeonhd/ChangeLog @@ -1,3 +1,1206 @@ +commit 8cbff7bfa1201faa1e5dbf7019f17c2f4b1d2b7f +Author: Matthias Hopf <mhopf@suse.de> +Date: Fri Oct 9 17:42:45 2009 +0200 + + Bump to 1.3.0. Update README. + +commit bd2145d8fab854fb5617abd09f7517321d2b35be +Author: Matthias Hopf <mhopf@suse.de> +Date: Fri Oct 9 17:42:30 2009 +0200 + + pm: Comment out currently unused variable. + +commit 5c437ecd5d06e1b214d2a309dfed60fadf071829 +Author: Matthias Hopf <mhopf@suse.de> +Date: Fri Oct 9 17:31:29 2009 +0200 + + README.coding: Add rhd_acpi.[ch] and atombios_rev.h + +commit 0c8cc053741d7113254776d6c64745ecc5a1256e +Author: Matthias Hopf <mhopf@suse.de> +Date: Fri Oct 9 11:25:06 2009 +0200 + + i2c: Hardware may need a while to indicate availability to the host + + Fixes fdo #24330. + +commit 57b97e0fefd7e5a0069573befabdb28ee0094f8d +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Oct 8 17:10:05 2009 +0200 + + pm: Improve wording of lowPowerModeEngineClock logging. + +commit a1cd56ddd2955ce74cccc4adcd482feda0985b72 +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Oct 8 16:59:55 2009 +0200 + + pm: Ignore validation when setting negative engine/mem frequencies. + +commit 5d5d8e3d8655a7adbc17a548372bc0fad6d67cb7 +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Oct 8 16:57:21 2009 +0200 + + pm: Use minimum known working frequency instead of default/2. + +commit 0a94f8eb56ec0155864858f8aefc4c64d3e1bf77 +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Oct 8 16:02:46 2009 +0200 + + pm: Do NOT set idle engine clocks to default/2 unless ForceLowPowerMode is used. + + Accidentally, we set this by default since commit fedddb7. + Using different engine clocks has side effects that are not handled yet. + +commit eebdbf0a9723c79975015354830550f7dfb57509 +Author: Egbert Eich <eich@freedesktop.org> +Date: Thu Oct 8 09:15:32 2009 +0200 + + Improve DAC load detection on RS780. + + Increase delay before reading out DAC autodetect status. + +commit 422ac06b69cfcbfbaa802fdc916d3b87f40eeb41 +Author: Christian König <deathsimple@vodafone.de> +Date: Thu Oct 8 00:04:01 2009 +0200 + + Silence audio stream option. + + This patch adds an option to play silence instead of playing no sound at all. + This fixes some issues where a receiver needs 1-2 seconds to adjust to a new audio stream. + This option can be enabled by setting AudioStreamSilence in xorg.conf or by xrandr. + +commit 3cef2a6553359b063b760a2f436ce84365c60682 +Author: Egbert Eich <eich@linux-21vw.site> +Date: Wed Jul 1 14:06:27 2009 +0200 + + Improve test for disabled differential clock driver. + +commit 392a13923eb4d44a8bdb204922230e126b188fae +Author: Egbert Eich <eich@freedesktop.org> +Date: Wed Oct 7 12:23:56 2009 +0200 + + Properites: Get HW for Backlight setting on every query. + + * Backlight brightness may be changed from underneath (ie. thru hot keys). + Thus the HW needs to be reprobed every time. + * This patch adds ACPI backlight support also for AtomBIOS based mode + setting. + +commit f695445b386050de346211baec5e487813187cfd +Author: David Morrison <dave@bnl.gov> +Date: Tue Oct 6 11:13:26 2009 -0700 + + LUT: Fix syntax error in 59085c4a + +commit 59085c4aa0f420a56699c0a77aa3fd6883b41efe +Author: Yang Zhao <yang@yangman.ca> +Date: Tue Oct 6 10:47:38 2009 -0700 + + LUT: Fix RHDLUTCopyForRR() not actually modifying LUT + +commit 8b3561d2aabeed34c77d9845e2f9814de8375bed +Author: Egbert Eich <eich@freedesktop.org> +Date: Tue Oct 6 19:30:32 2009 +0200 + + ID: Added quirk entry for HIS Excalibur Radeon XT1650 Pro IceQ 256M + + This card reports 2 DVI ports but has only 1 VGA and 1 DVI. + Also HPD isn't working on the DVI port. + +commit 0a79a28c5552a437e4bc4876a2aac9ce8c062485 +Author: Egbert Eich <eich@freedesktop.org> +Date: Tue Oct 6 19:29:44 2009 +0200 + + PM: Removed unnneeded define. + +commit 4758ba31d49dbafb1e8c9e19aad84d41183c7f19 +Author: Egbert Eich <eich@freedesktop.org> +Date: Mon Oct 5 22:19:27 2009 +0200 + + Add ACPI controlled Backlight support for Linux. + + ACPI Backlight support is system specific and only implemented for + Linux so far. + +commit be7216fca954396d92b94335ccb18d22c354c195 +Author: Matthias Hopf <mhopf@suse.de> +Date: Wed Sep 30 15:46:46 2009 +0200 + + randr: Select virtual large enough for typical dual-monitor situations + + Unless we're able to shrink/enlarge FB on the fly (TTM etc.), allocate + large enough (TM) virtual size for general use cases. + +commit b9648ff4f60a55e9997afc574c91b1f92645f7c2 +Author: Matthias Hopf <mhopf@suse.de> +Date: Wed Sep 30 15:41:58 2009 +0200 + + RV740: Choose shadowfb by default. + +commit eb1fc6c0070077a23a4eb20c934e2743b6661b9b +Author: Matthias Hopf <mhopf@suse.de> +Date: Wed Sep 30 12:48:55 2009 +0200 + + Fix missing parenthesis. + + As ! has a higher precedence than &, this commit changes the semantics. This + could fix some obscure bugs, but could also regress. + +commit 136dbca77332bf119768b0719ed069d4fa1c74a9 +Author: Matthias Hopf <mhopf@suse.de> +Date: Wed Sep 30 12:16:26 2009 +0200 + + Disable DRI by default if shadowfb is explicitly selected. + +commit 209aa4c76330d15c387185f61be008b412aae4b3 +Author: Matthias Hopf <mhopf@suse.de> +Date: Wed Sep 30 12:04:05 2009 +0200 + + RV740: disable DFS and Composite + + Small transfers seem problematic on all rv740 chips, and composite cannot be + disabled per size, so until we can find a solution, disable them. + +commit 21f033c1f812598d5e80d5bc9462807244f0d037 +Author: Matthias Hopf <mhopf@suse.de> +Date: Mon Sep 7 16:06:04 2009 +0200 + + Add quirk table entry for Wyse R-Class. + +commit ee508b375ba6a1fe132cb3bd8cf461445c814ea8 +Author: Hans Ulrich Niedermann <hun@n-dimensional.de> +Date: Sat Sep 19 15:15:35 2009 +0200 + + Hide README, radeon.man non-updates if --enable-shave + + If configured with --enable-shave (default), hide the updates + to README, radeon.man if they result in zero changes. + + If they result in changes, the changes will still be shown. + + On --disable-shave, the commands generating README.new and radeon.man.new + will always be shown. + +commit b7a50a6f00bb6d207f5240f00cf83fbbd56bbf60 +Author: Hans Ulrich Niedermann <hun@n-dimensional.de> +Date: Fri Sep 18 23:23:32 2009 +0200 + + Fix RHDRegWrite macro invocation breakage + + This appears to be an obvious fix to a bug introduced with bab7c5f9. + + Neither ignoring the blue component nor discarding the calculation + does made sense to me, and the obvious explanation for that would + be a misplaced parenthesis. + +commit ae41ab2fe49ca456c4fb23859af8683c32c2429c +Author: Matthias Hopf <mhopf@suse.de> +Date: Wed Sep 16 17:22:28 2009 +0200 + + Add quirk table entry for ATI Radeon X1550. + +commit 37ccdde4fef03f132ed2cd5cb6797f83f2b7f41e +Author: Matthias Hopf <mhopf@suse.de> +Date: Mon Sep 14 14:21:35 2009 +0200 + + Add ugly hack for uint32_t to rhd_pm as well. + +commit d9d0cecbfa54a58c2553e1750ee8124e178679b0 +Author: Matthias Hopf <mhopf@suse.de> +Date: Mon Sep 14 13:16:46 2009 +0200 + + Fix typo in non-DRI case. + +commit ca1e34f85387bdf3eb1727d2fb628e4774f893a1 +Author: Luc Verhaegen <libv@skynet.be> +Date: Tue Sep 8 17:22:57 2009 +0200 + + Revert "Fix softlocks on rs690. Idle commands have to be flushed to be of any use." + + This reverts commit d8329927aaac5f2d4949785951326ebc782bc420. + +commit d934165ce11d5c8abfe577a72f57cc97c4a6e734 +Author: Luc Verhaegen <libv@skynet.be> +Date: Tue Sep 8 17:20:41 2009 +0200 + + Revert "More idle/flush swaps." + + This reverts commit b3f16ffdeb95fcd07f773756a563a5873647a760. + + When looking at this code in depth, it is clear that these changes make the + sequence of commands useless. + +commit b3f16ffdeb95fcd07f773756a563a5873647a760 +Author: Matthias Hopf <mhopf@suse.de> +Date: Tue Sep 8 16:53:50 2009 +0200 + + More idle/flush swaps. + +commit d8329927aaac5f2d4949785951326ebc782bc420 +Author: Marc Dietrich <marvin24@gmx.de> +Date: Tue Sep 8 15:32:38 2009 +0200 + + Fix softlocks on rs690. Idle commands have to be flushed to be of any use. + +commit b00c0a75a97136aaae887580a51acefc25ce7c4b +Author: Yang Zhao <yang@yangman.ca> +Date: Sun Sep 6 21:42:40 2009 -0700 + + LUT: Make sure LUT_RW_INDEX is reset to 0 before loading LUT + +commit 57916f27c08122b6aaea0da44c0ba21634706dce +Author: Yang Zhao <yang@yangman.ca> +Date: Sun Sep 6 15:53:57 2009 -0700 + + LUT: Use DC_LUT_30_COLOR for saving/restoring LUT + +commit bab7c5f97ddcd23772e6fdd66084f791c30218cd +Author: Yang Zhao <yang@yangman.ca> +Date: Sun Sep 6 15:31:15 2009 -0700 + + LUT: Change internal functions to reflect hardware + + Existing implementation of LUT setter uses a LoadPalette()-like + function signature, where as the actual hardware is more accurately + reflected by RandR style gamma setter. On a RandR gamma adjustment + call, this results the following sequence of frivolous conversions: + + (u16*,u16*,u16*) -> LOCO* -> (u16*,u16*,u16*) + + New implementation changes the LUT setter to accept a triplet of CARD16*, + and move the LoadPalette()-specific logic to RHDLoadPalette(). + + A new rhdLUTSetRow() function is added, which deals with setting only + specific rows of a LUT. LUTxSet() previously made bad assumptions in + these cases. + +commit 27cfbaa3c34844771b5a4262a5deaf71b79cb6bc +Author: Matthias Hopf <mhopf@suse.de> +Date: Wed Sep 2 16:45:12 2009 +0200 + + atombios.h prohibits -std=c99 due to unnamed unions + +commit fa6312784e3a03afb17ec1ea5e0e1912ca34d2b9 +Author: Marc Dietrich <marvin24@gmx.de> +Date: Fri Aug 28 09:07:34 2009 +0200 + + silence some compiler warnings + + This patch silences some compile warnings + mostly comming from C++ style comments. + + I left the Atombios stuff untouched. + +commit f7ad9380b7e5af6b0c85a5423ab5b7a31f08fd8c +Author: Matthias Hopf <mhopf@suse.de> +Date: Tue Sep 1 16:17:11 2009 +0200 + + Fix segfault due to missing Card NULL check. + +commit f047271abb94226df0076f3715c960e5b3c45b06 +Author: Matthias Hopf <mhopf@suse.de> +Date: Tue Sep 1 14:54:04 2009 +0200 + + Also combine outputs if only the second of them has .dual set. + + Additionally, sometimes the VGA output is listed before the DVI-I. + Previously these outputs were not combined. + +commit 9ca0fc45ceee43003a983176301edde0bcaad2fe +Author: Matthias Hopf <mhopf@suse.de> +Date: Fri Aug 28 17:12:06 2009 +0200 + + Add atombios_rev.h to files list. + +commit fe7dbc2484edcf92944c11dde50b50e5b21f0bad +Author: Matthias Hopf <mhopf@suse.de> +Date: Tue Aug 18 12:28:54 2009 +0200 + + Consider Backlight property to be a known good property now. + +commit 78b6ed065aa6bc9bd66a20665daad9849e3696e3 +Author: Yang Zhao <yang@yangman.ca> +Date: Tue Aug 25 14:52:21 2009 -0700 + + Put back logging of PCI IDs not in database during probing. + + Revert of 45e733556671e78adbb2afafd6b98a461bb29825 with modifications. + That was the only place were users are informed of the maillinglist, so + removing it was a bad idea. + +commit 45e733556671e78adbb2afafd6b98a461bb29825 +Author: Yang Zhao <yang@yangman.ca> +Date: Mon Aug 17 16:39:34 2009 -0700 + + Do not log about "Unknown card detected" when AtomBIOS is available + + There's a lot of confusion about this message; time to kill it now that + AtomBIOS modesetting is significantly more stable. + +commit 10133f5d04c2e709c7cf2ed3d6dcd16b13b96607 +Author: Yang Zhao <yang@yangman.ca> +Date: Mon Aug 17 16:27:42 2009 -0700 + + Use DRM and EXA by default on r6xx/r7xx + + Manpage updated accordingly. + +commit d44b359c7b12236f0045734bcc42de397409ab9f +Author: Yang Zhao <yang@yangman.ca> +Date: Mon Aug 17 16:21:52 2009 -0700 + + Fallback to ShadowFB on r6xx/r7xx if DRI pre-init fails + +commit ed98d7311d021849993ac764b2caffd6ddceeb2a +Author: Yang Zhao <yang@yangman.ca> +Date: Wed May 6 14:22:13 2009 -0700 + + Make EXA the default AccelMethod on r5xx + + Signed-off-by: Yang Zhao <yang@yangman.ca> + +commit 865215c800f50d8718544acf2af222c5f2ef777a +Author: Matthias Hopf <mhopf@suse.de> +Date: Fri Aug 14 12:44:50 2009 +0200 + + Non-existent AtomBIOS command tables should issue a warning only. + + This is not fatal and sometimes even anticipated. + +commit be2c65fa35e8f9ae04e799f43400822478d764d2 +Author: Alex Deucher <alexdeucher@gmail.com> +Date: Wed Aug 5 01:01:07 2009 -0400 + + rs880: enable accel + +commit 62e60e31db474e69dbb2dcee2838cb58039c1be6 +Author: Alex Deucher <alexdeucher@gmail.com> +Date: Mon Aug 3 16:02:43 2009 -0400 + + r7xx: add some new pci ids + +commit d0ff1c5823b3c186dd80fb65105b62bff28630e6 +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Jul 30 17:16:14 2009 +0200 + + INSTALL: xorgversion.m4 is obsolete for a long time already. + +commit 2d73df84b71378bc427054397d936e66ceea6769 +Author: Matthias Hopf <mhopf@suse.de> +Date: Mon Jul 27 19:08:11 2009 +0200 + + Fix logic bug in sideport memory detection. + +commit f6c57ac9630d1bd8d4e417ae1a05a1abd1573520 +Author: Matthias Hopf <mhopf@suse.de> +Date: Mon Jul 27 18:11:46 2009 +0200 + + MC: Major overhaul for RS600, RS690, RS760, RS780, RS880. + + Use same registers and register spaces as radeon now. + +commit 83ed13f303538197ab73a02cdb68b4624d15d8e2 +Author: Matthias Hopf <mhopf@suse.de> +Date: Mon Jul 27 17:32:59 2009 +0200 + + Rename registers in PCIE space. + +commit b5911fd908efe63933f620ec39511444c5f4964f +Author: Matthias Hopf <mhopf@suse.de> +Date: Mon Jul 27 15:56:40 2009 +0200 + + RS690 MC idle: Wait for system idle instead of sequencer idle. + + Inspired by radeon code. + +commit 050f523309063d8e836169014dd4f6a991f555b7 +Author: Matthias Hopf <mhopf@suse.de> +Date: Mon Jul 27 11:48:31 2009 +0200 + + Typo. + +commit da5b9c2fb0338e616f5376b6e40b4531fa3d7e1c +Author: Matthias Hopf <mhopf@suse.de> +Date: Mon Aug 3 17:17:44 2009 +0200 + + Fix autoconf issues. + + Apparently, autoconf 2.64 has "interesting" issues with spaces in double + quoted strings, as used in configure.ac. Change that to parantheses. + Based on a patch by Jens Lody <radeonhd@jenslody.de>. + + Additionally, autogen.sh didn't --force so far. + +commit 9cabfb076b874f9ab17bb4d219ac492d55e77abb +Author: Yang Zhao <yang@yangman.ca> +Date: Mon Jul 27 23:08:42 2009 -0700 + + Xv: Make color space selectable on r6xx/r7xx + + Add functionality to switch between Rec.601 and Rec.709 color space + conversion constants. + + Default behaviour is to use Rec.709 for videos 928px or wider, + and Rec.601 otherwise. Force a particular color space by setting the + new XV_COLORSPACE attribute to 1 (Rec.601) or 2 (Rec.709). A value of 0 + means do auto-detection. + + man page updated accordingly. + + This is a follow-up to bug #22901. + +commit ca21df5b3583c64cd9f78d449b689d4f48158002 +Author: Dave Airlie <airlied@redhat.com> +Date: Tue Jul 28 15:22:41 2009 +1000 + + radeonhd: change to using ABI version check + +commit d389503eace03c0d8adf2028ade099b7a7f38a8a +Author: Dave Airlie <airlied@redhat.com> +Date: Tue Jul 28 13:39:32 2009 +1000 + + radeonhd: further RAC/resources changes + +commit e688cffa33ececfef8630c05380f93d9e38b3edf +Author: Dave Airlie <airlied@redhat.com> +Date: Tue Jul 28 13:32:35 2009 +1000 + + radeonhd: update for resources/RAC API removal + +commit d19a10b753d3a235cda21246c1b1721673fe1061 +Author: Matthias Hopf <mhopf@suse.de> +Date: Fri Jul 24 16:01:30 2009 +0200 + + Work around ParseTable returning CD_SUCCESS if the command table doesn't exist + + Typical example: GET_MEMORY_CLOCK doesn't exist, and some random value that + happens to be stored in the call struct is considered to be the correct value. + +commit 3d031afba8c23b7099d32b97a16ccdf06a906fdd +Author: Matthias Hopf <mhopf@suse.de> +Date: Fri Jul 24 15:30:39 2009 +0200 + + Validate current clocks - some AtomBIOSes provide broken values. + +commit eabbde4e4cc8fa2bd9f3f1f347e557b6b1210f0d +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Jul 23 18:52:39 2009 +0200 + + Fix C++ comments warnings in reverse engineered AtomBIOS. + +commit baa8d6e2de33b0b4f7276af86b701bf2f16452bc +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Jul 23 18:48:42 2009 +0200 + + Add check for -Wno-unknown-pragmas in configure.ac. + +commit 6f32189092c30d05452063367a440a59ae920f50 +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Jul 23 18:34:19 2009 +0200 + + Import known good chip settings from AtomBIOS. + + Include reverse engineered AtomBIOS addon header. + Pragmas in the header are needed for AtomDis. + +commit 0684714cc2542b37248f746c20f561b5c577b2c4 +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Jul 23 16:54:25 2009 +0200 + + Remove warnings in rhd_pm.c on 32bit. + +commit e5e54f76d74bb86ce9436448cee27354e58e9b5d +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Jul 23 16:51:27 2009 +0200 + + Consolidate structures in rhd_pm.c and rhd_atombios.c. + + Also nuke copy routine for power states. + +commit 9c66f5fbd43a42db4f4843abafd0e103551171a8 +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Jul 23 15:44:22 2009 +0200 + + Improve chip limit validations. Again. 2. + +commit eed4bed6ab3e79eb1510b86332a073496fe61761 +Author: Javeed Shaikh <syscrash2k@gmail.com> +Date: Thu Jul 23 13:10:56 2009 +0200 + + Xv: Fix YUV scaling and use Rec709 coefficients + + Described in fdo bug 22901. Coefficients are now based on the color space used + for HDTV, which seems more appropriate. + Also fixes some off-by-one bugs. + +commit 7c2df35a8fa7bc836f1444a508ac3ab5dcab15e9 +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Jul 23 12:46:40 2009 +0200 + + Improve chip limit validations. Again. + + Probably will take a few more iterations until we get it completely right. + +commit 8f0f6217feb198200c60a0e11fb332a9cae28dd5 +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Jul 23 12:40:37 2009 +0200 + + Improve output for powermanagement. + +commit 8f3f3647aad1613c41ec4b5bd030e571b74b7cf2 +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Jul 23 12:31:09 2009 +0200 + + Improve chip limit validations. + +commit e9cd2d257f304041fd1a127a58aeea0415d984bb +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Jul 23 11:51:00 2009 +0200 + + Typo. + +commit 98f46c6abebdc63b8be3d2c814da1ada9aa8ddef +Author: Matthias Hopf <mhopf@suse.de> +Date: Wed Jul 22 18:41:08 2009 +0200 + + Add code fetch chip clock and voltage limits and validate them. + +commit d9288b43ecd639713e64aa435943697c5e1c9c8c +Author: Matthias Hopf <mhopf@suse.de> +Date: Tue Jul 21 17:43:32 2009 +0200 + + Consolidate prefixes for ATOM_*. + + Some had ATOMBIOS_, some had no prefix. + +commit fedddb78ab01e3972854ba6b115ea653fa8a4b7c +Author: Matthias Hopf <mhopf@suse.de> +Date: Tue Jul 21 17:08:37 2009 +0200 + + Rework powermanagement: Introduce the notion of levels, change interface. + + Old style didn't scale with new requirements. + +commit b1be3143266f8b6a89dfe635321f16797601f1bb +Author: Matthias Hopf <mhopf@suse.de> +Date: Tue Jul 21 12:10:53 2009 +0200 + + Rewrite to use structured data for power settings. + +commit 5995c731da030631e56020e8cc4dcdcb92f5f935 +Author: Egbert Eich <eich@freedesktop.org> +Date: Wed Jul 22 13:15:49 2009 +0200 + + Clean up most warnings. + +commit 2e2e4d118e497cfc50f0bc23741236a89d9798f3 +Author: Egbert Eich <eich@freedesktop.org> +Date: Tue Jul 21 18:04:07 2009 +0200 + + Add better fallback heuristics for acceleration methods. + + - R6xx and up don't support XAA: fall back to EXA. + - If DRI is not compiled in on R6xx and up fall back to Shadow_FB. + +commit de3f80bc6ec2adaab40912fee92fe5f38564d1fe +Author: Egbert Eich <eich@freedesktop.org> +Date: Tue Jun 30 18:54:18 2009 +0200 + + Reenabling AtomBIOS controlled backlight. + + This code used to be commented out because it triggered some crashes. + It doesn't crash for me (tested LVTMA nor DIG). Let's wait and see + what reports will come in and check what the issue is. + +commit 1ff8649877a8d75b2614b40f90da60e3690fc88d +Author: Egbert Eich <eich@freedesktop.org> +Date: Tue Jun 30 18:47:54 2009 +0200 + + Move test for backlight support enabled to proper place. + +commit e4d5f972358ffbd115eafce00fdc578ed2a98cc6 +Author: Egbert Eich <eich@freedesktop.org> +Date: Tue Jun 30 18:46:34 2009 +0200 + + Spelling fixes. + +commit a006e56b0b845028780a25d905cd15eb94b34fd6 +Author: Egbert Eich <eich@freedesktop.org> +Date: Tue Jun 30 18:45:26 2009 +0200 + + Remove superfluous function arguments. + +commit b22e7a21a589b5205ad61a8cf39a61c8e5ca5791 +Author: Peter Hutterer <peter.hutterer@who-t.net> +Date: Thu Jul 16 13:27:21 2009 +1000 + + radeonhd: Update to xextproto 7.1 support. + + DPMS header was split into dpms.h (client) and dpmsconst.h (server). Drivers + need to include dpmsconst.h if xextproto 7.1 is available. + + Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> + +commit bc42c63d0cf7756a9d31c16d68d1c33a9e225b83 +Author: Matthias Hopf <mhopf@suse.de> +Date: Mon Jul 6 19:00:06 2009 +0200 + + Add shave (nuking excessive libtool output). + +commit 09a62f9426ccf5c6cbcc19cb9fd7ba66c3231002 +Author: Rafał Miłecki <zajec5@gmail.com> +Date: Tue Jun 30 12:57:03 2009 +0200 + + Fix build with --disable-atombios + +commit 3e0d3aab927db2def6375b11fa97e788d1b6dcec +Author: Luc Verhaegen <libv@skynet.be> +Date: Mon Jun 29 21:31:43 2009 +0200 + + DRI: Fix VBlankInterrupt setting when not using RandR1.2. + +commit c7168b6e835fdf7f2837913ed8580f1911135fdd +Author: Luc Verhaegen <libv@skynet.be> +Date: Mon Jun 29 21:03:05 2009 +0200 + + Cursor: fix logic error in cursor visibility checking. + + Cursor->(X,Y) were always null and never set until Crtc->(X,Y) were within + CURSOR_MAX_(WIDTH,HEIGHT) boundaries. This only affected xf86Cursor code. + +commit 645a0a0a6e5e57a4bb77c3b9c7d20b58d4c9ec28 +Author: Roland Scheidegger <sroland@tungstengraphics.com> +Date: Sun Jun 28 17:00:20 2009 -0400 + + R6xx/R7xx: fix pixel centers + + Make sure we are using GL mode (centers at 0.5) rather + than D3D mode (centers at 0.0). This also fixes fdo + bug 21963. + +commit afc94a3b398340768e9e6aac07a1609e8302dd84 +Author: Matthias Hopf <mhopf@suse.de> +Date: Fri Jun 26 15:34:43 2009 +0200 + + Add Developer's documentation. Or better: Some start of. + + Initiated by Rafal, who had to ask Dave, John, and Jerome for quite some + stuff, and others might benefit from that. + +commit 0624f7e6a9c5fff44c8e50e0df6a97835ad3484f +Author: Matthias Hopf <mhopf@suse.de> +Date: Fri Jun 26 12:18:39 2009 +0200 + + Add quirks table entry for ASUS EAH3450. + +commit fbc7fbfa1e7244622adfbd8850a742818e18df72 +Author: Christian Koenig <deathsimple@vodafone.de> +Date: Wed Jun 10 00:43:11 2009 +0200 + + R700 HDMI audio support. + + Setting just one more bit gets audio going on R700. + This time the tanks for debugging this goes to Jaren Peterson. + +commit 47a052a44f7566431308c5441539b65bb3dc6600 +Author: Rafał Miłecki <zajec5@gmail.com> +Date: Thu Jun 18 09:57:31 2009 +0200 + + PM: Fix printing units and variable typo in memory code + +commit 8a3fa92b6fdcd86b502973c947e5aed1bd3e1ada +Author: Matthias Hopf <mhopf@suse.de> +Date: Wed May 13 16:36:54 2009 +0200 + + randr: Reformat AtomBIOS parameter correctly when setting. + +commit ebcac22cadb28132a4133426ff9c5d662f9ff3e6 +Author: Matthias Hopf <mhopf@suse.de> +Date: Wed May 13 16:08:52 2009 +0200 + + randr: XA_STRING property values are not necessarily 0-terminated. + +commit 87dc50fbfa9a284f6387356b4840de6598de8139 +Author: Matthias Hopf <mhopf@suse.de> +Date: Mon Jun 15 16:35:19 2009 +0200 + + randr: Export EDID property correctly. + + Wasn't exported because rhdRROutputSetProperty() is called by RandR layer, and + the function didn't know about this property. + +commit f7260fc38a50b50395ff21ff76d568d7761677b1 +Author: Matthias Hopf <mhopf@suse.de> +Date: Mon Jun 15 16:32:43 2009 +0200 + + randr: Add AtomBIOS property for on-the-fly setting. Experimental. + + Currently disabled by default. + To enable set ENABLE_PROPERTY_ATOMBIOS to 1 in rhd_randr.c. + +commit aa1a56fe12b76abe8d483fdb0b6d0858c43a5d90 +Author: Matthias Hopf <mhopf@suse.de> +Date: Wed May 13 15:44:51 2009 +0200 + + Refactor AtomBIOS option handling. + +commit 4b4a439ef35af340b9c8e48e3760e375b07f873c +Author: Matthias Hopf <mhopf@suse.de> +Date: Wed Jun 10 12:23:55 2009 +0200 + + Move setting of Private->Modes to correct place. + + Was done for LVTMA only before. + Based on a patch by Rafał Miłecki. Fixes xorg bug #21877. + +commit fc31eb65edf6ffac969eb33a7c588dad7c93b7f4 +Author: Rafał Miłecki <zajec5@gmail.com> +Date: Tue Jun 9 18:26:30 2009 +0200 + + PLL: RV620 PLL shutdowning fix (sometimes we need unused PLL running) + + This makes RV620PLLnPower follow AtomBIOS method, fixes bug #18016 + +commit c83bd5c43832ed5602ee75db74bbe9ca06922d16 +Author: Matthias Hopf <mhopf@suse.de> +Date: Tue Jun 9 15:34:14 2009 +0200 + + randr: Remove useless error messages when fetching unknown/invalid properties. + +commit 9e8608c4ee55ca7798c3c120938d2ecf1f7e9f00 +Author: Matthias Hopf <mhopf@suse.de> +Date: Mon Jun 8 13:45:21 2009 +0200 + + Adapt for nuked xf86LoaderReqSymLists() in Xserver 1.6.99.1. + +commit 1103cff7f79e3212af2dcf3e0bf684006c9b79e4 +Author: Matthias Hopf <mhopf@suse.de> +Date: Fri Jun 5 19:32:55 2009 +0200 + + Add quirk table entry for Asus F3JR. + +commit 5dd9d814c8a9a35fbf5556d88297eb5e934731d7 +Author: Matthias Hopf <mhopf@suse.de> +Date: Fri Jun 5 19:22:27 2009 +0200 + + Initialize fresh connector object correctly in AtomBIOS case. + + Otherwise connectors without DDC object would get DDC0. + +commit cca9c0b2766139e225208c6d1e39c56f865480b2 +Author: Matthias Hopf <mhopf@suse.de> +Date: Fri Jun 5 18:36:16 2009 +0200 + + Add AtomBIOS based static powermanagement enablement + + Also add dynamic clock gating on pre-R6xx chips, but only if AtomBIOS is + available. + +commit 086e6c4aae8b9d1f077e39b35c1e15b92df0903c +Author: Matthias Hopf <mhopf@suse.de> +Date: Fri Jun 5 16:49:45 2009 +0200 + + Add some more PCI Ids, improve RV740 handling, fix descriptions. + +commit 1eec42729e048d7bb9be7fbf50f49a0573093c4d +Author: Rafał Miłecki <zajec5@gmail.com> +Date: Wed Jun 3 19:56:27 2009 +0200 + + AtomBIOS: add pixel clock's ucFracFbDiv to debugging messages + +commit b8533a98448f8dc2d67137e02a180430def17e0b +Author: Rafał Miłecki <zajec5@gmail.com> +Date: Wed Jun 3 19:27:24 2009 +0200 + + RandR: add returning HDMI property value + +commit efa0b5475517e4252c5a97389ee5612ed7da453f +Author: Rafał Miłecki <zajec5@gmail.com> +Date: Wed Jun 3 19:03:48 2009 +0200 + + RandR: fix return in DigPropertyControl + + Currently for all properties (coherent, backlight and hdmi) we + always return true. This leads to exporting not supported proprs + to randr. + +commit c559887b9663531a8aac526031e6eb4ca7c48efd +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Jun 4 15:13:27 2009 +0200 + + Add quirk entry for 0x7146:0x174B:0x0940. Bug #21947. + +commit c6f607fd6cc40d6f5f9ebbecd1f1e5152d5d0a9c +Author: Yang Zhao <yang@yangman.ca> +Date: Wed Jun 3 12:33:59 2009 -0700 + + Fix incorrectly reporting XAA/EXA init as failing for r5xx + + Oops, missed some braces. + + Signed-off-by: Yang Zhao <yang@yangman.ca> + +commit d89f5d870a816291620d18439eebae79557bde53 +Author: Yang Zhao <yang@yangman.ca> +Date: Thu May 28 21:27:31 2009 -0700 + + Raise warnings when 2D acceleration initialization fails + + Raise a warning when 2D acceleration is diabled during initialization + for whatever reason. + + Also update the R600 CS unavailability warning to point out requirement + of DRI instead of cliaming lack if implementation. + + Signed-off-by: Yang Zhao <yang@yangman.ca> + +commit 1d611211d8814c462e658c7cb8771ea98c9a7bb6 +Author: Yang Zhao <yang@yangman.ca> +Date: Sat May 23 11:59:38 2009 -0700 + + MC: Remove duplicated definition of SRBM_STATUS + + Use SRBM_STATUS from r600_reg_r6xx.h and remove old definition in + rhd_regs.h. + + Show names of bits are actually being checked in R600MCWaitIdle() instead + of using magic number. + + Signed-off-by: Yang Zhao <yang@yangman.ca> + +commit 792c736887bf99f8631e385fa35cd0ec1e1b1713 +Author: Matthias Hopf <mhopf@suse.de> +Date: Wed Jun 3 19:14:05 2009 +0200 + + Fix switch construction in LVDSPropertyControl + +commit 23653f8d3abe08da04feb7024d643071f09592aa +Author: Rafał Miłecki <zajec5@gmail.com> +Date: Fri May 22 11:39:01 2009 +0200 + + PM: add memory downclocking. Commented out for now. + + Currently we don't call RHDPmSetClock directly after rhdAllIdle(...) which + may be needed. It works on my M82 but we need more testing. + +commit ebabbe7220cae9aa281b097ad826badeb37a5e83 +Author: Rafał Miłecki <zajec5@gmail.com> +Date: Fri May 22 11:24:12 2009 +0200 + + PM: get rid of EnableForced field + + We can use ForcedEngineClock to determine if we should change engine clock. + It's set to 0 on init and some bigger value if we decide to downclock. It's + unnecessary and would be pain in future to keep fields like ForceEngine, + ForceMemory, ForceLanes, etc. + +commit d84490c8ce93f51815cd81c3a8624eecf9cf396a +Author: Rafał Miłecki <zajec5@gmail.com> +Date: Fri May 22 11:10:24 2009 +0200 + + PM: add RHDGetDefaultMemoryClock + +commit b452d15fcf14401f88ef36bfa8eaa1fede1f15ab +Author: Rafał Miłecki <zajec5@gmail.com> +Date: Fri May 22 10:48:12 2009 +0200 + + PM: fix broken engine clock setting logic + + Block of code detecting RHDGetDefaultEngineClock failure was placed in wrong + place. Additionaly Pm->Stored wasn't set to FALSE on init. + +commit 08acc05a4c252ff5c55ed1c8f55f106aa6c68546 +Author: Matthias Hopf <mhopf@suse.de> +Date: Wed May 20 18:14:29 2009 +0200 + + modes: Fixup broken panel modes if possible + + Panels only, and if we can do so only. Otherwise we might have no chance of + driving the panel at all. Inspired by commit 57a02b50c from the intel driver. + Fixes Novell bug #472013. + +commit d5844f5ba6708b186b2914ddc7cb39c3833570b8 +Author: Rafał Miłecki <zajec5@gmail.com> +Date: Tue May 19 11:36:41 2009 +0200 + + PM: Save and restore engine clock on VT switching + +commit 2644e121f404c9112293debe19dc5241d3b25326 +Author: Rafał Miłecki <zajec5@gmail.com> +Date: Tue May 19 09:38:15 2009 +0200 + + clean power management code + + This patch moves PM initialization to separated function, creates + struct rhdPm and stores ForcedEngineClock. + + It will be followed by saving & restoring engine clock on VT switching. + + -- + Rafał Miłecki + +commit 5a0b48dae2284f8d2bf6f8c9584f60177ee74ce6 +Author: Christian Koenig <deathsimple@vodafone.de> +Date: Wed May 13 22:20:09 2009 +0200 + + Initial RS690 HDMI Audio support. + + Based on a patch from Christiaan van Dijk, but stripped down the bare minimum. + +commit 23d25fe7ed0ad6d519672439484cb39653785848 +Author: Yang Zhao <yang@yangman.ca> +Date: Thu May 14 00:42:04 2009 -0700 + + Cursor: optimize lockCursor() + + It is not necessary to use RHDRegMask() when manipulating D*CUR_UPDATE. + Using RHDRegWrite() instead saves 2 register reads per mouse operation. + + Signed-off-by: Yang Zhao <yang@yangman.ca> + +commit 08461642370b3315cf3412c3a35bf5f1f2db251a +Author: Yang Zhao <yang@yangman.ca> +Date: Thu May 14 00:30:07 2009 -0700 + + Cursor: clean-up: eliminate Width and Height from rhdCursor struct + + Hardware always expects a 64x64 cursor image, so there is no benefit to + explicitly storing cursor size. + + Signed-off-by: Yang Zhao <yang@yangman.ca> + +commit dd287015dcf8ee74de35bd14c8a1a7d63cabdbc7 +Author: Yang Zhao <yang@yangman.ca> +Date: Fri May 8 16:09:56 2009 -0700 + + Cursor: refactor non-RandR cursor code + + The non-RandR cursor calls now call into the rhdCrtc* cursor functions. + + displayCursor() has been eliminated entirely. + + Signed-off-by: Yang Zhao <yang@yangman.ca> + +commit 4be5f7152f71c292f16b6e30c59c07b282ea4772 +Author: Yang Zhao <yang@yangman.ca> +Date: Mon May 4 13:38:27 2009 -0700 + + Cursor: Fix remaning corruption cases + + Port of f668cc06cd7f338888a7dce1507026af0e9e36ad to new code + + Found by Alex: + Apparently the cursor image cannot end on a multiple of 128 pixels. + Also, for panning, the end of the cursor image cannot extend past + the end of the viewport. + + Signed-off-by: Yang Zhao <yang@yangman.ca> + +commit 669e0befdf73a6e1502b0f499a4a9d2122929854 +Author: Yang Zhao <yang@yangman.ca> +Date: Sun Apr 26 15:31:29 2009 -0700 + + Cursor: refactor RandR cursor code + + Eliminate calls to displayCursor() and generally reduce the number of + register writes. + + Signed-off-by: Yang Zhao <yang@yangman.ca> + +commit 6f378a0d63df5fad86e16504c9d15c17849a67d3 +Author: Yang Zhao <yang@yangman.ca> +Date: Mon May 4 13:31:42 2009 -0700 + + Cursor: Do not change cursor mode when disabling; fixes bug #13405 + + Alex finally found the real cause of the cursor corruption issue. Yay! + + Signed-off-by: Yang Zhao <yang@yangman.ca> + +commit a282d6da64d339a99c3e59637785661c607c1240 +Author: Alex Deucher <alexdeucher@gmail.com> +Date: Mon May 4 13:02:24 2009 -0400 + + Fix scissor offsets for r5xx in last patch + +commit 633a9307684bac38f61ef75a0289ecedaf463631 +Author: Marvin <marvin24@gmx.de> +Date: Mon May 4 12:21:39 2009 -0400 + + Port lockup fix from radeon + + Port of my patch from bug 16198 + +commit de6e2cb62e3962f5b9978a1e57b71fc373bd2104 +Author: Matthias Hopf <mhopf@suse.de> +Date: Mon May 4 17:03:04 2009 +0200 + + utils: Only allow -e if pci_device_enable() is available. + +commit ea7a38d4291c5571d3fffb59bfb2303944edb435 +Author: Alex Deucher <alexdeucher@gmail.com> +Date: Mon May 4 10:20:04 2009 -0400 + + Fix build on systems without pci_device_enable() + + this time for rhd_dump + +commit e7db50e801057133eced58972f5dad25539e2d72 +Author: Thomas Jaeger <ThJaeger@gmail.com> +Date: Mon May 4 10:14:53 2009 -0400 + + Fall back to software for unsupported repeat modes + + fixes bug 19728 + +commit 367c99f1892efe433463431be69e4ff186e61daf +Author: Alex Deucher <alexdeucher@gmail.com> +Date: Mon May 4 10:07:59 2009 -0400 + + RS690: fix EXA corruption + + Thanks to Marvin for porting my patch to rhd. + +commit 929a77f2f4d2007d47be8196589afb3174541527 +Author: Alex Deucher <alexdeucher@gmail.com> +Date: Mon May 4 10:06:25 2009 -0400 + + Fix build on systems without pci_device_enable() + +commit cefd136eb01d23bc7afdc860bfc08cb5c0b1b7cb +Author: Matthias Hopf <mhopf@suse.de> +Date: Mon May 4 16:08:39 2009 +0200 + + rhd_dump: move pci_device_enable to correct case (pciaccess) + +commit 357f190d059e7e53f2b956cb5eba33a12899a7bd +Author: Jakub Zawadzki <darkjames@darkjames.ath.cx> +Date: Wed Apr 29 18:57:51 2009 +0200 + + rhd_conntest: mmap() returns -1 on error, not NULL + +commit e2260b0d77572a42d7a71d75f80c581a18e69d46 +Author: Matthias Hopf <mhopf@suse.de> +Date: Wed Apr 29 18:54:19 2009 +0200 + + man: cleanup + + Wrap long lines at textwidth=78, remove trailing spaces. + +commit 89088e5353025eec852935d1a8c852a13da95d84 +Author: Tristan Hoffmann <info@tristanhoffmann.de> +Date: Wed Apr 29 18:48:57 2009 +0200 + + man: Add lowpower options. + +commit 8932f43933437308b1fe5248a12cfe481f7d4ef3 +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Apr 23 17:27:43 2009 +0200 + + Nuke some trailing whitespace. + +commit 2f3c0b5318f404237a3c4a2bad5052680ef5f6e0 +Author: Michael Cree <mcree@orcon.net.nz> +Date: Wed Mar 18 22:26:59 2009 +1300 + + Updated Makefile in utils/conntest to enable link with libpciaccess. + + This is needed to compile rhd_dump and rhd_conntest with libpciaccess. + +commit 87ba9c2e81f7ab9070d98ca186e63facaf6cf41e +Author: Michael Cree <mcree@orcon.net.nz> +Date: Wed Mar 18 22:22:18 2009 +1300 + + Added code to use libpciaccess and access PCI ROM + + Uses libpciaccess if XSERVER_LIBPCIACCESS defined. + New features: + Can read BIOS from PCI ROM if unposted when using libpciaccess. + New options -e (enable PCI card) and -r (use PCI ROM not VBIOS) + +commit 9ad3554cd83654c2f2cff1dc29d6af9604b514a3 +Author: Michael Cree <mcree@orcon.net.nz> +Date: Wed Mar 18 22:17:21 2009 +1300 + + Added code to use libpciaccess + + Added support for using libpciaccess to access PCI resources. + Uses libpciaccess if XSERVER_LIBPCIACCESS defined. + Added -e option to enable pci card. + +commit 107d5d9f2ba0fef524c23aa00a20ed74b8a0c773 +Author: Yang Zhao <yang@yangman.ca> +Date: Fri Apr 17 16:15:43 2009 -0700 + + PM: Add ForceLowPowerMode and LowPowerModeEngineClock options + + - LowPowerMode enables static low-power mode by setting engine clock. + - LowPowerModeEngineClock controls what the clock is set to, in Hz. + If unset, (default_engine_clock / 2) is used + + Signed-off-by: Yang Zhao <yang@yangman.ca> + +commit 55b3bade631f7038bd2dc569ad89db2a7fd9d186 +Author: Yang Zhao <yang@yangman.ca> +Date: Fri Apr 17 15:13:58 2009 -0700 + + PM: Add functions for get/setting engine and memory clocks + + Signed-off-by: Yang Zhao <yang@yangman.ca> + +commit 82c1dee0bcb47ecff7d8a8765093cd14d25b36b3 +Author: Yang Zhao <yang@yangman.ca> +Date: Sat Mar 7 13:05:44 2009 -0800 + + AtomBIOS: add hooks to call memory and engine clock getters and setters + + Signed-off-by: Yang Zhao <yang@yangman.ca> + +commit f668cc06cd7f338888a7dce1507026af0e9e36ad +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Apr 23 16:33:40 2009 +0200 + + Fix #13405: Cursor corruption + + Found by Alex: + Apparently the cursor image cannot end on a multiple of 128 pixels. + Also, for panning, the end of the cursor image cannot extend past + the end of the viewport. + +commit 881334543d2711f159c8fcaf4a30b8b0db3186d7 +Author: Matthias Hopf <mhopf@suse.de> +Date: Fri Apr 17 15:24:32 2009 +0200 + + FB mapping cleanup didn't reflect changes to allocation. Fixes #21233. + +commit 8bb8cd80f08d094c8b451e005e57c495dc6e4d42 +Author: Matthias Hopf <mhopf@suse.de> +Date: Thu Apr 16 15:07:56 2009 +0200 + + Extend ugly hack for CARD64 to rhd_mc.h. This time actually working. + +commit 950842aa998618217de6d4e9440bdc5faccce7b1 +Author: Florian Forster <octo@leeloo.lan.home.verplant.org> +Date: Mon Apr 13 14:56:17 2009 +0200 + + man/radeonhd.man: Fix two typos. + +commit 71a2d799714d224ae512b2a464c45b43099ab619 +Author: Matthias Hopf <mhopf@suse.de> +Date: Tue Apr 14 17:23:04 2009 +0200 + + Consolidated chip identifiers. + + Potentially adds support for RV740, M92, M93, M97. Untested, though. + +commit 8885256ee3987eb2c607eeec210a093555e91994 +Author: Matthias Hopf <mhopf@suse.de> +Date: Tue Apr 14 17:05:55 2009 +0200 + + Extend ugly hack for CARD64 to rhd_mc.h. + + Seriously, we need a reasonable fix for this issue. + commit cb54f48b212d5ae54e13bbdf24575b6163798c0d Author: Matthias Hopf <mhopf@suse.de> Date: Thu Apr 9 15:11:37 2009 +0200 diff --git a/driver/xf86-video-radeonhd/INSTALL b/driver/xf86-video-radeonhd/INSTALL index 47607b518..81435c111 100644 --- a/driver/xf86-video-radeonhd/INSTALL +++ b/driver/xf86-video-radeonhd/INSTALL @@ -72,7 +72,7 @@ Solution: --------- Your system lacks one or more of these files in /usr/share/aclocal: - xorg-macros.m4 xorg-server.m4 xorgversion.m4 + xorg-macros.m4 xorg-server.m4 Make sure you have all required X.org development packages installed. These may be called xorg-dev, xorg-x11-server-sdk and xorg-x11-util-macros, diff --git a/driver/xf86-video-radeonhd/Makefile.in b/driver/xf86-video-radeonhd/Makefile.in index 18ba296dd..93e42a888 100644 --- a/driver/xf86-video-radeonhd/Makefile.in +++ b/driver/xf86-video-radeonhd/Makefile.in @@ -60,18 +60,20 @@ build_triplet = @build@ host_triplet = @host@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(srcdir)/shave-libtool.in $(srcdir)/shave.in \ $(top_srcdir)/configure COPYING ChangeLog INSTALL compile \ config.guess config.sub depcomp install-sh ltmain.sh missing subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(SHELL) $(install_sh) -d CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = +CONFIG_CLEAN_FILES = shave shave-libtool SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ @@ -100,6 +102,7 @@ ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ +AM_MAKEFLAGS = @AM_MAKEFLAGS@ APP_MAN_DIR = @APP_MAN_DIR@ APP_MAN_SUFFIX = @APP_MAN_SUFFIX@ AR = @AR@ @@ -137,13 +140,17 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ +FC = @FC@ FFLAGS = @FFLAGS@ FILE_MAN_DIR = @FILE_MAN_DIR@ FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@ +GREP = @GREP@ HAVE_PCI_PCI_H_FALSE = @HAVE_PCI_PCI_H_FALSE@ HAVE_PCI_PCI_H_TRUE = @HAVE_PCI_PCI_H_TRUE@ HAVE_SED_WITH_REASONABLE_SUBSTITUTION_FALSE = @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_FALSE@ HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE = @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@ +HAVE_XEXTPROTO_71_FALSE = @HAVE_XEXTPROTO_71_FALSE@ +HAVE_XEXTPROTO_71_TRUE = @HAVE_XEXTPROTO_71_TRUE@ HAVE_XF86_ANSIC_H_FALSE = @HAVE_XF86_ANSIC_H_FALSE@ HAVE_XF86_ANSIC_H_TRUE = @HAVE_XF86_ANSIC_H_TRUE@ HAVE_ZLIB_FALSE = @HAVE_ZLIB_FALSE@ @@ -163,10 +170,12 @@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MISC_MAN_DIR = @MISC_MAN_DIR@ MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@ NMEDIT = @NMEDIT@ +OBJC = @OBJC@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ @@ -181,6 +190,7 @@ PCIUTILS_CFLAGS = @PCIUTILS_CFLAGS@ PCIUTILS_LIBS = @PCIUTILS_LIBS@ PEDANTIC_CFLAGS = @PEDANTIC_CFLAGS@ PKG_CONFIG = @PKG_CONFIG@ +Q = @Q@ RANDR_VERSION = @RANDR_VERSION@ RANLIB = @RANLIB@ SED = @SED@ @@ -191,21 +201,18 @@ USE_DRI_FALSE = @USE_DRI_FALSE@ USE_DRI_TRUE = @USE_DRI_TRUE@ USE_EXA_FALSE = @USE_EXA_FALSE@ USE_EXA_TRUE = @USE_EXA_TRUE@ +V = @V@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ +XEXT_CFLAGS = @XEXT_CFLAGS@ +XEXT_LIBS = @XEXT_LIBS@ XORG_CFLAGS = @XORG_CFLAGS@ XORG_LIBS = @XORG_LIBS@ XSERVER_LIBPCIACCESS_FALSE = @XSERVER_LIBPCIACCESS_FALSE@ XSERVER_LIBPCIACCESS_TRUE = @XSERVER_LIBPCIACCESS_TRUE@ -ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ -ac_ct_DSYMUTIL = @ac_ct_DSYMUTIL@ ac_ct_F77 = @ac_ct_F77@ -ac_ct_NMEDIT = @ac_ct_NMEDIT@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ @@ -222,26 +229,34 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ moduledir = @moduledir@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +shavedir = @shavedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign @@ -303,6 +318,10 @@ $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) distclean-hdr: -rm -f config.h stamp-h1 +shave: $(top_builddir)/config.status $(srcdir)/shave.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +shave-libtool: $(top_builddir)/config.status $(srcdir)/shave-libtool.in + cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo @@ -449,6 +468,7 @@ distclean-tags: distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) + $(mkdir_p) $(distdir)/. @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ diff --git a/driver/xf86-video-radeonhd/README b/driver/xf86-video-radeonhd/README index 6ca6b2088..ddfb2b5cd 100644 --- a/driver/xf86-video-radeonhd/README +++ b/driver/xf86-video-radeonhd/README @@ -72,12 +72,17 @@ BEGIN_DEVICE_LIST * RS690: Radeon X1200, X1250, X1270 * RS740: RS740, RS740M * RS780: Radeon HD 3100/3200/3300 Series - * RV770: Radeon HD 4800 Series; Everest, K2, Denali ATI FirePro * R700: Radeon R700 - * M98: Radeon M98 Mobility - * RV730: Radeon HD4670, HD4650 - * M96: Radeon M96 Mobility * RV710: Radeon HD4570, HD4350 + * RV730: Radeon HD4670, HD4650 + * RV740: Radeon HD4770. EXPERIMENTAL AND UNTESTED + * RV770: Radeon HD 4800 Series; Everest, K2, Denali ATI FirePro + * RV790: Radeon HD 4890 + * M92: Mobility Radeon HD4330, HD4530, HD4570. EXPERIMENTAL + * M93: Mobility Radeon M93. EXPERIMENTAL AND UNTESTED + * M96: Mobility Radeon HD4600 + * M97: Mobility Radeon HD4860. EXPERIMENTAL AND UNTESTED + * M98: Mobility Radeon HD4850, HD4870 END_DEVICE_LIST @@ -87,6 +92,23 @@ Major Changes Read ChangeLog for a complete list. +- Version 1.3.0 + + - Added support for RV740, M92, M93, M97. + - Added support for HDMI audio on RS690 and R700. + - Added support for power management. + - Implemented almost correct analysis of PowerPlay AtomBIOS tables. + - 2D acceleration (EXA) is enabled by default now, except on RV740. + - Backlight handling finally fixed - compatible with xbacklight 1.1.1. + - Overhaul of memory controller setup. Fixes many "MC not idle" issues. + - Overhaul of cursor handling. Fixes most cursor bugs. + - Selectable color space for XVideo on R6xx/R7xx. + - Tons of bug fixes (DDC, EXA, LUT, RandR, AtomBIOS). + - More quirk table entries. + - Shave support (cleaner compilation output). + - All warnings fixed. + - Some start of Developer's documentation in README.coding. + - Version 1.2.5 - Added 2D acceleration for R6xx and R7xx. diff --git a/driver/xf86-video-radeonhd/acinclude.m4 b/driver/xf86-video-radeonhd/acinclude.m4 new file mode 100644 index 000000000..0a3509e59 --- /dev/null +++ b/driver/xf86-video-radeonhd/acinclude.m4 @@ -0,0 +1,77 @@ +dnl Make automake/libtool output more friendly to humans +dnl Damien Lespiau <damien.lespiau@gmail.com> +dnl +dnl SHAVE_INIT([shavedir],[default_mode]) +dnl +dnl shavedir: the directory where the shave scripts are, it defaults to +dnl $(top_builddir) +dnl default_mode: (enable|disable) default shave mode. This parameter +dnl controls shave's behaviour when no option has been +dnl given to configure. It defaults to disable. +dnl +dnl * SHAVE_INIT should be called late in your configure.(ac|in) file (just +dnl before AC_CONFIG_FILE/AC_OUTPUT is perfect. This macro rewrites CC and +dnl LIBTOOL, you don't want the configure tests to have these variables +dnl re-defined. +dnl * This macro requires GNU make's -s option. + +AC_DEFUN([_SHAVE_ARG_ENABLE], +[ + AC_ARG_ENABLE([shave], + AS_HELP_STRING( + [--enable-shave], + [use shave to make the build pretty [[default=$1]]]),, + [enable_shave=$1] + ) +]) + +AC_DEFUN([SHAVE_INIT], +[ + dnl you can tweak the default value of enable_shave + m4_if([$2], [enable], [_SHAVE_ARG_ENABLE(yes)], [_SHAVE_ARG_ENABLE(no)]) + + if test x"$enable_shave" = xyes; then + dnl where can we find the shave scripts? + m4_if([$1],, + [shavedir="$ac_pwd"], + [shavedir="$ac_pwd/$1"]) + AC_SUBST(shavedir) + + dnl make is now quiet + AC_SUBST([MAKEFLAGS], [-s]) + AC_SUBST([AM_MAKEFLAGS], ['`test -z $V && echo -s`']) + + dnl we need sed + AC_CHECK_PROG(SED,sed,sed,false) + + dnl substitute libtool + SHAVE_SAVED_LIBTOOL=$LIBTOOL + LIBTOOL="${SHELL} ${shavedir}/shave-libtool '${SHAVE_SAVED_LIBTOOL}'" + AC_SUBST(LIBTOOL) + + dnl substitute cc/cxx + SHAVE_SAVED_CC=$CC + SHAVE_SAVED_CXX=$CXX + SHAVE_SAVED_FC=$FC + SHAVE_SAVED_F77=$F77 + SHAVE_SAVED_OBJC=$OBJC + CC="${SHELL} ${shavedir}/shave cc ${SHAVE_SAVED_CC}" + CXX="${SHELL} ${shavedir}/shave cxx ${SHAVE_SAVED_CXX}" + FC="${SHELL} ${shavedir}/shave fc ${SHAVE_SAVED_FC}" + F77="${SHELL} ${shavedir}/shave f77 ${SHAVE_SAVED_F77}" + OBJC="${SHELL} ${shavedir}/shave objc ${SHAVE_SAVED_OBJC}" + AC_SUBST(CC) + AC_SUBST(CXX) + AC_SUBST(FC) + AC_SUBST(F77) + AC_SUBST(OBJC) + + V=@ + else + V=1 + fi + Q='$(V:1=)' + AC_SUBST(V) + AC_SUBST(Q) +]) + diff --git a/driver/xf86-video-radeonhd/aclocal.m4 b/driver/xf86-video-radeonhd/aclocal.m4 index 3ec9c2c92..ba3b927f1 100644 --- a/driver/xf86-video-radeonhd/aclocal.m4 +++ b/driver/xf86-video-radeonhd/aclocal.m4 @@ -7631,7 +7631,7 @@ AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR -dnl xorg-macros.m4. Generated from xorg-macros.m4.in:xorgversion.m4 by configure. +dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure. dnl dnl Copyright 2005-2006 Sun Microsystems, Inc. All rights reserved. dnl @@ -7668,27 +7668,24 @@ dnl of the copyright holder. # your configure.ac with the minimum required version, such as: # XORG_MACROS_VERSION(1.1) # -# To force at least a version with this macro defined, also add: -# m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.1 or later before running autoconf/autogen])]) +# To ensure that this macro is defined, also add: +# m4_ifndef([XORG_MACROS_VERSION], +# [m4_fatal([must install xorg-macros 1.1 or later before running autoconf/autogen])]) # # # See the "minimum version" comment for each macro you use to see what # version you require. -AC_DEFUN([XORG_MACROS_VERSION],[ - [XORG_MACROS_needed_version=$1 - XORG_MACROS_needed_major=`echo $XORG_MACROS_needed_version | sed 's/\..*$//'` - XORG_MACROS_needed_minor=`echo $XORG_MACROS_needed_version | sed -e 's/^[0-9]*\.//' -e 's/\..*$//'`] - AC_MSG_CHECKING([if xorg-macros used to generate configure is at least ${XORG_MACROS_needed_major}.${XORG_MACROS_needed_minor}]) - [XORG_MACROS_version=1.2.1 - XORG_MACROS_major=`echo $XORG_MACROS_version | sed 's/\..*$//'` - XORG_MACROS_minor=`echo $XORG_MACROS_version | sed -e 's/^[0-9]*\.//' -e 's/\..*$//'`] - if test $XORG_MACROS_major -ne $XORG_MACROS_needed_major ; then - AC_MSG_ERROR([configure built with incompatible version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.x]) - fi - if test $XORG_MACROS_minor -lt $XORG_MACROS_needed_minor ; then - AC_MSG_ERROR([configure built with too old of a version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.${XORG_MACROS_minor}.0 or newer]) - fi - AC_MSG_RESULT([yes, $XORG_MACROS_version]) +m4_defun([XORG_MACROS_VERSION],[ +m4_define([vers_have], [1.3.0]) +m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.]))) +m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.]))) +m4_if(m4_cmp(maj_have, maj_needed), 0,, + [m4_fatal([xorg-macros major version ]maj_needed[ is required but ]vers_have[ found])]) +m4_if(m4_version_compare(vers_have, [$1]), -1, + [m4_fatal([xorg-macros version $1 or higher is required but ]vers_have[ found])]) +m4_undefine([vers_have]) +m4_undefine([maj_have]) +m4_undefine([maj_needed]) ]) # XORG_MACROS_VERSION # XORG_PROG_RAWCPP() @@ -7955,7 +7952,7 @@ AC_SUBST(MAKE_HTML) # their AM_CFLAGS (or other appropriate *_CFLAGS) to use them. AC_DEFUN([XORG_CHECK_MALLOC_ZERO],[ AC_ARG_ENABLE(malloc0returnsnull, - AC_HELP_STRING([--enable-malloc0returnsnull], + AS_HELP_STRING([--enable-malloc0returnsnull], [malloc(0) returns NULL (default: auto)]), [MALLOC_ZERO_RETURNS_NULL=$enableval], [MALLOC_ZERO_RETURNS_NULL=auto]) @@ -8007,7 +8004,7 @@ AC_SUBST([XTMALLOC_ZERO_CFLAGS]) AC_DEFUN([XORG_WITH_LINT],[ # Allow checking code with lint, sparse, etc. -AC_ARG_WITH(lint, [AC_HELP_STRING([--with-lint], +AC_ARG_WITH(lint, [AS_HELP_STRING([--with-lint], [Use a lint-style source code checker (default: disabled)])], [use_lint=$withval], [use_lint=no]) if test "x$use_lint" = "xyes" ; then @@ -8048,7 +8045,7 @@ AM_CONDITIONAL(LINT, [test x$LINT != xno]) AC_DEFUN([XORG_LINT_LIBRARY],[ AC_REQUIRE([XORG_WITH_LINT]) # Build lint "library" for more indepth checks of programs calling this library -AC_ARG_ENABLE(lint-library, [AC_HELP_STRING([--enable-lint-library], +AC_ARG_ENABLE(lint-library, [AS_HELP_STRING([--enable-lint-library], [Create lint library (default: disabled)])], [make_lint_lib=$enableval], [make_lint_lib=no]) if test "x$make_lint_lib" != "xno" ; then @@ -8078,9 +8075,9 @@ if test "x$GCC" = xyes ; then CWARNFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \ -Wmissing-declarations -Wnested-externs -fno-strict-aliasing \ -Wbad-function-cast" - case `gcc -dumpversion` in + case `$CC -dumpversion` in 3.4.* | 4.*) - CWARNFLAGS+=" -Wold-style-definition -Wdeclaration-after-statement" + CWARNFLAGS="$CWARNFLAGS -Wold-style-definition -Wdeclaration-after-statement" ;; esac else @@ -8090,7 +8087,51 @@ else fi fi AC_SUBST(CWARNFLAGS) +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) ]) # XORG_CWARNFLAGS + +# XORG_STRICT_OPTION +# ----------------------- +# Minimum version: 1.3.0 +# +# Add configure option to enable strict compilation +AC_DEFUN([XORG_STRICT_OPTION], [ +AC_REQUIRE([AC_PROG_CC]) +AC_REQUIRE([AC_PROG_CC_C99]) +AC_REQUIRE([XORG_CWARNFLAGS]) + +AC_ARG_ENABLE(strict-compilation, + AS_HELP_STRING([--enable-strict-compilation], + [Enable all warnings from compiler and make them errors (default: disabled)]), + [STRICT_COMPILE=$enableval], [STRICT_COMPILE=no]) +if test "x$STRICT_COMPILE" = "xyes"; then + AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) + AC_CHECK_DECL([__INTEL_COMPILER], [INTELCC="yes"], [INTELCC="no"]) + if test "x$GCC" = xyes ; then + STRICT_CFLAGS="-pedantic -Werror" + elif test "x$SUNCC" = "xyes"; then + STRICT_CFLAGS="-errwarn" + elif test "x$INTELCC" = "xyes"; then + STRICT_CFLAGS="-Werror" + fi +fi +CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS" +AC_SUBST([CWARNFLAGS]) +]) # XORG_STRICT_OPTION + +# XORG_DEFAULT_OPTIONS +# -------------------- +# Minimum version: 1.3.0 +# +# Defines default options for X.Org modules. +# +AC_DEFUN([XORG_DEFAULT_OPTIONS], [ +XORG_CWARNFLAGS +XORG_STRICT_OPTION +XORG_RELEASE_VERSION +XORG_CHANGELOG +XORG_MANPAGE_SECTIONS +]) # XORG_DEFAULT_OPTIONS dnl Copyright 2005 Red Hat, Inc dnl dnl Permission to use, copy, modify, distribute, and sell this software and its @@ -8125,7 +8166,7 @@ dnl AC_DEFUN([XORG_RELEASE_VERSION],[ AC_ARG_WITH(release-version, - AC_HELP_STRING([--with-release-version=STRING], + AS_HELP_STRING([--with-release-version=STRING], [Use release version string in package name]), [RELEASE_VERSION="$withval"], [RELEASE_VERSION=""]) @@ -8219,3 +8260,4 @@ AC_DEFUN([XORG_DRIVER_CHECK_EXT],[ fi ]) +m4_include([acinclude.m4]) diff --git a/driver/xf86-video-radeonhd/config.h.in b/driver/xf86-video-radeonhd/config.h.in index 8153772df..5db70bdc7 100644 --- a/driver/xf86-video-radeonhd/config.h.in +++ b/driver/xf86-video-radeonhd/config.h.in @@ -27,6 +27,9 @@ /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H +/* Have pci_device_enable prototype */ +#undef HAVE_PCI_DEVICE_ENABLE + /* Define to 1 if you have <pci/pci.h>. */ #undef HAVE_PCI_PCI_H @@ -51,6 +54,9 @@ /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H +/* xextproto 7.1 available */ +#undef HAVE_XEXTPROTO_71 + /* Define to 1 if you have <${sdkdir}/xf86_ansic.h>. */ #undef HAVE_XF86_ANSIC_H diff --git a/driver/xf86-video-radeonhd/configure b/driver/xf86-video-radeonhd/configure index 3c9370561..c001684d2 100644 --- a/driver/xf86-video-radeonhd/configure +++ b/driver/xf86-video-radeonhd/configure @@ -1,27 +1,84 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for xf86-video-radeonhd 1.2.5. +# Generated by GNU Autoconf 2.62 for xf86-video-radeonhd 1.3.0. # # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/radeonhd>. # -# Copyright (C) 2003 Free Software Foundation, Inc. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008 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 +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } fi -DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then @@ -31,33 +88,60 @@ else fi +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + # Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - 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=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE # Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false @@ -65,157 +149,391 @@ fi # Name of the executable. -as_me=`$as_basename "$0" || +as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` +# CDPATH. +$as_unset CDPATH -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh +if test "x$CONFIG_SHELL" = x; then + if (eval ":") 2>/dev/null; then + as_have_required=yes +else + as_have_required=no fi + if test $as_have_required = yes && (eval ": +(as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "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=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$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 - '') +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=\$LINENO + as_lineno_2=\$LINENO + test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && + test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } +") 2> /dev/null; then + : +else + as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in + case $as_dir in /*) - if ("$as_dir/$as_base" -c ' + for as_base in sh bash ksh sh5; do + as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + done;; + esac +done +IFS=$as_save_IFS + + + for as_shell in $as_candidate_shells $SHELL; do + # Try only shells that exist, to save several forks. + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { ("$as_shell") 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +_ASEOF +}; then + CONFIG_SHELL=$as_shell + as_have_required=yes + if { "$as_shell" 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +(as_func_return () { + (exit $1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = "$1" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test $exitcode = 0) || { (exit 1); exit 1; } + +( as_lineno_1=$LINENO as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + +_ASEOF +}; then + break +fi + +fi + + done + + if test "x$CONFIG_SHELL" != x; then + for as_var in BASH_ENV ENV + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + + if test $as_have_required = no; then + echo This script requires a shell more modern than all the + echo shells that I found on your system. Please install a + echo modern shell, or manually run the script under such a + echo shell if you do have one. + { (exit 1); exit 1; } +fi + + +fi + +fi + + + +(eval "as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0") || { + echo No shell found that supports shell functions. + echo Please tell bug-autoconf@gnu.org about your system, + echo including any error possibly output before this message. + echo This can help us improve future autoconf versions. + echo Configuration will now proceed without shell functions. +} + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # 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. + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop - s,-$,, - s,^['$as_cr_digits']*\n,, + s/-\n.*// ' >$as_me.lineno && - chmod +x $as_me.lineno || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX 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 + # original and so on. Autoconf is especially sensitive 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= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi -if expr a : '\(a\)' >/dev/null 2>&1; then +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false 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 generic - # 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='cp -p' - else +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln else as_ln_s='cp -p' fi -rm -f conf$$ conf$$.exe conf$$.file +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: @@ -224,7 +542,28 @@ else as_mkdir_p=false fi -as_executable_p="test -f" +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -233,15 +572,6 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - # Check that we are running under the correct shell. @@ -397,80 +727,287 @@ tagnames=${tagnames+${tagnames},}CXX tagnames=${tagnames+${tagnames},}F77 +exec 7<&0 </dev/null 6>&1 + # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` -exec 6>&1 - # # Initializations. # ac_default_prefix=/usr/local +ac_clean_files= ac_config_libobj_dir=. +LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${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=38} - # Identity of this package. PACKAGE_NAME='xf86-video-radeonhd' PACKAGE_TARNAME='xf86-video-radeonhd' -PACKAGE_VERSION='1.2.5' -PACKAGE_STRING='xf86-video-radeonhd 1.2.5' +PACKAGE_VERSION='1.3.0' +PACKAGE_STRING='xf86-video-radeonhd 1.3.0' PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/radeonhd' ac_unique_file="Makefile.am" # Factoring default headers for most tests. ac_includes_default="\ #include <stdio.h> -#if HAVE_SYS_TYPES_H +#ifdef HAVE_SYS_TYPES_H # include <sys/types.h> #endif -#if HAVE_SYS_STAT_H +#ifdef HAVE_SYS_STAT_H # include <sys/stat.h> #endif -#if STDC_HEADERS +#ifdef STDC_HEADERS # include <stdlib.h> # include <stddef.h> #else -# if HAVE_STDLIB_H +# ifdef HAVE_STDLIB_H # include <stdlib.h> # endif #endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include <memory.h> # endif # include <string.h> #endif -#if HAVE_STRINGS_H +#ifdef HAVE_STRINGS_H # include <strings.h> #endif -#if HAVE_INTTYPES_H +#ifdef HAVE_INTTYPES_H # include <inttypes.h> -#else -# if HAVE_STDINT_H -# include <stdint.h> -# endif #endif -#if HAVE_UNISTD_H +#ifdef HAVE_STDINT_H +# include <stdint.h> +#endif +#ifdef HAVE_UNISTD_H # include <unistd.h> #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE SED HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE HAVE_SED_WITH_REASONABLE_SUBSTITUTION_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL PKG_CONFIG ac_pt_PKG_CONFIG XORG_CFLAGS XORG_LIBS PCIUTILS_CFLAGS PCIUTILS_LIBS HAVE_PCI_PCI_H_TRUE HAVE_PCI_PCI_H_FALSE PCIACCESS_CFLAGS PCIACCESS_LIBS XSERVER_LIBPCIACCESS_TRUE XSERVER_LIBPCIACCESS_FALSE USE_EXA_TRUE USE_EXA_FALSE DRI_CFLAGS DRI_LIBS USE_DRI_TRUE USE_DRI_FALSE HAVE_XF86_ANSIC_H_TRUE HAVE_XF86_ANSIC_H_FALSE ATOM_BIOS_TRUE ATOM_BIOS_FALSE ATOM_BIOS_PARSER_TRUE ATOM_BIOS_PARSER_FALSE HAVE_ZLIB_TRUE HAVE_ZLIB_FALSE WARN_CFLAGS PEDANTIC_CFLAGS ATOMBIOS_CFLAGS RANDR_VERSION moduledir DRIVER_NAME APP_MAN_SUFFIX LIB_MAN_SUFFIX FILE_MAN_SUFFIX MISC_MAN_SUFFIX DRIVER_MAN_SUFFIX ADMIN_MAN_SUFFIX APP_MAN_DIR LIB_MAN_DIR FILE_MAN_DIR MISC_MAN_DIR DRIVER_MAN_DIR ADMIN_MAN_DIR LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL +PATH_SEPARATOR +PACKAGE_NAME +PACKAGE_TARNAME +PACKAGE_VERSION +PACKAGE_STRING +PACKAGE_BUGREPORT +exec_prefix +prefix +program_transform_name +bindir +sbindir +libexecdir +datarootdir +datadir +sysconfdir +sharedstatedir +localstatedir +includedir +oldincludedir +docdir +infodir +htmldir +dvidir +pdfdir +psdir +libdir +localedir +mandir +DEFS +ECHO_C +ECHO_N +ECHO_T +LIBS +build_alias +host_alias +target_alias +INSTALL_PROGRAM +INSTALL_SCRIPT +INSTALL_DATA +CYGPATH_W +PACKAGE +VERSION +ACLOCAL +AUTOCONF +AUTOMAKE +AUTOHEADER +MAKEINFO +install_sh +STRIP +INSTALL_STRIP_PROGRAM +mkdir_p +AWK +SET_MAKE +am__leading_dot +AMTAR +am__tar +am__untar +MAINTAINER_MODE_TRUE +MAINTAINER_MODE_FALSE +MAINT +CC +CFLAGS +LDFLAGS +CPPFLAGS +ac_ct_CC +EXEEXT +OBJEXT +DEPDIR +am__include +am__quote +AMDEP_TRUE +AMDEP_FALSE +AMDEPBACKSLASH +CCDEPMODE +am__fastdepCC_TRUE +am__fastdepCC_FALSE +SED +HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE +HAVE_SED_WITH_REASONABLE_SUBSTITUTION_FALSE +build +build_cpu +build_vendor +build_os +host +host_cpu +host_vendor +host_os +GREP +EGREP +LN_S +ECHO +AR +RANLIB +DSYMUTIL +NMEDIT +CPP +CXX +CXXFLAGS +ac_ct_CXX +CXXDEPMODE +am__fastdepCXX_TRUE +am__fastdepCXX_FALSE +CXXCPP +F77 +FFLAGS +ac_ct_F77 +LIBTOOL +PKG_CONFIG +XORG_CFLAGS +XORG_LIBS +XEXT_CFLAGS +XEXT_LIBS +HAVE_XEXTPROTO_71_TRUE +HAVE_XEXTPROTO_71_FALSE +PCIUTILS_CFLAGS +PCIUTILS_LIBS +HAVE_PCI_PCI_H_TRUE +HAVE_PCI_PCI_H_FALSE +PCIACCESS_CFLAGS +PCIACCESS_LIBS +XSERVER_LIBPCIACCESS_TRUE +XSERVER_LIBPCIACCESS_FALSE +USE_EXA_TRUE +USE_EXA_FALSE +DRI_CFLAGS +DRI_LIBS +USE_DRI_TRUE +USE_DRI_FALSE +HAVE_XF86_ANSIC_H_TRUE +HAVE_XF86_ANSIC_H_FALSE +ATOM_BIOS_TRUE +ATOM_BIOS_FALSE +ATOM_BIOS_PARSER_TRUE +ATOM_BIOS_PARSER_FALSE +HAVE_ZLIB_TRUE +HAVE_ZLIB_FALSE +WARN_CFLAGS +PEDANTIC_CFLAGS +ATOMBIOS_CFLAGS +RANDR_VERSION +moduledir +DRIVER_NAME +APP_MAN_SUFFIX +LIB_MAN_SUFFIX +FILE_MAN_SUFFIX +MISC_MAN_SUFFIX +DRIVER_MAN_SUFFIX +ADMIN_MAN_SUFFIX +APP_MAN_DIR +LIB_MAN_DIR +FILE_MAN_DIR +MISC_MAN_DIR +DRIVER_MAN_DIR +ADMIN_MAN_DIR +shavedir +MAKEFLAGS +AM_MAKEFLAGS +FC +OBJC +V +Q +LIBOBJS +LTLIBOBJS' ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_maintainer_mode +enable_static +enable_dependency_tracking +enable_shared +enable_fast_install +with_gnu_ld +enable_libtool_lock +with_pic +with_tags +with_xorg_module_dir +enable_exa +enable_dri +enable_atombios +enable_atombios_parser +with_release_version +enable_shave +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +CXX +CXXFLAGS +CCC +CXXCPP +F77 +FFLAGS +PKG_CONFIG +XORG_CFLAGS +XORG_LIBS +XEXT_CFLAGS +XEXT_LIBS +PCIUTILS_CFLAGS +PCIUTILS_LIBS +PCIACCESS_CFLAGS +PCIACCESS_LIBS +DRI_CFLAGS +DRI_LIBS' + # Initialize some variables set by options. ac_init_help= ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null @@ -493,34 +1030,48 @@ x_libraries=NONE # 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. +# (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' +datarootdir='${prefix}/share' +datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' ac_prev= +ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" + eval $ac_prev=\$ac_option ac_prev= continue fi - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` + case $ac_option in + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; + esac # Accept the important Cygnus configure options, so we can diagnose typos. - case $ac_option in + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; @@ -542,33 +1093,61 @@ do --config-cache | -C) cache_file=config.cache ;; - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) + -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + ac_useropt=`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 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # 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 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; esac - eval "enable_$ac_feature='$ac_optarg'" ;; + eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ @@ -595,6 +1174,12 @@ do -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; @@ -619,13 +1204,16 @@ do | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) + | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) @@ -690,6 +1278,16 @@ do | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; @@ -740,26 +1338,38 @@ do ac_init_version=: ;; -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # 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 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; esac - eval "with_$ac_package='$ac_optarg'" ;; + eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + ac_useropt=`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 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval "with_$ac_package=no" ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. @@ -779,7 +1389,7 @@ do | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) { echo "$as_me: error: unrecognized option: $ac_option + -*) { $as_echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; @@ -788,17 +1398,16 @@ Try \`$0 --help' for more information." >&2 ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # 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 + { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" + eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + $as_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 + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; @@ -807,31 +1416,39 @@ done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 + { $as_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=$`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; }; };; +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) { $as_echo "$as_me: error: Unrecognized options: $ac_unrecognized_opts" >&2 + { (exit 1); exit 1; }; } ;; + *) $as_echo "$as_me: WARNING: Unrecognized options: $ac_unrecognized_opts" >&2 ;; esac -done +fi -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir do - eval ac_val=$`echo $ac_var` + eval ac_val=\$$ac_var + # Remove trailing slashes. case $ac_val in - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac + { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' @@ -845,7 +1462,7 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + $as_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 used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes @@ -858,130 +1475,76 @@ test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + { $as_echo "$as_me: error: Working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 + { (exit 1); exit 1; }; } + + # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_confdir=`(dirname "$0") 2>/dev/null || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then + if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&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' does not work" >&2 +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_CC_set=${CC+set} -ac_env_CC_value=$CC -ac_cv_env_CC_set=${CC+set} -ac_cv_env_CC_value=$CC -ac_env_CFLAGS_set=${CFLAGS+set} -ac_env_CFLAGS_value=$CFLAGS -ac_cv_env_CFLAGS_set=${CFLAGS+set} -ac_cv_env_CFLAGS_value=$CFLAGS -ac_env_LDFLAGS_set=${LDFLAGS+set} -ac_env_LDFLAGS_value=$LDFLAGS -ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=$LDFLAGS -ac_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_env_CPPFLAGS_value=$CPPFLAGS -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=$CPPFLAGS -ac_env_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP -ac_env_CXX_set=${CXX+set} -ac_env_CXX_value=$CXX -ac_cv_env_CXX_set=${CXX+set} -ac_cv_env_CXX_value=$CXX -ac_env_CXXFLAGS_set=${CXXFLAGS+set} -ac_env_CXXFLAGS_value=$CXXFLAGS -ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} -ac_cv_env_CXXFLAGS_value=$CXXFLAGS -ac_env_CXXCPP_set=${CXXCPP+set} -ac_env_CXXCPP_value=$CXXCPP -ac_cv_env_CXXCPP_set=${CXXCPP+set} -ac_cv_env_CXXCPP_value=$CXXCPP -ac_env_F77_set=${F77+set} -ac_env_F77_value=$F77 -ac_cv_env_F77_set=${F77+set} -ac_cv_env_F77_value=$F77 -ac_env_FFLAGS_set=${FFLAGS+set} -ac_env_FFLAGS_value=$FFLAGS -ac_cv_env_FFLAGS_set=${FFLAGS+set} -ac_cv_env_FFLAGS_value=$FFLAGS -ac_env_PKG_CONFIG_set=${PKG_CONFIG+set} -ac_env_PKG_CONFIG_value=$PKG_CONFIG -ac_cv_env_PKG_CONFIG_set=${PKG_CONFIG+set} -ac_cv_env_PKG_CONFIG_value=$PKG_CONFIG -ac_env_XORG_CFLAGS_set=${XORG_CFLAGS+set} -ac_env_XORG_CFLAGS_value=$XORG_CFLAGS -ac_cv_env_XORG_CFLAGS_set=${XORG_CFLAGS+set} -ac_cv_env_XORG_CFLAGS_value=$XORG_CFLAGS -ac_env_XORG_LIBS_set=${XORG_LIBS+set} -ac_env_XORG_LIBS_value=$XORG_LIBS -ac_cv_env_XORG_LIBS_set=${XORG_LIBS+set} -ac_cv_env_XORG_LIBS_value=$XORG_LIBS -ac_env_PCIUTILS_CFLAGS_set=${PCIUTILS_CFLAGS+set} -ac_env_PCIUTILS_CFLAGS_value=$PCIUTILS_CFLAGS -ac_cv_env_PCIUTILS_CFLAGS_set=${PCIUTILS_CFLAGS+set} -ac_cv_env_PCIUTILS_CFLAGS_value=$PCIUTILS_CFLAGS -ac_env_PCIUTILS_LIBS_set=${PCIUTILS_LIBS+set} -ac_env_PCIUTILS_LIBS_value=$PCIUTILS_LIBS -ac_cv_env_PCIUTILS_LIBS_set=${PCIUTILS_LIBS+set} -ac_cv_env_PCIUTILS_LIBS_value=$PCIUTILS_LIBS -ac_env_PCIACCESS_CFLAGS_set=${PCIACCESS_CFLAGS+set} -ac_env_PCIACCESS_CFLAGS_value=$PCIACCESS_CFLAGS -ac_cv_env_PCIACCESS_CFLAGS_set=${PCIACCESS_CFLAGS+set} -ac_cv_env_PCIACCESS_CFLAGS_value=$PCIACCESS_CFLAGS -ac_env_PCIACCESS_LIBS_set=${PCIACCESS_LIBS+set} -ac_env_PCIACCESS_LIBS_value=$PCIACCESS_LIBS -ac_cv_env_PCIACCESS_LIBS_set=${PCIACCESS_LIBS+set} -ac_cv_env_PCIACCESS_LIBS_value=$PCIACCESS_LIBS -ac_env_DRI_CFLAGS_set=${DRI_CFLAGS+set} -ac_env_DRI_CFLAGS_value=$DRI_CFLAGS -ac_cv_env_DRI_CFLAGS_set=${DRI_CFLAGS+set} -ac_cv_env_DRI_CFLAGS_value=$DRI_CFLAGS -ac_env_DRI_LIBS_set=${DRI_LIBS+set} -ac_env_DRI_LIBS_value=$DRI_LIBS -ac_cv_env_DRI_LIBS_set=${DRI_LIBS+set} -ac_cv_env_DRI_LIBS_value=$DRI_LIBS + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done # # Report the --help message. @@ -990,7 +1553,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures xf86-video-radeonhd 1.2.5 to adapt to many kinds of systems. +\`configure' configures xf86-video-radeonhd 1.3.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1010,14 +1573,11 @@ Configuration: -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] -_ACEOF - - cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] + [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] + [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify @@ -1027,18 +1587,26 @@ for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data [PREFIX/share] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --infodir=DIR info documentation [PREFIX/info] - --mandir=DIR man documentation [PREFIX/man] + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root + [DATAROOTDIR/doc/xf86-video-radeonhd] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF @@ -1056,29 +1624,29 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of xf86-video-radeonhd 1.2.5:";; + short | recursive ) echo "Configuration of xf86-video-radeonhd 1.3.0:";; esac cat <<\_ACEOF Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer - --enable-static[=PKGS] - build static libraries [default=no] + --enable-static[=PKGS] build static libraries [default=no] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors - --enable-shared[=PKGS] - build shared libraries [default=yes] + --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) - --disable-exa Disable EXA support [default], [enabled] - --disable-dri Disable DRI support [default], [enabled] + --disable-exa Disable EXA support (default enabled) + --disable-dri Disable DRI support (default enabled) --disable-atombios Disable AtomBIOS support [default=no] --disable-atombios-parser Disable AtomBIOS parser support [default=no] + --enable-shave use shave to make the build pretty [default=yes] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1086,11 +1654,10 @@ Optional Packages: --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] - --with-tags[=TAGS] - include additional configurations [automatic] + --with-tags[=TAGS] include additional configurations [automatic] --with-xorg-module-dir=DIR - Default xorg module directory - [default=$libdir/xorg/modules] + Default xorg module directory (default + $libdir/xorg/modules) --with-release-version=STRING Use release version string in package name @@ -1099,8 +1666,9 @@ Some influential environment variables: CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir> - CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have - headers in a nonstandard directory <include dir> + LIBS libraries to pass to the linker, e.g. -l<library> + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if + you have headers in a nonstandard directory <include dir> CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags @@ -1110,6 +1678,8 @@ Some influential environment variables: PKG_CONFIG path to pkg-config utility XORG_CFLAGS C compiler flags for XORG, overriding pkg-config XORG_LIBS linker flags for XORG, overriding pkg-config + XEXT_CFLAGS C compiler flags for XEXT, overriding pkg-config + XEXT_LIBS linker flags for XEXT, overriding pkg-config PCIUTILS_CFLAGS C compiler flags for PCIUTILS, overriding pkg-config PCIUTILS_LIBS @@ -1126,120 +1696,88 @@ it to find libraries and programs with nonstandard names/locations. Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/radeonhd>. _ACEOF +ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. - ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d $ac_dir || continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue ac_builddir=. -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix case $srcdir in - .) # No --srcdir option. We are building in place. + .) # We are building in place. ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$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="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - cd $ac_dir - # Check for guested configure; otherwise get Cygnus style configure. - if test -f $ac_srcdir/configure.gnu; then - echo - $SHELL $ac_srcdir/configure.gnu --help=recursive - elif test -f $ac_srcdir/configure; then - echo - $SHELL $ac_srcdir/configure --help=recursive - elif test -f $ac_srcdir/configure.ac || - test -f $ac_srcdir/configure.in; then - echo - $ac_configure --help +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi - cd $ac_popdir + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } done fi -test -n "$ac_init_help" && exit 0 +test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -xf86-video-radeonhd configure 1.2.5 -generated by GNU Autoconf 2.59 +xf86-video-radeonhd configure 1.3.0 +generated by GNU Autoconf 2.62 -Copyright (C) 2003 Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 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 + exit fi -exec 5>config.log -cat >&5 <<_ACEOF +cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by xf86-video-radeonhd $as_me 1.2.5, which was -generated by GNU Autoconf 2.59. Invocation command line was +It was created by xf86-video-radeonhd $as_me 1.3.0, which was +generated by GNU Autoconf 2.62. Invocation command line was $ $0 $@ _ACEOF +exec 5>>config.log { cat <<_ASUNAME ## --------- ## @@ -1258,7 +1796,7 @@ uname -v = `(uname -v) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -hostinfo = `(hostinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` @@ -1270,8 +1808,9 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" + $as_echo "PATH: $as_dir" done +IFS=$as_save_IFS } >&5 @@ -1293,7 +1832,6 @@ _ACEOF ac_configure_args= ac_configure_args0= ac_configure_args1= -ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do @@ -1304,8 +1842,8 @@ do -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; @@ -1326,9 +1864,7 @@ do -* ) ac_must_keep_next=true ;; esac fi - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - # Get rid of the leading space. - ac_sep=" " + ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done @@ -1339,8 +1875,8 @@ $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_ # 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. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { @@ -1353,20 +1889,35 @@ trap 'exit_status=$? _ASBOX echo # The following way of writing the cache mishandles newlines in values, -{ +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +$as_echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done (set) 2>&1 | - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=\ *) + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) sed -n \ - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" - ;; + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( *) - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; - esac; -} + esac | + sort +) echo cat <<\_ASBOX @@ -1377,22 +1928,28 @@ _ASBOX echo for ac_var in $ac_subst_vars do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX -## ------------- ## -## Output files. ## -## ------------- ## +## ------------------- ## +## File substitutions. ## +## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi @@ -1404,26 +1961,24 @@ _ASBOX ## ----------- ## _ASBOX echo - sed "/^$/d" confdefs.h | sort + cat confdefs.h echo fi test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" } >&5 - rm -f core *.core && - rm -rf conftest* confdefs* conf$$* $ac_clean_files && + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status - ' 0 +' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # 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 +rm -f -r conftest* confdefs.h # Predefined preprocessor variables. @@ -1453,18 +2008,24 @@ _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" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + ac_site_file1=$CONFIG_SITE +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue 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;} + { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi @@ -1474,54 +2035,61 @@ 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;} + { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in - [\\/]* | ?:[\\/]* ) . $cache_file;; - *) . ./$cache_file;; + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; esac fi else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} + { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false -for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do +for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val="\$ac_cv_env_${ac_var}_value" - eval ac_new_val="\$ac_env_${ac_var}_value" + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$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_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in @@ -1531,19 +2099,13 @@ echo "$as_me: current value: $ac_new_val" >&2;} fi done if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&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' and start over" >&2;} + { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - @@ -1568,36 +2130,47 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - ac_config_headers="$ac_config_headers config.h" +ac_config_headers="$ac_config_headers config.h" ac_aux_dir= -for ac_dir in . $srcdir/.; do - if test -f $ac_dir/install-sh; then +for ac_dir in . "$srcdir"/.; do + if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break - elif test -f $ac_dir/install.sh; then + elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break - elif test -f $ac_dir/shtool; then + elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$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.sh in . $srcdir/." >&5 -echo "$as_me: error: cannot find install-sh or install.sh in . $srcdir/." >&2;} + { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in . \"$srcdir\"/." >&5 +$as_echo "$as_me: error: cannot find install-sh or install.sh in . \"$srcdir\"/." >&2;} { (exit 1); exit 1; }; } fi -ac_config_guess="$SHELL $ac_aux_dir/config.guess" -ac_config_sub="$SHELL $ac_aux_dir/config.sub" -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + am__api_version="1.9" @@ -1614,11 +2187,12 @@ am__api_version="1.9" # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -1637,7 +2211,7 @@ case $as_dir/ in # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -1647,30 +2221,43 @@ case $as_dir/ in # program-specific install script used by HP pwplus--don't use. : else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi fi fi done done ;; esac + done +IFS=$as_save_IFS +rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$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 + # As a last resort, use the slow shell script. Don't cache a + # value 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. + # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 +{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. @@ -1681,17 +2268,14 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' test "$program_prefix" != NONE && - program_transform_name="s,^,$program_prefix,;$program_transform_name" + program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && - program_transform_name="s,\$,$program_suffix,;$program_transform_name" -# Double any \ or $. echo might interpret backslashes. + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. # By default was `s,x,x', remove it if useless. -cat <<\_ACEOF >conftest.sed -s/[\\$]/&&/g;s/;s,x,x,$// -_ACEOF -program_transform_name=`echo $program_transform_name | sed -f conftest.sed` -rm conftest.sed +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` @@ -1702,8 +2286,8 @@ if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= - { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 -echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 +$as_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 @@ -1743,10 +2327,10 @@ 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=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. @@ -1757,54 +2341,58 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then - echo "$as_me:$LINENO: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6 + { $as_echo "$as_me:$LINENO: result: $AWK" >&5 +$as_echo "$AWK" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "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=`echo "$2" | sed 'y,:./+-,___p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF +SHELL = /bin/sh all: - @echo 'ac_maketemp="$(MAKE)"' + @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac rm -f conftest.make fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } SET_MAKE= else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi @@ -1820,8 +2408,8 @@ rmdir .tst 2>/dev/null # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`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 distclean\" there first" >&2;} + { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 +$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi @@ -1837,7 +2425,7 @@ fi # Define the identity of the package. PACKAGE='xf86-video-radeonhd' - VERSION='1.2.5' + VERSION='1.3.0' cat >>confdefs.h <<_ACEOF @@ -1875,10 +2463,10 @@ if test "$cross_compiling" != 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=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. @@ -1889,34 +2477,36 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then - echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6 + { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. @@ -1927,27 +2517,41 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$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 + { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi - STRIP=$ac_ct_STRIP + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi else STRIP="$ac_cv_prog_STRIP" fi @@ -1968,17 +2572,17 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +{ $as_echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 +$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } + # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then - enableval="$enable_maintainer_mode" - USE_MAINTAINER_MODE=$enableval + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no -fi; - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 +fi + + { $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 +$as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then @@ -1993,11 +2597,14 @@ fi +ac_config_files="$ac_config_files shave shave-libtool" + + + # Program checks. -# Check whether --enable-static or --disable-static was given. +# Check whether --enable-static was given. if test "${enable_static+set}" = set; then - enableval="$enable_static" - p=${PACKAGE-default} + enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; @@ -2016,7 +2623,8 @@ if test "${enable_static+set}" = set; then esac else enable_static=no -fi; +fi + ac_ext=c @@ -2027,10 +2635,10 @@ ac_compiler_gnu=$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 program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2041,34 +2649,36 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. @@ -2079,38 +2689,53 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi ac_ct_CC=$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 + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi - CC=$ac_ct_CC + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi else CC="$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 program name with args. + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2121,76 +2746,36 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi CC=$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=$CC - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$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}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - 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="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$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 + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi + fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2202,17 +2787,18 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. @@ -2230,24 +2816,25 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then - for ac_prog in cl + for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2258,38 +2845,40 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC - for ac_prog in cl + for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. @@ -2300,58 +2889,92 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi ac_ct_CC=$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 + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + test -n "$ac_ct_CC" && break done - CC=$ac_ct_CC + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi fi fi -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH +$as_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=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5 - (eval $ac_compiler --version </dev/null >&5) 2>&5 +$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5 - (eval $ac_compiler -v </dev/null >&5) 2>&5 +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5 - (eval $ac_compiler -V </dev/null >&5) 2>&5 +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF @@ -2370,111 +2993,146 @@ main () } _ACEOF ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" +ac_clean_files="$ac_clean_files a.out a.out.dSYM 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 intuition # 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... $ECHO_C" >&6 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 +{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { (ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link_default") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $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 last -# resort. - -# Be careful to initialize this variable, since it used to be cached. -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. -ac_cv_exeext= -# b.out is created by i960 compilers. -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) - ;; - conftest.$ac_ext ) - # This is the source file. + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - # FIXME: I believe we export ac_cv_exeext for Libtool, - # but it would be cool to find out if it's true. Does anybody - # maintain Libtool? --akim. - export ac_cv_exeext + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. break;; * ) break;; esac done +test "$ac_cv_exeext" = no && ac_cv_exeext= + else - echo "$as_me: failed program was:" >&5 + ac_file='' +fi + +{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +if test -z "$ac_file"; then + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +{ { $as_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 +$as_echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$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 +# Check that 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 +{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&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" != yes; then if { ac_try='./$ac_file' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. + { { $as_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. +$as_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 +{ $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } -rm -f a.out a.exe conftest$ac_cv_exeext b.out +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -# Check the compiler produces executables we can run. If not, either +# Check that 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 +{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will @@ -2483,32 +3141,31 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 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_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext break;; * ) break;; esac done else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link + { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile 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 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT -echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -2526,39 +3183,46 @@ main () } _ACEOF rm -f conftest.o conftest.obj -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else - echo "$as_me: failed program was:" >&5 + $as_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 +{ { $as_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 compile +$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile 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 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$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... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -2579,50 +3243,54 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_compiler_gnu=no + ac_compiler_gnu=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$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=`test $ac_compiler_gnu = yes && echo yes` +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS -CFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -2638,38 +3306,121 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + 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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + 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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_prog_cc_g=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core 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 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then @@ -2685,12 +3436,12 @@ else CFLAGS= 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}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + $as_echo_n "(cached) " >&6 else - ac_cv_prog_cc_stdc=no + ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -2724,12 +3475,17 @@ static char *f (char * (*g) (char **, int), char **p, ...) /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std1 is added to get + as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std1. */ + that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; @@ -2744,205 +3500,58 @@ return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; return 0; } _ACEOF -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$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 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break -else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_c89=$ac_arg +else + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break done -rm -f conftest.$ac_ext conftest.$ac_objext +rm -f conftest.$ac_ext CC=$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 ;; +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:$LINENO: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:$LINENO: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; *) - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; 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 compiler -# 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=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $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 <stdlib.h> -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=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $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=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $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=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -2950,7 +3559,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" - ac_config_commands="$ac_config_commands depfiles" +ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} @@ -2960,8 +3569,8 @@ am__doit: .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 +{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none @@ -2988,15 +3597,15 @@ if test "$am__include" = "#"; then fi -echo "$as_me:$LINENO: result: $_am_result" >&5 -echo "${ECHO_T}$_am_result" >&6 +{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } rm -f confinc confmf -# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. +# Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then - enableval="$enable_dependency_tracking" + enableval=$enable_dependency_tracking; +fi -fi; if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' @@ -3016,10 +3625,10 @@ fi depcc="$CC" am_compiler_list= -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&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 @@ -3106,8 +3715,8 @@ else fi fi -echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 +{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type @@ -3124,22 +3733,91 @@ fi -SED=${SED-sed} +{ $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if test "${ac_cv_path_SED+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + $as_unset ac_script || ac_script= + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done +done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable sed could be found in \$PATH" >&5 +$as_echo "$as_me: error: no acceptable sed could be found in \$PATH" >&2;} + { (exit 1); exit 1; }; } + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed -echo "$as_me:$LINENO: checking whether $SED can substitute tabs and newlines for text" >&5 -echo $ECHO_N "checking whether $SED can substitute tabs and newlines for text... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether $SED can substitute tabs and newlines for text" >&5 +$as_echo_n "checking whether $SED can substitute tabs and newlines for text... " >&6; } cat>sed-test.1<<EOF y EOF echo x | sed 's/x/\ty\n/' > sed-test.2 if cmp -s sed-test.1 sed-test.2; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -3155,10 +3833,9 @@ rm -f sed-test.1 sed-test.2 CXX=no F77=no -# Check whether --enable-shared or --disable-shared was given. +# Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then - enableval="$enable_shared" - p=${PACKAGE-default} + enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; @@ -3177,12 +3854,12 @@ if test "${enable_shared+set}" = set; then esac else enable_shared=yes -fi; +fi + -# Check whether --enable-fast-install or --disable-fast-install was given. +# Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then - enableval="$enable_fast_install" - p=${PACKAGE-default} + enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; @@ -3201,66 +3878,96 @@ if test "${enable_fast_install+set}" = set; then esac else enable_fast_install=yes -fi; +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;} +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/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 +{ $as_echo "$as_me:$LINENO: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_build_alias=$build_alias -test -z "$ac_cv_build_alias" && - ac_cv_build_alias=`$ac_config_guess` -test -z "$ac_cv_build_alias" && - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } -ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_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 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +$as_echo "$as_me: error: invalid value of canonical build" >&2;} + { (exit 1); exit 1; }; };; +esac build=$ac_cv_build -build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`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 +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:$LINENO: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_host_alias=$host_alias -test -z "$ac_cv_host_alias" && - ac_cv_host_alias=$ac_cv_build_alias -ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } +fi fi -echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +$as_echo "$as_me: error: invalid value of canonical host" >&2;} + { (exit 1); exit 1; }; };; +esac host=$ac_cv_host -host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`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... $ECHO_C" >&6 +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } if test "${lt_cv_path_SED+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&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. @@ -3271,7 +3978,7 @@ do test -z "$as_dir" && as_dir=. 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 + if { test -f "$as_dir/$lt_ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$lt_ac_prog$ac_exec_ext"; }; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done @@ -3313,37 +4020,156 @@ fi SED=$lt_cv_path_SED -echo "$as_me:$LINENO: result: $SED" >&5 -echo "${ECHO_T}$SED" >&6 +{ $as_echo "$as_me:$LINENO: result: $SED" >&5 +$as_echo "$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}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if test "${ac_cv_path_GREP+set}" = set; then + $as_echo_n "(cached) " >&6 else - if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done +done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } + fi +else + ac_cv_path_GREP=$GREP fi -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6 - EGREP=$ac_cv_prog_egrep +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" -# Check whether --with-gnu-ld or --without-gnu-ld was given. +{ $as_echo "$as_me:$LINENO: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done +done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + + +# Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then - withval="$with_gnu_ld" - test "$withval" = no || with_gnu_ld=yes + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no -fi; +fi + ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld 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 + { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw @@ -3372,14 +4198,14 @@ echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 ;; esac elif test "$with_gnu_ld" = yes; then - echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } else - echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR @@ -3409,19 +4235,19 @@ fi LD="$lt_cv_path_LD" if test -n "$LD"; then - echo "$as_me:$LINENO: result: $LD" >&5 -echo "${ECHO_T}$LD" >&6 + { $as_echo "$as_me:$LINENO: result: $LD" >&5 +$as_echo "$LD" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} +test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +$as_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 +{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 </dev/null` in @@ -3433,20 +4259,20 @@ case `$LD -v 2>&1 </dev/null` in ;; esac fi -echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$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 +{ $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi -echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 -echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; @@ -3463,10 +4289,10 @@ case $host_os in ;; esac -echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 -echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 +$as_echo_n "checking for BSD-compatible nm... " >&6; } if test "${lt_cv_path_NM+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. @@ -3512,25 +4338,25 @@ else test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi -echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 -echo "${ECHO_T}$lt_cv_path_NM" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } NM="$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 +{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } else - echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -echo "${ECHO_T}no, using $LN_S" >&6 + { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } fi -echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 -echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= @@ -3713,8 +4539,8 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) esac fi -echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 -echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown @@ -3732,11 +4558,11 @@ LTCFLAGS=${LTCFLAGS-"$CFLAGS"} compiler=$CC -# Check whether --enable-libtool-lock or --disable-libtool-lock was given. +# Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then - enableval="$enable_libtool_lock" + enableval=$enable_libtool_lock; +fi -fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good @@ -3748,7 +4574,7 @@ ia64-*-hpux*) if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) @@ -3763,11 +4589,11 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 3766 "configure"' > conftest.$ac_ext + echo '#line 4592 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in @@ -3805,7 +4631,7 @@ s390*-*linux*|sparc*-*linux*) if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *32-bit*) @@ -3855,10 +4681,10 @@ s390*-*linux*|sparc*-*linux*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$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 + { $as_echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -3882,35 +4708,36 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then lt_cv_cc_needs_belf=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -lt_cv_cc_needs_belf=no + lt_cv_cc_needs_belf=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -3919,8 +4746,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$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 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" @@ -3932,7 +4759,7 @@ sparc*-*solaris*) if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *64-bit*) @@ -3961,15 +4788,15 @@ ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$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 +{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" @@ -3996,35 +4823,35 @@ cat >>conftest.$ac_ext <<_ACEOF #endif Syntax error _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : else - echo "$as_me: failed program was:" >&5 + $as_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 + # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -4034,34 +4861,34 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <ac_nonexistent.h> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi + rm -f conftest.err conftest.$ac_ext done @@ -4079,8 +4906,8 @@ fi else ac_cv_prog_CPP=$CPP fi -echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6 +{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 +$as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do @@ -4103,35 +4930,35 @@ cat >>conftest.$ac_ext <<_ACEOF #endif Syntax error _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : else - echo "$as_me: failed program was:" >&5 + $as_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 + # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -4141,34 +4968,34 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <ac_nonexistent.h> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi + rm -f conftest.err conftest.$ac_ext done @@ -4177,9 +5004,9 @@ rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check + { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi @@ -4191,10 +5018,10 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$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 +{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -4216,35 +5043,32 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_header_stdc=no + ac_cv_header_stdc=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. @@ -4300,6 +5124,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <ctype.h> +#include <stdlib.h> #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) @@ -4319,36 +5144,50 @@ main () for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); + return 2; + return 0; } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $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 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF @@ -4370,11 +5209,11 @@ fi for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do -as_ac_Header=`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}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -4387,41 +5226,41 @@ $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 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_Header=no" + eval "$as_ac_Header=no" fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core 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'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if test `eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` = yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -4432,19 +5271,21 @@ done for ac_header in dlfcn.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = 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}\" = 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 +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&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 +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -4455,41 +5296,38 @@ $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 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no 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 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$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 +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -4498,101 +5336,106 @@ 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 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$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 compiler, 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 compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; 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 documentation" >&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 preprocessor'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 compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX ## ------------------------------------------------------------------------------------------------ ## ## Report this to https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/radeonhd ## ## ------------------------------------------------------------------------------------------------ ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | 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}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +if test `eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` = yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done -ac_ext=cc +ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$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 +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. @@ -4603,38 +5446,40 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then - echo "$as_me:$LINENO: result: $CXX" >&5 -echo "${ECHO_T}$CXX" >&6 + { $as_echo "$as_me:$LINENO: result: $CXX" >&5 +$as_echo "$CXX" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX - for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe 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=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. @@ -4645,57 +5490,91 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi ac_ct_CXX=$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 + { $as_echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 +$as_echo "$ac_ct_CXX" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + test -n "$ac_ct_CXX" && break done -test -n "$ac_ct_CXX" || ac_ct_CXX="g++" - CXX=$ac_ct_CXX + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi fi - + fi +fi # Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C++ compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5 - (eval $ac_compiler --version </dev/null >&5) 2>&5 +$as_echo "$as_me:$LINENO: checking for C++ compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5 - (eval $ac_compiler -v </dev/null >&5) 2>&5 +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5 - (eval $ac_compiler -V </dev/null >&5) 2>&5 +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } -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... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 +$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -4716,50 +5595,54 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_compiler_gnu=no + ac_compiler_gnu=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$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=`test $ac_compiler_gnu = yes && echo yes` +{ $as_echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 +$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GXX=yes +else + GXX= +fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS -CXXFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 -echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 +$as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -4775,160 +5658,137 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_prog_cxx_g=no -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" = set; then - CXXFLAGS=$ac_save_CXXFLAGS -elif test $ac_cv_prog_cxx_g = yes; then - if test "$GXX" = yes; then - CXXFLAGS="-g -O2" - else - CXXFLAGS="-g" - fi -else - if test "$GXX" = yes; then - CXXFLAGS="-O2" - else - CXXFLAGS= - 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 + CXXFLAGS="" + 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 <stdlib.h> + 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 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : else - echo "$as_me: failed program was:" >&5 + $as_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 + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + 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 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cxx_g=yes else - echo "$as_me: failed program was:" >&5 + $as_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 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -ac_ext=cc +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 +$as_echo "$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -4936,10 +5796,10 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu depcc="$CXX" am_compiler_list= -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&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 @@ -5026,8 +5886,8 @@ else fi fi -echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 +{ $as_echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type @@ -5048,16 +5908,16 @@ fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then - ac_ext=cc + ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$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 +{ $as_echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 +$as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" @@ -5084,35 +5944,35 @@ cat >>conftest.$ac_ext <<_ACEOF #endif Syntax error _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then : else - echo "$as_me: failed program was:" >&5 + $as_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 + # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -5122,34 +5982,34 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <ac_nonexistent.h> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi + rm -f conftest.err conftest.$ac_ext done @@ -5167,8 +6027,8 @@ fi else ac_cv_prog_CXXCPP=$CXXCPP fi -echo "$as_me:$LINENO: result: $CXXCPP" >&5 -echo "${ECHO_T}$CXXCPP" >&6 +{ $as_echo "$as_me:$LINENO: result: $CXXCPP" >&5 +$as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do @@ -5191,35 +6051,35 @@ cat >>conftest.$ac_ext <<_ACEOF #endif Syntax error _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then : else - echo "$as_me: failed program was:" >&5 + $as_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 + # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -5229,34 +6089,34 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <ac_nonexistent.h> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi + rm -f conftest.err conftest.$ac_ext done @@ -5265,14 +6125,14 @@ rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else - { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check + { { $as_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 +$as_echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi -ac_ext=cc +ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -5286,14 +6146,14 @@ ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$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 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran + for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. @@ -5304,38 +6164,40 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then - echo "$as_me:$LINENO: result: $F77" >&5 -echo "${ECHO_T}$F77" >&6 + { $as_echo "$as_me:$LINENO: result: $F77" >&5 +$as_echo "$F77" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 - for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran + for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. @@ -5346,50 +6208,84 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_F77="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi ac_ct_F77=$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 + { $as_echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 +$as_echo "$ac_ct_F77" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + test -n "$ac_ct_F77" && break done - F77=$ac_ct_F77 + if test "x$ac_ct_F77" = x; then + F77="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + F77=$ac_ct_F77 + fi fi # Provide some information about the compiler. -echo "$as_me:5376:" \ - "checking for Fortran 77 compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5 - (eval $ac_compiler --version </dev/null >&5) 2>&5 +$as_echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5 - (eval $ac_compiler -v </dev/null >&5) 2>&5 +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5 - (eval $ac_compiler -V </dev/null >&5) 2>&5 +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out @@ -5397,10 +6293,10 @@ rm -f a.out # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F -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 compiler... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 +$as_echo_n "checking whether we are using the GNU Fortran 77 compiler... " >&6; } if test "${ac_cv_f77_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF program main @@ -5411,48 +6307,45 @@ else end _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_f77_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_compiler_gnu=no + ac_compiler_gnu=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi -echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 +$as_echo "$ac_cv_f77_compiler_gnu" >&6; } ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= -echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 -echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 +$as_echo_n "checking whether $F77 accepts -g... " >&6; } if test "${ac_cv_prog_f77_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else FFLAGS=-g cat >conftest.$ac_ext <<_ACEOF @@ -5461,39 +6354,36 @@ cat >conftest.$ac_ext <<_ACEOF end _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_f77_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_prog_f77_g=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_prog_f77_g=no + ac_cv_prog_f77_g=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core 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 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 +$as_echo "$ac_cv_prog_f77_g" >&6; } if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then @@ -5510,7 +6400,11 @@ else fi fi -G77=`test $ac_compiler_gnu = yes && echo yes` +if test $ac_compiler_gnu = yes; then + G77=yes +else + G77= +fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -5521,10 +6415,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! # find the maximum length of command line arguments -echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 -echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" @@ -5633,11 +6527,11 @@ else 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 + { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } else - echo "$as_me:$LINENO: result: none" >&5 -echo "${ECHO_T}none" >&6 + { $as_echo "$as_me:$LINENO: result: none" >&5 +$as_echo "none" >&6; } fi @@ -5645,10 +6539,10 @@ fi # Check for command to grab the raw symbol name followed by C symbol from nm. -echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 -echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. @@ -5753,14 +6647,14 @@ EOF if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.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 \> $nlist) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then @@ -5815,7 +6709,7 @@ EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi @@ -5850,17 +6744,17 @@ if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - echo "$as_me:$LINENO: result: failed" >&5 -echo "${ECHO_T}failed" >&6 + { $as_echo "$as_me:$LINENO: result: failed" >&5 +$as_echo "failed" >&6; } else - echo "$as_me:$LINENO: result: ok" >&5 -echo "${ECHO_T}ok" >&6 + { $as_echo "$as_me:$LINENO: result: ok" >&5 +$as_echo "ok" >&6; } fi -echo "$as_me:$LINENO: checking for objdir" >&5 -echo $ECHO_N "checking for objdir... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } if test "${lt_cv_objdir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null @@ -5872,8 +6766,8 @@ else fi rmdir .libs 2>/dev/null fi -echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 -echo "${ECHO_T}$lt_cv_objdir" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir @@ -5924,10 +6818,10 @@ with_gnu_ld="$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 program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. @@ -5938,34 +6832,36 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then - echo "$as_me:$LINENO: result: $AR" >&5 -echo "${ECHO_T}$AR" >&6 + { $as_echo "$as_me:$LINENO: result: $AR" >&5 +$as_echo "$AR" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. @@ -5976,27 +6872,41 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS - test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" fi fi ac_ct_AR=$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 + { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi - AR=$ac_ct_AR + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi else AR="$ac_cv_prog_AR" fi @@ -6004,10 +6914,10 @@ 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=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. @@ -6018,34 +6928,36 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then - echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6 + { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. @@ -6056,27 +6968,41 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$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 + { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi - RANLIB=$ac_ct_RANLIB + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi else RANLIB="$ac_cv_prog_RANLIB" fi @@ -6084,10 +7010,10 @@ 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=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. @@ -6098,34 +7024,36 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then - echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6 + { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. @@ -6136,27 +7064,41 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$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 + { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi - STRIP=$ac_ct_STRIP + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi else STRIP="$ac_cv_prog_STRIP" fi @@ -6215,10 +7157,10 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$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 + { $as_echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) @@ -6268,19 +7210,19 @@ fi MAGIC_CMD="$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 + { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "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 + { $as_echo "$as_me:$LINENO: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) @@ -6330,11 +7272,11 @@ fi MAGIC_CMD="$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 + { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi else @@ -6352,10 +7294,10 @@ esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DSYMUTIL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. @@ -6366,34 +7308,36 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then - echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 -echo "${ECHO_T}$DSYMUTIL" >&6 + { $as_echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. @@ -6404,27 +7348,41 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS - test -z "$ac_cv_prog_ac_ct_DSYMUTIL" && ac_cv_prog_ac_ct_DSYMUTIL=":" fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then - echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5 -echo "${ECHO_T}$ac_ct_DSYMUTIL" >&6 + { $as_echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi - DSYMUTIL=$ac_ct_DSYMUTIL + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi @@ -6432,10 +7390,10 @@ fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_NMEDIT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. @@ -6446,34 +7404,36 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then - echo "$as_me:$LINENO: result: $NMEDIT" >&5 -echo "${ECHO_T}$NMEDIT" >&6 + { $as_echo "$as_me:$LINENO: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. @@ -6484,36 +7444,50 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS - test -z "$ac_cv_prog_ac_ct_NMEDIT" && ac_cv_prog_ac_ct_NMEDIT=":" fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then - echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5 -echo "${ECHO_T}$ac_ct_NMEDIT" >&6 + { $as_echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi - NMEDIT=$ac_ct_NMEDIT + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi else NMEDIT="$ac_cv_prog_NMEDIT" fi - echo "$as_me:$LINENO: checking for -single_module linker flag" >&5 -echo $ECHO_N "checking for -single_module linker flag... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } if test "${lt_cv_apple_cc_single_mod+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then @@ -6531,12 +7505,12 @@ else rm conftest.c fi fi -echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 -echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6 - echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 -echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + { $as_echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if test "${lt_cv_ld_exported_symbols_list+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS @@ -6558,41 +7532,42 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then lt_cv_ld_exported_symbols_list=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -lt_cv_ld_exported_symbols_list=no + lt_cv_ld_exported_symbols_list=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi -echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5 -echo "${ECHO_T}$lt_cv_ld_exported_symbols_list" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } case $host_os in rhapsody* | darwin1.[0123]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; @@ -6632,21 +7607,21 @@ echo "${ECHO_T}$lt_cv_ld_exported_symbols_list" >&6 enable_dlopen=no enable_win32_dll=no -# Check whether --enable-libtool-lock or --disable-libtool-lock was given. +# Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then - enableval="$enable_libtool_lock" + enableval=$enable_libtool_lock; +fi -fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes -# Check whether --with-pic or --without-pic was given. +# Check whether --with-pic was given. if test "${with_pic+set}" = set; then - withval="$with_pic" - pic_mode="$withval" + withval=$with_pic; pic_mode="$withval" else pic_mode=default -fi; +fi + test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script @@ -6704,10 +7679,10 @@ if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' -echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext @@ -6722,11 +7697,11 @@ else -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:6725: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7700: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:6729: \$? = $ac_status" >&5 + echo "$as_me:7704: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -6739,8 +7714,8 @@ else $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 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" @@ -6754,8 +7729,8 @@ lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= -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 +{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' @@ -6986,18 +7961,18 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 esac fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 +$as_echo "$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 works... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test "${lt_cv_prog_compiler_pic_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext @@ -7012,11 +7987,11 @@ else -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:7015: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7990: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7019: \$? = $ac_status" >&5 + echo "$as_me:7994: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7029,8 +8004,8 @@ else $rm conftest* fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_pic_works" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in @@ -7057,10 +8032,10 @@ esac # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" @@ -7085,8 +8060,8 @@ else LDFLAGS="$save_LDFLAGS" fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_static_works" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : @@ -7095,10 +8070,10 @@ else fi -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $rm -r conftest 2>/dev/null @@ -7116,11 +8091,11 @@ else -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:7119: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8094: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7123: \$? = $ac_status" >&5 + echo "$as_me:8098: \$? = $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 recognized @@ -7142,34 +8117,34 @@ else $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 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 + { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } if test "$hard_links" = 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;} + { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= @@ -7594,27 +8569,26 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { @@ -7629,11 +8603,14 @@ if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi @@ -7662,27 +8639,26 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { @@ -7697,11 +8673,14 @@ if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi @@ -8152,8 +9131,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi esac fi -echo "$as_me:$LINENO: result: $ld_shlibs" >&5 -echo "${ECHO_T}$ld_shlibs" >&6 +{ $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no # @@ -8173,15 +9152,15 @@ x|xyes) # Test whether the compiler implicitly links with -lc since on some # 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 + { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $rm conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest @@ -8199,7 +9178,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no @@ -8211,16 +9190,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& 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 + { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 +$as_echo "$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 +{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= @@ -8821,19 +9800,19 @@ uts4*) dynamic_linker=no ;; esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 +{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec" fi sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec" fi @@ -8845,8 +9824,8 @@ if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var" || \ @@ -8870,8 +9849,8 @@ else # directories. hardcode_action=unsupported fi -echo "$as_me:$LINENO: result: $hardcode_action" >&5 -echo "${ECHO_T}$hardcode_action" >&6 +{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink; then # Fast installation is not supported @@ -8884,13 +9863,13 @@ fi striplib= old_striplib= -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in @@ -8898,16 +9877,16 @@ else if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi ;; *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } ;; esac fi @@ -8939,10 +9918,10 @@ else 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 + { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" @@ -8953,56 +9932,57 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #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 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 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_dl_dlopen=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_dl_dlopen=no + ac_cv_lib_dl_dlopen=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$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 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else @@ -9016,10 +9996,10 @@ fi ;; *) - echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for shl_load" >&5 +$as_echo_n "checking for shl_load... " >&6; } if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -9044,75 +10024,70 @@ cat >>conftest.$ac_ext <<_ACEOF #undef shl_load -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #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) +#if defined __stub_shl_load || defined __stub___shl_load choke me -#else -char (*f) () = shl_load; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != shl_load; +return 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 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_shl_load=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_shl_load=no + ac_cv_func_shl_load=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ 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 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 +$as_echo "$ac_cv_func_shl_load" >&6; } if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="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 + { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" @@ -9123,63 +10098,64 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #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 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 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_dld_shl_load=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_dld_shl_load=no + ac_cv_lib_dld_shl_load=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$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 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else - echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for dlopen" >&5 +$as_echo_n "checking for dlopen... " >&6; } if test "${ac_cv_func_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -9204,75 +10180,70 @@ cat >>conftest.$ac_ext <<_ACEOF #undef dlopen -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_dlopen) || defined (__stub___dlopen) +#if defined __stub_dlopen || defined __stub___dlopen choke me -#else -char (*f) () = dlopen; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != dlopen; +return 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 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_dlopen=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_dlopen=no + ac_cv_func_dlopen=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 +$as_echo "$ac_cv_func_dlopen" >&6; } if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" @@ -9283,63 +10254,64 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #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 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 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_dl_dlopen=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_dl_dlopen=no + ac_cv_lib_dl_dlopen=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$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 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" @@ -9350,63 +10322,64 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #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 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 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_svld_dlopen=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_svld_dlopen=no + ac_cv_lib_svld_dlopen=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" @@ -9417,56 +10390,57 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char dld_link (); int main () { -dld_link (); +return dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_dld_dld_link=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_dld_dld_link=no + ac_cv_lib_dld_dld_link=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi @@ -9506,10 +10480,10 @@ fi save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" - echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross @@ -9517,7 +10491,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<EOF -#line 9520 "configure" +#line 10494 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -9583,7 +10557,7 @@ EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? @@ -9601,15 +10575,15 @@ rm -fr conftest* fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross @@ -9617,7 +10591,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<EOF -#line 9620 "configure" +#line 10594 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -9683,7 +10657,7 @@ EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? @@ -9701,8 +10675,8 @@ rm -fr conftest* fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" @@ -9724,13 +10698,13 @@ fi # Report which library types will actually be built -echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 -echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $can_build_shared" >&5 -echo "${ECHO_T}$can_build_shared" >&6 +{ $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } +{ $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } -echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and @@ -9750,15 +10724,15 @@ aix[4-9]*) fi ;; esac -echo "$as_me:$LINENO: result: $enable_shared" >&5 -echo "${ECHO_T}$enable_shared" >&6 +{ $as_echo "$as_me:$LINENO: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } -echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes -echo "$as_me:$LINENO: result: $enable_static" >&5 -echo "${ECHO_T}$enable_static" >&6 +{ $as_echo "$as_me:$LINENO: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh @@ -9851,8 +10825,8 @@ if test -f "$ltmain"; then cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" - { echo "$as_me:$LINENO: creating $ofile" >&5 -echo "$as_me: creating $ofile" >&6;} + { $as_echo "$as_me:$LINENO: creating $ofile" >&5 +$as_echo "$as_me: creating $ofile" >&6;} cat <<__EOF__ >> "$cfgfile" #! $SHELL @@ -10256,26 +11230,26 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" -# Check whether --with-tags or --without-tags was given. +# Check whether --with-tags was given. if test "${with_tags+set}" = set; then - withval="$with_tags" - tagnames="$withval" -fi; + withval=$with_tags; tagnames="$withval" +fi + if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then - { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 -echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 +$as_echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then - { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 -echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 +$as_echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} else - { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 -echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 +$as_echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi if test -z "$LTCFLAGS"; then @@ -10292,16 +11266,16 @@ echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in "") ;; - *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 -echo "$as_me: error: invalid tag name: $tagname" >&2;} + *) { { $as_echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 +$as_echo "$as_me: error: invalid tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then - { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 -echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} + { { $as_echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 +$as_echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} { (exit 1); exit 1; }; } fi @@ -10314,7 +11288,7 @@ echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then - ac_ext=cc + ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -10434,18 +11408,18 @@ if test "$GXX" = yes; then # Set up default GNU C++ configuration -# Check whether --with-gnu-ld or --without-gnu-ld was given. +# Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then - withval="$with_gnu_ld" - test "$withval" = no || with_gnu_ld=yes + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no -fi; +fi + ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld 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 + { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw @@ -10474,14 +11448,14 @@ echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 ;; esac elif test "$with_gnu_ld" = yes; then - echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } else - echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR @@ -10511,19 +11485,19 @@ fi LD="$lt_cv_path_LD" if test -n "$LD"; then - echo "$as_me:$LINENO: result: $LD" >&5 -echo "${ECHO_T}$LD" >&6 + { $as_echo "$as_me:$LINENO: result: $LD" >&5 +$as_echo "$LD" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} +test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +$as_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 +{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 </dev/null` in @@ -10535,8 +11509,8 @@ case `$LD -v 2>&1 </dev/null` in ;; esac fi -echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld @@ -10586,8 +11560,8 @@ else fi # PORTME: fill in a description of your system's C++ link characteristics -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) @@ -10699,27 +11673,26 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { @@ -10734,11 +11707,14 @@ if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi @@ -10768,27 +11744,26 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { @@ -10803,11 +11778,14 @@ if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi @@ -11536,8 +12514,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ld_shlibs_CXX=no ;; esac -echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 -echo "${ECHO_T}$ld_shlibs_CXX" >&6 +{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" @@ -11556,7 +12534,7 @@ EOF if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. @@ -11712,8 +12690,8 @@ lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= -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 +{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then @@ -11996,18 +12974,18 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 esac fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 +$as_echo "$lt_prog_compiler_pic_CXX" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext @@ -12022,11 +13000,11 @@ else -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:12025: $lt_compile\"" >&5) + (eval echo "\"\$as_me:13003: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:12029: \$? = $ac_status" >&5 + echo "$as_me:13007: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -12039,8 +13017,8 @@ else $rm conftest* fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_CXX" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in @@ -12067,10 +13045,10 @@ esac # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" -echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" @@ -12095,8 +13073,8 @@ else LDFLAGS="$save_LDFLAGS" fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_CXX" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_static_works_CXX" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then : @@ -12105,10 +13083,10 @@ else fi -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $rm -r conftest 2>/dev/null @@ -12126,11 +13104,11 @@ else -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:12129: $lt_compile\"" >&5) + (eval echo "\"\$as_me:13107: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:12133: \$? = $ac_status" >&5 + echo "$as_me:13111: \$? = $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 recognized @@ -12152,34 +13130,34 @@ else $rm conftest* fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 + { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } if test "$hard_links" = 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;} + { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in @@ -12204,8 +13182,8 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar esac exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' -echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 -echo "${ECHO_T}$ld_shlibs_CXX" >&6 +{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no # @@ -12225,15 +13203,15 @@ x|xyes) # Test whether the compiler implicitly links with -lc since on some # 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 + { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $rm conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest @@ -12251,7 +13229,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no @@ -12263,16 +13241,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& cat conftest.err 1>&5 fi $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 -echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6 + { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 +$as_echo "$archive_cmds_need_lc_CXX" >&6; } ;; esac fi ;; esac -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= @@ -12821,19 +13799,19 @@ uts4*) dynamic_linker=no ;; esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 +{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec" fi sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec" fi @@ -12845,8 +13823,8 @@ if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || \ test -n "$runpath_var_CXX" || \ @@ -12870,8 +13848,8 @@ else # directories. hardcode_action_CXX=unsupported fi -echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 -echo "${ECHO_T}$hardcode_action_CXX" >&6 +{ $as_echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 +$as_echo "$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink; then # Fast installation is not supported @@ -13409,13 +14387,13 @@ done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` -echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 -echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $can_build_shared" >&5 -echo "${ECHO_T}$can_build_shared" >&6 +{ $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } +{ $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } -echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and @@ -13434,15 +14412,15 @@ aix[4-9]*) fi ;; esac -echo "$as_me:$LINENO: result: $enable_shared" >&5 -echo "${ECHO_T}$enable_shared" >&6 +{ $as_echo "$as_me:$LINENO: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } -echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes -echo "$as_me:$LINENO: result: $enable_static" >&5 -echo "${ECHO_T}$enable_static" >&6 +{ $as_echo "$as_me:$LINENO: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } GCC_F77="$G77" LD_F77="$LD" @@ -13451,8 +14429,8 @@ lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= -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 +{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' @@ -13683,18 +14661,18 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 esac fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 +$as_echo "$lt_prog_compiler_pic_F77" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... " >&6; } if test "${lt_cv_prog_compiler_pic_works_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext @@ -13709,11 +14687,11 @@ else -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:13712: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14690: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:13716: \$? = $ac_status" >&5 + echo "$as_me:14694: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -13726,8 +14704,8 @@ else $rm conftest* fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_F77" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_F77" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_F77" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works_F77" >&6; } if test x"$lt_cv_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in @@ -13754,10 +14732,10 @@ esac # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" -echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_F77=no save_LDFLAGS="$LDFLAGS" @@ -13782,8 +14760,8 @@ else LDFLAGS="$save_LDFLAGS" fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_F77" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_static_works_F77" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_F77" >&5 +$as_echo "$lt_cv_prog_compiler_static_works_F77" >&6; } if test x"$lt_cv_prog_compiler_static_works_F77" = xyes; then : @@ -13792,10 +14770,10 @@ else fi -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_F77=no $rm -r conftest 2>/dev/null @@ -13813,11 +14791,11 @@ else -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:13816: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14794: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:13820: \$? = $ac_status" >&5 + echo "$as_me:14798: \$? = $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 recognized @@ -13839,34 +14817,34 @@ else $rm conftest* fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_F77" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 + { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } if test "$hard_links" = 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;} + { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag_F77= @@ -14281,27 +15259,26 @@ _LT_EOF end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_f77_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { @@ -14316,11 +15293,14 @@ if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi @@ -14339,27 +15319,26 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_f77_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { @@ -14374,11 +15353,14 @@ if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi @@ -14829,8 +15811,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi esac fi -echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 -echo "${ECHO_T}$ld_shlibs_F77" >&6 +{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 +$as_echo "$ld_shlibs_F77" >&6; } test "$ld_shlibs_F77" = no && can_build_shared=no # @@ -14850,15 +15832,15 @@ x|xyes) # Test whether the compiler implicitly links with -lc since on some # 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 + { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $rm conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest @@ -14876,7 +15858,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_F77=no @@ -14888,16 +15870,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& cat conftest.err 1>&5 fi $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 -echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6 + { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 +$as_echo "$archive_cmds_need_lc_F77" >&6; } ;; esac fi ;; esac -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= @@ -15446,19 +16428,19 @@ uts4*) dynamic_linker=no ;; esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 +{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec" fi sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec" fi @@ -15470,8 +16452,8 @@ if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || \ test -n "$runpath_var_F77" || \ @@ -15495,8 +16477,8 @@ else # directories. hardcode_action_F77=unsupported fi -echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 -echo "${ECHO_T}$hardcode_action_F77" >&6 +{ $as_echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 +$as_echo "$hardcode_action_F77" >&6; } if test "$hardcode_action_F77" = relink; then # Fast installation is not supported @@ -15939,7 +16921,6 @@ CC="$lt_save_CC" if test -n "$GCJ" && test "X$GCJ" != "Xno"; then - # Source file extension for Java test sources. ac_ext=java @@ -16007,10 +16988,10 @@ if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' -echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext @@ -16025,11 +17006,11 @@ else -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:16028: $lt_compile\"" >&5) + (eval echo "\"\$as_me:17009: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:16032: \$? = $ac_status" >&5 + echo "$as_me:17013: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -16042,8 +17023,8 @@ else $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 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" @@ -16057,8 +17038,8 @@ lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= -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 +{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' @@ -16289,18 +17270,18 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 esac fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 +$as_echo "$lt_prog_compiler_pic_GCJ" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... " >&6; } if test "${lt_cv_prog_compiler_pic_works_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext @@ -16315,11 +17296,11 @@ else -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:16318: $lt_compile\"" >&5) + (eval echo "\"\$as_me:17299: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:16322: \$? = $ac_status" >&5 + echo "$as_me:17303: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -16332,8 +17313,8 @@ else $rm conftest* fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_GCJ" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_GCJ" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_GCJ" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works_GCJ" >&6; } if test x"$lt_cv_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in @@ -16360,10 +17341,10 @@ esac # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" -echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_GCJ=no save_LDFLAGS="$LDFLAGS" @@ -16388,8 +17369,8 @@ else LDFLAGS="$save_LDFLAGS" fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_GCJ" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_static_works_GCJ" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_GCJ" >&5 +$as_echo "$lt_cv_prog_compiler_static_works_GCJ" >&6; } if test x"$lt_cv_prog_compiler_static_works_GCJ" = xyes; then : @@ -16398,10 +17379,10 @@ else fi -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_GCJ=no $rm -r conftest 2>/dev/null @@ -16419,11 +17400,11 @@ else -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:16422: $lt_compile\"" >&5) + (eval echo "\"\$as_me:17403: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:16426: \$? = $ac_status" >&5 + echo "$as_me:17407: \$? = $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 recognized @@ -16445,34 +17426,34 @@ else $rm conftest* fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6 +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_GCJ" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 + { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } if test "$hard_links" = 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;} + { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag_GCJ= @@ -16897,27 +17878,26 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { @@ -16932,11 +17912,14 @@ if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi @@ -16965,27 +17948,26 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { @@ -17000,11 +17982,14 @@ if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi @@ -17455,8 +18440,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi esac fi -echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 -echo "${ECHO_T}$ld_shlibs_GCJ" >&6 +{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 +$as_echo "$ld_shlibs_GCJ" >&6; } test "$ld_shlibs_GCJ" = no && can_build_shared=no # @@ -17476,15 +18461,15 @@ x|xyes) # Test whether the compiler implicitly links with -lc since on some # 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 + { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $rm conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest @@ -17502,7 +18487,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_GCJ=no @@ -17514,16 +18499,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& cat conftest.err 1>&5 fi $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 -echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6 + { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 +$as_echo "$archive_cmds_need_lc_GCJ" >&6; } ;; esac fi ;; esac -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= @@ -18072,19 +19057,19 @@ uts4*) dynamic_linker=no ;; esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 +{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec" fi sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec" fi @@ -18096,8 +19081,8 @@ if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || \ test -n "$runpath_var_GCJ" || \ @@ -18121,8 +19106,8 @@ else # directories. hardcode_action_GCJ=unsupported fi -echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 -echo "${ECHO_T}$hardcode_action_GCJ" >&6 +{ $as_echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 +$as_echo "$hardcode_action_GCJ" >&6; } if test "$hardcode_action_GCJ" = relink; then # Fast installation is not supported @@ -18564,7 +19549,6 @@ CC="$lt_save_CC" RC) - # Source file extension for RC test sources. ac_ext=rc @@ -19046,8 +20030,8 @@ CC="$lt_save_CC" ;; *) - { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 -echo "$as_me: error: Unsupported tag name: $tagname" >&2;} + { { $as_echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 +$as_echo "$as_me: error: Unsupported tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac @@ -19066,8 +20050,8 @@ echo "$as_me: error: Unsupported tag name: $tagname" >&2;} chmod +x "$ofile" else rm -f "${ofile}T" - { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 -echo "$as_me: error: unable to update list of available tagged configurations." >&2;} + { { $as_echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 +$as_echo "$as_me: error: unable to update list of available tagged configurations." >&2;} { (exit 1); exit 1; }; } fi fi @@ -19113,29 +20097,29 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool' -# Check whether --with-xorg-module-dir or --without-xorg-module-dir was given. +# Check whether --with-xorg-module-dir was given. if test "${with_xorg_module_dir+set}" = set; then - withval="$with_xorg_module_dir" - moduledir="$withval" + withval=$with_xorg_module_dir; moduledir="$withval" else moduledir="$libdir/xorg/modules" -fi; +fi + -# Check whether --enable-exa or --disable-exa was given. +# Check whether --enable-exa was given. if test "${enable_exa+set}" = set; then - enableval="$enable_exa" - EXA="$enableval" + enableval=$enable_exa; EXA="$enableval" else EXA=yes -fi; +fi + -# Check whether --enable-dri or --disable-dri was given. +# Check whether --enable-dri was given. if test "${enable_dri+set}" = set; then - enableval="$enable_dri" - DRI="$enableval" + enableval=$enable_dri; DRI="$enableval" else DRI=yes -fi; +fi + # Extensions checks. @@ -19162,40 +20146,37 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then _EXT_CHECK=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -_EXT_CHECK=no + _EXT_CHECK=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$SAVE_CFLAGS" - echo "$as_me:$LINENO: checking if RANDR is defined" >&5 -echo $ECHO_N "checking if RANDR is defined... $ECHO_C" >&6 - echo "$as_me:$LINENO: result: $_EXT_CHECK" >&5 -echo "${ECHO_T}$_EXT_CHECK" >&6 + { $as_echo "$as_me:$LINENO: checking if RANDR is defined" >&5 +$as_echo_n "checking if RANDR is defined... " >&6; } + { $as_echo "$as_me:$LINENO: result: $_EXT_CHECK" >&5 +$as_echo "$_EXT_CHECK" >&6; } if test "$_EXT_CHECK" != no; then REQUIRED_MODULES="$REQUIRED_MODULES randrproto" fi @@ -19224,40 +20205,37 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then _EXT_CHECK=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -_EXT_CHECK=no + _EXT_CHECK=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$SAVE_CFLAGS" - echo "$as_me:$LINENO: checking if RENDER is defined" >&5 -echo $ECHO_N "checking if RENDER is defined... $ECHO_C" >&6 - echo "$as_me:$LINENO: result: $_EXT_CHECK" >&5 -echo "${ECHO_T}$_EXT_CHECK" >&6 + { $as_echo "$as_me:$LINENO: checking if RENDER is defined" >&5 +$as_echo_n "checking if RENDER is defined... " >&6; } + { $as_echo "$as_me:$LINENO: result: $_EXT_CHECK" >&5 +$as_echo "$_EXT_CHECK" >&6; } if test "$_EXT_CHECK" != no; then REQUIRED_MODULES="$REQUIRED_MODULES renderproto" fi @@ -19286,40 +20264,37 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then _EXT_CHECK=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -_EXT_CHECK=no + _EXT_CHECK=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$SAVE_CFLAGS" - echo "$as_me:$LINENO: checking if XV is defined" >&5 -echo $ECHO_N "checking if XV is defined... $ECHO_C" >&6 - echo "$as_me:$LINENO: result: $_EXT_CHECK" >&5 -echo "${ECHO_T}$_EXT_CHECK" >&6 + { $as_echo "$as_me:$LINENO: checking if XV is defined" >&5 +$as_echo_n "checking if XV is defined... " >&6; } + { $as_echo "$as_me:$LINENO: result: $_EXT_CHECK" >&5 +$as_echo "$_EXT_CHECK" >&6; } if test "$_EXT_CHECK" != no; then REQUIRED_MODULES="$REQUIRED_MODULES videoproto" fi @@ -19348,40 +20323,37 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then _EXT_CHECK=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -_EXT_CHECK=no + _EXT_CHECK=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$SAVE_CFLAGS" - echo "$as_me:$LINENO: checking if DPMSExtension is defined" >&5 -echo $ECHO_N "checking if DPMSExtension is defined... $ECHO_C" >&6 - echo "$as_me:$LINENO: result: $_EXT_CHECK" >&5 -echo "${ECHO_T}$_EXT_CHECK" >&6 + { $as_echo "$as_me:$LINENO: checking if DPMSExtension is defined" >&5 +$as_echo_n "checking if DPMSExtension is defined... " >&6; } + { $as_echo "$as_me:$LINENO: result: $_EXT_CHECK" >&5 +$as_echo "$_EXT_CHECK" >&6; } if test "$_EXT_CHECK" != no; then REQUIRED_MODULES="$REQUIRED_MODULES xextproto" fi @@ -19397,10 +20369,10 @@ if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) @@ -19413,36 +20385,37 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG - if test -n "$PKG_CONFIG"; then - echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -echo "${ECHO_T}$PKG_CONFIG" >&6 + { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) @@ -19455,28 +20428,42 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG - if test -n "$ac_pt_PKG_CONFIG"; then - echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 -echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6 + { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi - PKG_CONFIG=$ac_pt_PKG_CONFIG + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi @@ -19484,32 +20471,32 @@ fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 - echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 -echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no -echo "$as_me:$LINENO: checking for XORG" >&5 -echo $ECHO_N "checking for XORG... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for XORG" >&5 +$as_echo_n "checking for XORG... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$XORG_CFLAGS"; then pkg_cv_XORG_CFLAGS="$XORG_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xorg-server xproto fontsproto \$REQUIRED_MODULES\"") >&5 + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xorg-server xproto fontsproto \$REQUIRED_MODULES\"") >&5 ($PKG_CONFIG --exists --print-errors "xorg-server xproto fontsproto $REQUIRED_MODULES") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_XORG_CFLAGS=`$PKG_CONFIG --cflags "xorg-server xproto fontsproto $REQUIRED_MODULES" 2>/dev/null` else @@ -19524,10 +20511,10 @@ if test -n "$PKG_CONFIG"; then pkg_cv_XORG_LIBS="$XORG_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xorg-server xproto fontsproto \$REQUIRED_MODULES\"") >&5 + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xorg-server xproto fontsproto \$REQUIRED_MODULES\"") >&5 ($PKG_CONFIG --exists --print-errors "xorg-server xproto fontsproto $REQUIRED_MODULES") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_XORG_LIBS=`$PKG_CONFIG --libs "xorg-server xproto fontsproto $REQUIRED_MODULES" 2>/dev/null` else @@ -19555,7 +20542,7 @@ fi # Put the nasty error message in config.log where it belongs echo "$XORG_PKG_ERRORS" >&5 - { { echo "$as_me:$LINENO: error: Package requirements (xorg-server xproto fontsproto $REQUIRED_MODULES) were not met: + { { $as_echo "$as_me:$LINENO: error: Package requirements (xorg-server xproto fontsproto $REQUIRED_MODULES) were not met: $XORG_PKG_ERRORS @@ -19566,7 +20553,7 @@ Alternatively, you may set the environment variables XORG_CFLAGS and XORG_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&5 -echo "$as_me: error: Package requirements (xorg-server xproto fontsproto $REQUIRED_MODULES) were not met: +$as_echo "$as_me: error: Package requirements (xorg-server xproto fontsproto $REQUIRED_MODULES) were not met: $XORG_PKG_ERRORS @@ -19579,7 +20566,7 @@ See the pkg-config man page for more details. " >&2;} { (exit 1); exit 1; }; } elif test $pkg_failed = untried; then - { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it + { { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -19589,7 +20576,7 @@ See the pkg-config man page for more details. To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>. See \`config.log' for more details." >&5 -echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -19603,18 +20590,103 @@ See \`config.log' for more details." >&2;} else XORG_CFLAGS=$pkg_cv_XORG_CFLAGS XORG_LIBS=$pkg_cv_XORG_LIBS - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } : fi + +pkg_failed=no +{ $as_echo "$as_me:$LINENO: checking for XEXT" >&5 +$as_echo_n "checking for XEXT... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$XEXT_CFLAGS"; then + pkg_cv_XEXT_CFLAGS="$XEXT_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xextproto >= 7.0.99.1\"") >&5 + ($PKG_CONFIG --exists --print-errors "xextproto >= 7.0.99.1") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_XEXT_CFLAGS=`$PKG_CONFIG --cflags "xextproto >= 7.0.99.1" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$XEXT_LIBS"; then + pkg_cv_XEXT_LIBS="$XEXT_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xextproto >= 7.0.99.1\"") >&5 + ($PKG_CONFIG --exists --print-errors "xextproto >= 7.0.99.1") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_XEXT_LIBS=`$PKG_CONFIG --libs "xextproto >= 7.0.99.1" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + XEXT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xextproto >= 7.0.99.1"` + else + XEXT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xextproto >= 7.0.99.1"` + fi + # Put the nasty error message in config.log where it belongs + echo "$XEXT_PKG_ERRORS" >&5 + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + HAVE_XEXTPROTO_71="no" +elif test $pkg_failed = untried; then + HAVE_XEXTPROTO_71="no" +else + XEXT_CFLAGS=$pkg_cv_XEXT_CFLAGS + XEXT_LIBS=$pkg_cv_XEXT_LIBS + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_XEXTPROTO_71="yes"; +cat >>confdefs.h <<\_ACEOF +#define HAVE_XEXTPROTO_71 1 +_ACEOF + +fi + + +if test "$HAVE_XEXTPROTO_71" = "yes" ; then + HAVE_XEXTPROTO_71_TRUE= + HAVE_XEXTPROTO_71_FALSE='#' +else + HAVE_XEXTPROTO_71_TRUE='#' + HAVE_XEXTPROTO_71_FALSE= +fi + sdkdir=$(pkg-config --variable=sdkdir xorg-server) # Header files checks. -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -19636,35 +20708,32 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_header_stdc=no + ac_cv_header_stdc=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. @@ -19720,6 +20789,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <ctype.h> +#include <stdlib.h> #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) @@ -19739,36 +20809,50 @@ main () for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); + return 2; + return 0; } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $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 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF @@ -19780,18 +20864,18 @@ fi pkg_failed=no -echo "$as_me:$LINENO: checking for PCIUTILS" >&5 -echo $ECHO_N "checking for PCIUTILS... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for PCIUTILS" >&5 +$as_echo_n "checking for PCIUTILS... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$PCIUTILS_CFLAGS"; then pkg_cv_PCIUTILS_CFLAGS="$PCIUTILS_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libpci\"") >&5 + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libpci\"") >&5 ($PKG_CONFIG --exists --print-errors "libpci") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_PCIUTILS_CFLAGS=`$PKG_CONFIG --cflags "libpci" 2>/dev/null` else @@ -19806,10 +20890,10 @@ if test -n "$PKG_CONFIG"; then pkg_cv_PCIUTILS_LIBS="$PCIUTILS_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libpci\"") >&5 + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libpci\"") >&5 ($PKG_CONFIG --exists --print-errors "libpci") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_PCIUTILS_LIBS=`$PKG_CONFIG --libs "libpci" 2>/dev/null` else @@ -19837,22 +20921,22 @@ fi # Put the nasty error message in config.log where it belongs echo "$PCIUTILS_PKG_ERRORS" >&5 - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - { echo "$as_me:$LINENO: WARNING: libpci not registered in pkgconfig, will guess instead" >&5 -echo "$as_me: WARNING: libpci not registered in pkgconfig, will guess instead" >&2;} + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:$LINENO: WARNING: libpci not registered in pkgconfig, will guess instead" >&5 +$as_echo "$as_me: WARNING: libpci not registered in pkgconfig, will guess instead" >&2;} test "x$PCIUTILS_CFLAGS$PCIUTILS_LIBS" = "x" && PCIUTILS_LIBS="-lpci -lz" elif test $pkg_failed = untried; then - { echo "$as_me:$LINENO: WARNING: libpci not registered in pkgconfig, will guess instead" >&5 -echo "$as_me: WARNING: libpci not registered in pkgconfig, will guess instead" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: libpci not registered in pkgconfig, will guess instead" >&5 +$as_echo "$as_me: WARNING: libpci not registered in pkgconfig, will guess instead" >&2;} test "x$PCIUTILS_CFLAGS$PCIUTILS_LIBS" = "x" && PCIUTILS_LIBS="-lpci -lz" else PCIUTILS_CFLAGS=$pkg_cv_PCIUTILS_CFLAGS PCIUTILS_LIBS=$pkg_cv_PCIUTILS_LIBS - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } : fi @@ -19861,17 +20945,17 @@ SAVED_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PCIUTILS_CFLAGS" CPPFLAGS="$CPPFLAGS $PCIUTILS_CFLAGS" if test "${ac_cv_header_pci_pci_h+set}" = set; then - echo "$as_me:$LINENO: checking for pci/pci.h" >&5 -echo $ECHO_N "checking for pci/pci.h... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for pci/pci.h" >&5 +$as_echo_n "checking for pci/pci.h... " >&6; } if test "${ac_cv_header_pci_pci_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -echo "$as_me:$LINENO: result: $ac_cv_header_pci_pci_h" >&5 -echo "${ECHO_T}$ac_cv_header_pci_pci_h" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_pci_pci_h" >&5 +$as_echo "$ac_cv_header_pci_pci_h" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking pci/pci.h usability" >&5 -echo $ECHO_N "checking pci/pci.h usability... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking pci/pci.h usability" >&5 +$as_echo_n "checking pci/pci.h usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -19882,41 +20966,38 @@ $ac_includes_default #include <pci/pci.h> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no 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 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking pci/pci.h presence" >&5 -echo $ECHO_N "checking pci/pci.h presence... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking pci/pci.h presence" >&5 +$as_echo_n "checking pci/pci.h presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -19925,76 +21006,74 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <pci/pci.h> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$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: pci/pci.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: pci/pci.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: pci/pci.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: pci/pci.h: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: pci/pci.h: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: pci/pci.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: pci/pci.h: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: pci/pci.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: pci/pci.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: pci/pci.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: pci/pci.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: pci/pci.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: pci/pci.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: pci/pci.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: pci/pci.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: pci/pci.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: pci/pci.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: pci/pci.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: pci/pci.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: pci/pci.h: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + { $as_echo "$as_me:$LINENO: WARNING: pci/pci.h: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: pci/pci.h: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: pci/pci.h: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: pci/pci.h: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: pci/pci.h: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: pci/pci.h: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: pci/pci.h: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: pci/pci.h: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: pci/pci.h: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: pci/pci.h: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: pci/pci.h: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: pci/pci.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX ## ------------------------------------------------------------------------------------------------ ## ## Report this to https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/radeonhd ## ## ------------------------------------------------------------------------------------------------ ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for pci/pci.h" >&5 -echo $ECHO_N "checking for pci/pci.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for pci/pci.h" >&5 +$as_echo_n "checking for pci/pci.h... " >&6; } if test "${ac_cv_header_pci_pci_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_header_pci_pci_h=$ac_header_preproc fi -echo "$as_me:$LINENO: result: $ac_cv_header_pci_pci_h" >&5 -echo "${ECHO_T}$ac_cv_header_pci_pci_h" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_pci_pci_h" >&5 +$as_echo "$ac_cv_header_pci_pci_h" >&6; } fi if test $ac_cv_header_pci_pci_h = yes; then @@ -20005,8 +21084,8 @@ _ACEOF have_pci_pci_h=yes else - { echo "$as_me:$LINENO: WARNING: Caution: Will not compile rhd_conntest without pciutils headers." >&5 -echo "$as_me: WARNING: Caution: Will not compile rhd_conntest without pciutils headers." >&2;} + { $as_echo "$as_me:$LINENO: WARNING: Caution: Will not compile rhd_conntest without pciutils headers." >&5 +$as_echo "$as_me: WARNING: Caution: Will not compile rhd_conntest without pciutils headers." >&2;} fi @@ -20025,10 +21104,10 @@ fi CPPFLAGS="$SAVED_CPPFLAGS $XORG_CFLAGS" CFLAGS="$SAVED_CFLAGS" -echo "$as_me:$LINENO: checking whether XSERVER_LIBPCIACCESS is declared" >&5 -echo $ECHO_N "checking whether XSERVER_LIBPCIACCESS is declared... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether XSERVER_LIBPCIACCESS is declared" >&5 +$as_echo_n "checking whether XSERVER_LIBPCIACCESS is declared... " >&6; } if test "${ac_cv_have_decl_XSERVER_LIBPCIACCESS+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -20042,7 +21121,7 @@ int main () { #ifndef XSERVER_LIBPCIACCESS - char *p = (char *) XSERVER_LIBPCIACCESS; + (void) XSERVER_LIBPCIACCESS; #endif ; @@ -20050,38 +21129,35 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_have_decl_XSERVER_LIBPCIACCESS=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl_XSERVER_LIBPCIACCESS=no + ac_cv_have_decl_XSERVER_LIBPCIACCESS=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_XSERVER_LIBPCIACCESS" >&5 -echo "${ECHO_T}$ac_cv_have_decl_XSERVER_LIBPCIACCESS" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_XSERVER_LIBPCIACCESS" >&5 +$as_echo "$ac_cv_have_decl_XSERVER_LIBPCIACCESS" >&6; } if test $ac_cv_have_decl_XSERVER_LIBPCIACCESS = yes; then XSERVER_LIBPCIACCESS=yes else @@ -20091,18 +21167,18 @@ fi if test "x$XSERVER_LIBPCIACCESS" = xyes; then pkg_failed=no -echo "$as_me:$LINENO: checking for PCIACCESS" >&5 -echo $ECHO_N "checking for PCIACCESS... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for PCIACCESS" >&5 +$as_echo_n "checking for PCIACCESS... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$PCIACCESS_CFLAGS"; then pkg_cv_PCIACCESS_CFLAGS="$PCIACCESS_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"pciaccess\"") >&5 + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"pciaccess\"") >&5 ($PKG_CONFIG --exists --print-errors "pciaccess") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_PCIACCESS_CFLAGS=`$PKG_CONFIG --cflags "pciaccess" 2>/dev/null` else @@ -20117,10 +21193,10 @@ if test -n "$PKG_CONFIG"; then pkg_cv_PCIACCESS_LIBS="$PCIACCESS_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"pciaccess\"") >&5 + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"pciaccess\"") >&5 ($PKG_CONFIG --exists --print-errors "pciaccess") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_PCIACCESS_LIBS=`$PKG_CONFIG --libs "pciaccess" 2>/dev/null` else @@ -20148,7 +21224,7 @@ fi # Put the nasty error message in config.log where it belongs echo "$PCIACCESS_PKG_ERRORS" >&5 - { { echo "$as_me:$LINENO: error: Package requirements (pciaccess) were not met: + { { $as_echo "$as_me:$LINENO: error: Package requirements (pciaccess) were not met: $PCIACCESS_PKG_ERRORS @@ -20159,7 +21235,7 @@ Alternatively, you may set the environment variables PCIACCESS_CFLAGS and PCIACCESS_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&5 -echo "$as_me: error: Package requirements (pciaccess) were not met: +$as_echo "$as_me: error: Package requirements (pciaccess) were not met: $PCIACCESS_PKG_ERRORS @@ -20172,7 +21248,7 @@ See the pkg-config man page for more details. " >&2;} { (exit 1); exit 1; }; } elif test $pkg_failed = untried; then - { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it + { { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -20182,7 +21258,7 @@ See the pkg-config man page for more details. To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>. See \`config.log' for more details." >&5 -echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -20196,8 +21272,8 @@ See \`config.log' for more details." >&2;} else PCIACCESS_CFLAGS=$pkg_cv_PCIACCESS_CFLAGS PCIACCESS_LIBS=$pkg_cv_PCIACCESS_LIBS - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } : fi XORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS" @@ -20214,23 +21290,23 @@ fi # basic exa check. -echo "$as_me:$LINENO: checking whether to enable EXA support" >&5 -echo $ECHO_N "checking whether to enable EXA support... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether to enable EXA support" >&5 +$as_echo_n "checking whether to enable EXA support... " >&6; } if test "x$EXA" = xyes; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } if test "${ac_cv_header_exa_h+set}" = set; then - echo "$as_me:$LINENO: checking for exa.h" >&5 -echo $ECHO_N "checking for exa.h... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for exa.h" >&5 +$as_echo_n "checking for exa.h... " >&6; } if test "${ac_cv_header_exa_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -echo "$as_me:$LINENO: result: $ac_cv_header_exa_h" >&5 -echo "${ECHO_T}$ac_cv_header_exa_h" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_exa_h" >&5 +$as_echo "$ac_cv_header_exa_h" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking exa.h usability" >&5 -echo $ECHO_N "checking exa.h usability... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking exa.h usability" >&5 +$as_echo_n "checking exa.h usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -20241,41 +21317,38 @@ $ac_includes_default #include <exa.h> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no 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 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking exa.h presence" >&5 -echo $ECHO_N "checking exa.h presence... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking exa.h presence" >&5 +$as_echo_n "checking exa.h presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -20284,76 +21357,74 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <exa.h> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$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: exa.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: exa.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: exa.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: exa.h: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: exa.h: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: exa.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: exa.h: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: exa.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: exa.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: exa.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: exa.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: exa.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: exa.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: exa.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: exa.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: exa.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: exa.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: exa.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: exa.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: exa.h: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + { $as_echo "$as_me:$LINENO: WARNING: exa.h: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: exa.h: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: exa.h: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: exa.h: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: exa.h: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: exa.h: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: exa.h: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: exa.h: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: exa.h: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: exa.h: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: exa.h: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: exa.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX ## ------------------------------------------------------------------------------------------------ ## ## Report this to https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/radeonhd ## ## ------------------------------------------------------------------------------------------------ ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for exa.h" >&5 -echo $ECHO_N "checking for exa.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for exa.h" >&5 +$as_echo_n "checking for exa.h... " >&6; } if test "${ac_cv_header_exa_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_header_exa_h=$ac_header_preproc fi -echo "$as_me:$LINENO: result: $ac_cv_header_exa_h" >&5 -echo "${ECHO_T}$ac_cv_header_exa_h" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_exa_h" >&5 +$as_echo "$ac_cv_header_exa_h" >&6; } fi if test $ac_cv_header_exa_h = yes; then @@ -20364,14 +21435,14 @@ fi else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi # exa version check. if test "x$have_exa_h" = xyes; then - echo "$as_me:$LINENO: checking whether EXA version is at least 2.0.0" >&5 -echo $ECHO_N "checking whether EXA version is at least 2.0.0... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether EXA version is at least 2.0.0" >&5 +$as_echo_n "checking whether EXA version is at least 2.0.0... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -20392,34 +21463,34 @@ main () return 0; } _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then USE_EXA=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 USE_EXA=no fi + rm -f conftest.err conftest.$ac_ext - echo "$as_me:$LINENO: result: $USE_EXA" >&5 -echo "${ECHO_T}$USE_EXA" >&6 + { $as_echo "$as_me:$LINENO: result: $USE_EXA" >&5 +$as_echo "$USE_EXA" >&6; } if test "x$USE_EXA" = xyes; then @@ -20442,10 +21513,10 @@ fi # Handle RandR1.2 -echo "$as_me:$LINENO: checking for xf86RandR12.h" >&5 -echo $ECHO_N "checking for xf86RandR12.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for xf86RandR12.h" >&5 +$as_echo_n "checking for xf86RandR12.h... " >&6; } if test "${ac_cv_header_xf86RandR12_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -20458,38 +21529,35 @@ cat >>conftest.$ac_ext <<_ACEOF #include <xf86RandR12.h> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_header_xf86RandR12_h=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_header_xf86RandR12_h=no + ac_cv_header_xf86RandR12_h=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_header_xf86RandR12_h" >&5 -echo "${ECHO_T}$ac_cv_header_xf86RandR12_h" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_xf86RandR12_h" >&5 +$as_echo "$ac_cv_header_xf86RandR12_h" >&6; } if test $ac_cv_header_xf86RandR12_h = yes; then have_randr12="yes" else @@ -20505,10 +21573,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking whether to enable RandR1.2 support" >&5 -echo $ECHO_N "checking whether to enable RandR1.2 support... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $have_randr12" >&5 -echo "${ECHO_T}$have_randr12" >&6 +{ $as_echo "$as_me:$LINENO: checking whether to enable RandR1.2 support" >&5 +$as_echo_n "checking whether to enable RandR1.2 support... " >&6; } +{ $as_echo "$as_me:$LINENO: result: $have_randr12" >&5 +$as_echo "$have_randr12" >&6; } # Handle DRI CPPFLAGS="$SAVED_CPPFLAGS $XORG_CFLAGS" @@ -20518,10 +21586,10 @@ CFLAGS="$SAVED_CFLAGS $XORG_CFLAGS" USE_DRI=no if test "x$DRI" = xyes; then USE_DRI="yes" - echo "$as_me:$LINENO: checking whether XF86DRI is declared" >&5 -echo $ECHO_N "checking whether XF86DRI is declared... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether XF86DRI is declared" >&5 +$as_echo_n "checking whether XF86DRI is declared... " >&6; } if test "${ac_cv_have_decl_XF86DRI+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -20535,7 +21603,7 @@ int main () { #ifndef XF86DRI - char *p = (char *) XF86DRI; + (void) XF86DRI; #endif ; @@ -20543,38 +21611,35 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_have_decl_XF86DRI=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl_XF86DRI=no + ac_cv_have_decl_XF86DRI=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_XF86DRI" >&5 -echo "${ECHO_T}$ac_cv_have_decl_XF86DRI" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_XF86DRI" >&5 +$as_echo "$ac_cv_have_decl_XF86DRI" >&6; } if test $ac_cv_have_decl_XF86DRI = yes; then : else @@ -20583,18 +21648,18 @@ fi pkg_failed=no -echo "$as_me:$LINENO: checking for DRI" >&5 -echo $ECHO_N "checking for DRI... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for DRI" >&5 +$as_echo_n "checking for DRI... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$DRI_CFLAGS"; then pkg_cv_DRI_CFLAGS="$DRI_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libdrm >= 2.2 xf86driproto glproto\"") >&5 + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libdrm >= 2.2 xf86driproto glproto\"") >&5 ($PKG_CONFIG --exists --print-errors "libdrm >= 2.2 xf86driproto glproto") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_DRI_CFLAGS=`$PKG_CONFIG --cflags "libdrm >= 2.2 xf86driproto glproto" 2>/dev/null` else @@ -20609,10 +21674,10 @@ if test -n "$PKG_CONFIG"; then pkg_cv_DRI_LIBS="$DRI_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libdrm >= 2.2 xf86driproto glproto\"") >&5 + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libdrm >= 2.2 xf86driproto glproto\"") >&5 ($PKG_CONFIG --exists --print-errors "libdrm >= 2.2 xf86driproto glproto") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_DRI_LIBS=`$PKG_CONFIG --libs "libdrm >= 2.2 xf86driproto glproto" 2>/dev/null` else @@ -20640,33 +21705,33 @@ fi # Put the nasty error message in config.log where it belongs echo "$DRI_PKG_ERRORS" >&5 - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } USE_DRI=no elif test $pkg_failed = untried; then USE_DRI=no else DRI_CFLAGS=$pkg_cv_DRI_CFLAGS DRI_LIBS=$pkg_cv_DRI_LIBS - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } : fi fi if test "x$USE_DRI" = xyes; then if test "${ac_cv_header_GL_gl_h+set}" = set; then - echo "$as_me:$LINENO: checking for GL/gl.h" >&5 -echo $ECHO_N "checking for GL/gl.h... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for GL/gl.h" >&5 +$as_echo_n "checking for GL/gl.h... " >&6; } if test "${ac_cv_header_GL_gl_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -echo "$as_me:$LINENO: result: $ac_cv_header_GL_gl_h" >&5 -echo "${ECHO_T}$ac_cv_header_GL_gl_h" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_GL_gl_h" >&5 +$as_echo "$ac_cv_header_GL_gl_h" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking GL/gl.h usability" >&5 -echo $ECHO_N "checking GL/gl.h usability... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking GL/gl.h usability" >&5 +$as_echo_n "checking GL/gl.h usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -20677,41 +21742,38 @@ $ac_includes_default #include <GL/gl.h> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no 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 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking GL/gl.h presence" >&5 -echo $ECHO_N "checking GL/gl.h presence... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking GL/gl.h presence" >&5 +$as_echo_n "checking GL/gl.h presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -20720,76 +21782,74 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <GL/gl.h> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$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: GL/gl.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: GL/gl.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: GL/gl.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: GL/gl.h: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: GL/gl.h: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: GL/gl.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: GL/gl.h: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: GL/gl.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: GL/gl.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: GL/gl.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: GL/gl.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: GL/gl.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: GL/gl.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: GL/gl.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: GL/gl.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: GL/gl.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: GL/gl.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: GL/gl.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: GL/gl.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: GL/gl.h: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + { $as_echo "$as_me:$LINENO: WARNING: GL/gl.h: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: GL/gl.h: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: GL/gl.h: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: GL/gl.h: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: GL/gl.h: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: GL/gl.h: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: GL/gl.h: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: GL/gl.h: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: GL/gl.h: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: GL/gl.h: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: GL/gl.h: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: GL/gl.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX ## ------------------------------------------------------------------------------------------------ ## ## Report this to https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/radeonhd ## ## ------------------------------------------------------------------------------------------------ ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for GL/gl.h" >&5 -echo $ECHO_N "checking for GL/gl.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for GL/gl.h" >&5 +$as_echo_n "checking for GL/gl.h... " >&6; } if test "${ac_cv_header_GL_gl_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_header_GL_gl_h=$ac_header_preproc fi -echo "$as_me:$LINENO: result: $ac_cv_header_GL_gl_h" >&5 -echo "${ECHO_T}$ac_cv_header_GL_gl_h" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_GL_gl_h" >&5 +$as_echo "$ac_cv_header_GL_gl_h" >&6; } fi if test $ac_cv_header_GL_gl_h = yes; then @@ -20801,10 +21861,10 @@ fi fi -echo "$as_me:$LINENO: checking whether to enable DRI support" >&5 -echo $ECHO_N "checking whether to enable DRI support... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $USE_DRI" >&5 -echo "${ECHO_T}$USE_DRI" >&6 +{ $as_echo "$as_me:$LINENO: checking whether to enable DRI support" >&5 +$as_echo_n "checking whether to enable DRI support... " >&6; } +{ $as_echo "$as_me:$LINENO: result: $USE_DRI" >&5 +$as_echo "$USE_DRI" >&6; } test "x$USE_DRI" = xyes && cat >>confdefs.h <<\_ACEOF #define USE_DRI 1 @@ -20821,15 +21881,15 @@ else fi -as_ac_File=`echo "ac_cv_file_${sdkdir}/damage.h" | $as_tr_sh` -echo "$as_me:$LINENO: checking for ${sdkdir}/damage.h" >&5 -echo $ECHO_N "checking for ${sdkdir}/damage.h... $ECHO_C" >&6 -if eval "test \"\${$as_ac_File+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_File=`$as_echo "ac_cv_file_${sdkdir}/damage.h" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for ${sdkdir}/damage.h" >&5 +$as_echo_n "checking for ${sdkdir}/damage.h... " >&6; } +if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && - { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 -echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} + { { $as_echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 +$as_echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } if test -r "${sdkdir}/damage.h"; then eval "$as_ac_File=yes" @@ -20837,9 +21897,12 @@ else eval "$as_ac_File=no" fi fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_File'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_File'}'`" >&6 -if test `eval echo '${'$as_ac_File'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_File'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if test `eval 'as_val=${'$as_ac_File'} + $as_echo "$as_val"'` = yes; then cat >>confdefs.h <<\_ACEOF #define DAMAGE 1 @@ -20852,19 +21915,21 @@ fi CFLAGS="$SAVED_CFLAGS" CPPFLAGS="$SAVED_CPPFLAGS" -as_ac_Header=`echo "ac_cv_header_${sdkdir}/xf86_ansic.h" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for ${sdkdir}/xf86_ansic.h" >&5 -echo $ECHO_N "checking for ${sdkdir}/xf86_ansic.h... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_Header=`$as_echo "ac_cv_header_${sdkdir}/xf86_ansic.h" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for ${sdkdir}/xf86_ansic.h" >&5 +$as_echo_n "checking for ${sdkdir}/xf86_ansic.h... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking ${sdkdir}/xf86_ansic.h usability" >&5 -echo $ECHO_N "checking ${sdkdir}/xf86_ansic.h usability... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking ${sdkdir}/xf86_ansic.h usability" >&5 +$as_echo_n "checking ${sdkdir}/xf86_ansic.h usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -20875,41 +21940,38 @@ $ac_includes_default #include <${sdkdir}/xf86_ansic.h> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no 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 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking ${sdkdir}/xf86_ansic.h presence" >&5 -echo $ECHO_N "checking ${sdkdir}/xf86_ansic.h presence... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking ${sdkdir}/xf86_ansic.h presence" >&5 +$as_echo_n "checking ${sdkdir}/xf86_ansic.h presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -20918,79 +21980,80 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <${sdkdir}/xf86_ansic.h> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$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: ${sdkdir}/xf86_ansic.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: ${sdkdir}/xf86_ansic.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: ${sdkdir}/xf86_ansic.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: ${sdkdir}/xf86_ansic.h: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: ${sdkdir}/xf86_ansic.h: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: ${sdkdir}/xf86_ansic.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: ${sdkdir}/xf86_ansic.h: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: ${sdkdir}/xf86_ansic.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: ${sdkdir}/xf86_ansic.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: ${sdkdir}/xf86_ansic.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: ${sdkdir}/xf86_ansic.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: ${sdkdir}/xf86_ansic.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: ${sdkdir}/xf86_ansic.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: ${sdkdir}/xf86_ansic.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: ${sdkdir}/xf86_ansic.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: ${sdkdir}/xf86_ansic.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: ${sdkdir}/xf86_ansic.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: ${sdkdir}/xf86_ansic.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: ${sdkdir}/xf86_ansic.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: ${sdkdir}/xf86_ansic.h: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + { $as_echo "$as_me:$LINENO: WARNING: ${sdkdir}/xf86_ansic.h: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: ${sdkdir}/xf86_ansic.h: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: ${sdkdir}/xf86_ansic.h: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: ${sdkdir}/xf86_ansic.h: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: ${sdkdir}/xf86_ansic.h: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: ${sdkdir}/xf86_ansic.h: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: ${sdkdir}/xf86_ansic.h: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: ${sdkdir}/xf86_ansic.h: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: ${sdkdir}/xf86_ansic.h: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: ${sdkdir}/xf86_ansic.h: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: ${sdkdir}/xf86_ansic.h: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: ${sdkdir}/xf86_ansic.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX ## ------------------------------------------------------------------------------------------------ ## ## Report this to https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/radeonhd ## ## ------------------------------------------------------------------------------------------------ ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for ${sdkdir}/xf86_ansic.h" >&5 -echo $ECHO_N "checking for ${sdkdir}/xf86_ansic.h... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for ${sdkdir}/xf86_ansic.h" >&5 +$as_echo_n "checking for ${sdkdir}/xf86_ansic.h... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +if test `eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_XF86_ANSIC_H 1 @@ -21015,10 +22078,10 @@ SAVED_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $XORG_CFLAGS" # Check whether MonRec has a reducedblanking member. -echo "$as_me:$LINENO: checking for MonRec.reducedblanking" >&5 -echo $ECHO_N "checking for MonRec.reducedblanking... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for MonRec.reducedblanking" >&5 +$as_echo_n "checking for MonRec.reducedblanking... " >&6; } if test "${ac_cv_member_MonRec_reducedblanking+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -21039,33 +22102,29 @@ return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_member_MonRec_reducedblanking=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -21084,40 +22143,38 @@ return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_member_MonRec_reducedblanking=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_member_MonRec_reducedblanking=no + ac_cv_member_MonRec_reducedblanking=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_member_MonRec_reducedblanking" >&5 -echo "${ECHO_T}$ac_cv_member_MonRec_reducedblanking" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_MonRec_reducedblanking" >&5 +$as_echo "$ac_cv_member_MonRec_reducedblanking" >&6; } if test $ac_cv_member_MonRec_reducedblanking = yes; then MONREC_HAS_REDUCED=yes else @@ -21133,10 +22190,10 @@ _ACEOF fi # Check whether MonRec has a maxPixClock member. -echo "$as_me:$LINENO: checking for MonRec.maxPixClock" >&5 -echo $ECHO_N "checking for MonRec.maxPixClock... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for MonRec.maxPixClock" >&5 +$as_echo_n "checking for MonRec.maxPixClock... " >&6; } if test "${ac_cv_member_MonRec_maxPixClock+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -21157,33 +22214,29 @@ return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_member_MonRec_maxPixClock=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -21202,40 +22255,38 @@ return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_member_MonRec_maxPixClock=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_member_MonRec_maxPixClock=no + ac_cv_member_MonRec_maxPixClock=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_member_MonRec_maxPixClock" >&5 -echo "${ECHO_T}$ac_cv_member_MonRec_maxPixClock" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_MonRec_maxPixClock" >&5 +$as_echo "$ac_cv_member_MonRec_maxPixClock" >&6; } if test $ac_cv_member_MonRec_maxPixClock = yes; then MONREC_HAS_BANDWIDTH=yes else @@ -21251,10 +22302,10 @@ _ACEOF fi # Check whether xf86CrtcFuncsRec has a set_mode_major member. -echo "$as_me:$LINENO: checking for xf86CrtcFuncsRec.set_mode_major" >&5 -echo $ECHO_N "checking for xf86CrtcFuncsRec.set_mode_major... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for xf86CrtcFuncsRec.set_mode_major" >&5 +$as_echo_n "checking for xf86CrtcFuncsRec.set_mode_major... " >&6; } if test "${ac_cv_member_xf86CrtcFuncsRec_set_mode_major+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -21277,33 +22328,29 @@ return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_member_xf86CrtcFuncsRec_set_mode_major=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -21324,40 +22371,38 @@ return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_member_xf86CrtcFuncsRec_set_mode_major=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_member_xf86CrtcFuncsRec_set_mode_major=no + ac_cv_member_xf86CrtcFuncsRec_set_mode_major=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_member_xf86CrtcFuncsRec_set_mode_major" >&5 -echo "${ECHO_T}$ac_cv_member_xf86CrtcFuncsRec_set_mode_major" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_xf86CrtcFuncsRec_set_mode_major" >&5 +$as_echo "$ac_cv_member_xf86CrtcFuncsRec_set_mode_major" >&6; } if test $ac_cv_member_xf86CrtcFuncsRec_set_mode_major = yes; then XF86CRTCFUNCS_HAS_SETMODEMAJOR=yes else @@ -21372,10 +22417,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking whether xf86RotateFreeShadow is declared" >&5 -echo $ECHO_N "checking whether xf86RotateFreeShadow is declared... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether xf86RotateFreeShadow is declared" >&5 +$as_echo_n "checking whether xf86RotateFreeShadow is declared... " >&6; } if test "${ac_cv_have_decl_xf86RotateFreeShadow+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -21391,7 +22436,7 @@ int main () { #ifndef xf86RotateFreeShadow - char *p = (char *) xf86RotateFreeShadow; + (void) xf86RotateFreeShadow; #endif ; @@ -21399,38 +22444,35 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_have_decl_xf86RotateFreeShadow=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl_xf86RotateFreeShadow=no + ac_cv_have_decl_xf86RotateFreeShadow=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_xf86RotateFreeShadow" >&5 -echo "${ECHO_T}$ac_cv_have_decl_xf86RotateFreeShadow" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_xf86RotateFreeShadow" >&5 +$as_echo "$ac_cv_have_decl_xf86RotateFreeShadow" >&6; } if test $ac_cv_have_decl_xf86RotateFreeShadow = yes; then cat >>confdefs.h <<\_ACEOF @@ -21440,34 +22482,96 @@ _ACEOF fi +{ $as_echo "$as_me:$LINENO: checking whether pci_device_enable is declared" >&5 +$as_echo_n "checking whether pci_device_enable is declared... " >&6; } +if test "${ac_cv_have_decl_pci_device_enable+set}" = set; then + $as_echo_n "(cached) " >&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 <pciaccess.h> + +int +main () +{ +#ifndef pci_device_enable + (void) pci_device_enable; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_have_decl_pci_device_enable=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_decl_pci_device_enable=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_pci_device_enable" >&5 +$as_echo "$ac_cv_have_decl_pci_device_enable" >&6; } +if test $ac_cv_have_decl_pci_device_enable = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_PCI_DEVICE_ENABLE 1 +_ACEOF + +fi + CFLAGS="$SAVED_CFLAGS" -# Check whether --enable-atombios or --disable-atombios was given. +# Check whether --enable-atombios was given. if test "${enable_atombios+set}" = set; then - enableval="$enable_atombios" - do_atombios="$enableval" + enableval=$enable_atombios; do_atombios="$enableval" else do_atombios=yes -fi; +fi -# Check whether --enable-atombios-parser or --disable-atombios-parser was given. + +# Check whether --enable-atombios-parser was given. if test "${enable_atombios_parser+set}" = set; then - enableval="$enable_atombios_parser" - do_atombios_parser="$enableval" + enableval=$enable_atombios_parser; do_atombios_parser="$enableval" else do_atombios_parser=yes -fi; +fi -as_ac_File=`echo "ac_cv_file_${srcdir}/src/AtomBios/includes/atombios.h" | $as_tr_sh` -echo "$as_me:$LINENO: checking for ${srcdir}/src/AtomBios/includes/atombios.h" >&5 -echo $ECHO_N "checking for ${srcdir}/src/AtomBios/includes/atombios.h... $ECHO_C" >&6 -if eval "test \"\${$as_ac_File+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + +as_ac_File=`$as_echo "ac_cv_file_${srcdir}/src/AtomBios/includes/atombios.h" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for ${srcdir}/src/AtomBios/includes/atombios.h" >&5 +$as_echo_n "checking for ${srcdir}/src/AtomBios/includes/atombios.h... " >&6; } +if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && - { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 -echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} + { { $as_echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 +$as_echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } if test -r "${srcdir}/src/AtomBios/includes/atombios.h"; then eval "$as_ac_File=yes" @@ -21475,24 +22579,27 @@ else eval "$as_ac_File=no" fi fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_File'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_File'}'`" >&6 -if test `eval echo '${'$as_ac_File'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_File'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if test `eval 'as_val=${'$as_ac_File'} + $as_echo "$as_val"'` = yes; then have_atombios_h="yes" else have_atombios_h="no" fi -as_ac_File=`echo "ac_cv_file_${srcdir}/src/AtomBios/includes/Decoder.h" | $as_tr_sh` -echo "$as_me:$LINENO: checking for ${srcdir}/src/AtomBios/includes/Decoder.h" >&5 -echo $ECHO_N "checking for ${srcdir}/src/AtomBios/includes/Decoder.h... $ECHO_C" >&6 -if eval "test \"\${$as_ac_File+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_File=`$as_echo "ac_cv_file_${srcdir}/src/AtomBios/includes/Decoder.h" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for ${srcdir}/src/AtomBios/includes/Decoder.h" >&5 +$as_echo_n "checking for ${srcdir}/src/AtomBios/includes/Decoder.h... " >&6; } +if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && - { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 -echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} + { { $as_echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 +$as_echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } if test -r "${srcdir}/src/AtomBios/includes/Decoder.h"; then eval "$as_ac_File=yes" @@ -21500,17 +22607,20 @@ else eval "$as_ac_File=no" fi fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_File'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_File'}'`" >&6 -if test `eval echo '${'$as_ac_File'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_File'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if test `eval 'as_val=${'$as_ac_File'} + $as_echo "$as_val"'` = yes; then have_atombios_parser="yes" else have_atombios_parser="no" fi -echo "$as_me:$LINENO: checking whether to include AtomBIOS" >&5 -echo $ECHO_N "checking whether to include AtomBIOS... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether to include AtomBIOS" >&5 +$as_echo_n "checking whether to include AtomBIOS... " >&6; } if test "$have_atombios_h" = yes -a \ "$do_atombios" = yes; then support_atombios="yes" @@ -21523,11 +22633,11 @@ else support_atombios="no" fi -echo "$as_me:$LINENO: result: $support_atombios" >&5 -echo "${ECHO_T}$support_atombios" >&6 +{ $as_echo "$as_me:$LINENO: result: $support_atombios" >&5 +$as_echo "$support_atombios" >&6; } -echo "$as_me:$LINENO: checking whether to include AtomBIOS parser" >&5 -echo $ECHO_N "checking whether to include AtomBIOS parser... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether to include AtomBIOS parser" >&5 +$as_echo_n "checking whether to include AtomBIOS parser... " >&6; } if test "$support_atombios" = yes -a \ "$do_atombios_parser" = yes -a \ "$have_atombios_parser" = yes; then @@ -21541,8 +22651,8 @@ else support_atombios_parser="no" fi -echo "$as_me:$LINENO: result: $support_atombios_parser" >&5 -echo "${ECHO_T}$support_atombios_parser" >&6 +{ $as_echo "$as_me:$LINENO: result: $support_atombios_parser" >&5 +$as_echo "$support_atombios_parser" >&6; } @@ -21567,10 +22677,10 @@ fi # libraries checks. -echo "$as_me:$LINENO: checking for gzopen in -lz" >&5 -echo $ECHO_N "checking for gzopen in -lz... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for gzopen in -lz" >&5 +$as_echo_n "checking for gzopen in -lz... " >&6; } if test "${ac_cv_lib_z_gzopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" @@ -21581,56 +22691,57 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #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 gzopen (); int main () { -gzopen (); +return gzopen (); ; 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 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_z_gzopen=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_z_gzopen=no + ac_cv_lib_z_gzopen=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_z_gzopen" >&5 -echo "${ECHO_T}$ac_cv_lib_z_gzopen" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_z_gzopen" >&5 +$as_echo "$ac_cv_lib_z_gzopen" >&6; } if test $ac_cv_lib_z_gzopen = yes; then have_zlib=yes else @@ -21664,7 +22775,8 @@ for w in \ -Wpointer-arith -Woverlength-strings -Wvolatile-register-var \ -Winit-self -Wbad-function-cast \ -Wstrict-prototypes -Wold-style-definition \ - -Wnested-externs -Wdisabled-optimization ; + -Wnested-externs -Wdisabled-optimization \ + -Wno-unknown-pragmas ; do cat >conftest.$ac_ext <<_ACEOF @@ -21682,23 +22794,23 @@ main () return 0; } _ACEOF - echo "$as_me:$LINENO: checking whether $CC supports $w" >&5 -echo $ECHO_N "checking whether $CC supports $w... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether $CC supports $w" >&5 +$as_echo_n "checking whether $CC supports $w... " >&6; } if $CC $w -c -o /dev/null conftest.c >/dev/null 2>&1 ; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } WARN_CFLAGS="$WARN_CFLAGS $w" else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi done -# Due to AtomBIOS spitting out too much with -pedantic +# atombios.h prohibits -std=c99 due to unnamed unions PEDANTIC_CFLAGS="" -for w in -pedantic -Wno-long-long -Wno-variadic-macros ; do +for w in -Wno-long-long -Wno-variadic-macros ; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -21715,15 +22827,15 @@ main () return 0; } _ACEOF - echo "$as_me:$LINENO: checking whether $CC supports $w" >&5 -echo $ECHO_N "checking whether $CC supports $w... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether $CC supports $w" >&5 +$as_echo_n "checking whether $CC supports $w... " >&6; } if $CC $w -c -o /dev/null conftest.c >/dev/null 2>&1 ; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } PEDANTIC_CFLAGS="$PEDANTIC_CFLAGS $w" else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -21731,7 +22843,7 @@ done # AtomBios special flags ATOMBIOS_CFLAGS="" -for w in -std=c99 -Wno-unknown-pragmas ; do +for w in -Wno-unknown-pragmas ; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -21748,15 +22860,15 @@ main () return 0; } _ACEOF - echo "$as_me:$LINENO: checking whether $CC supports $w" >&5 -echo $ECHO_N "checking whether $CC supports $w... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether $CC supports $w" >&5 +$as_echo_n "checking whether $CC supports $w... " >&6; } if $CC $w -c -o /dev/null conftest.c >/dev/null 2>&1 ; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } ATOMBIOS_CFLAGS="$ATOMBIOS_CFLAGS $w" else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -21765,8 +22877,8 @@ done # Optimizations case "x$CFLAGS" in *-O[2-9]*) - { echo "$as_me:$LINENO: Doing optimized build, checking for additional options" >&5 -echo "$as_me: Doing optimized build, checking for additional options" >&6;} + { $as_echo "$as_me:$LINENO: Doing optimized build, checking for additional options" >&5 +$as_echo "$as_me: Doing optimized build, checking for additional options" >&6;} for w in -finline-functions ; do cat >conftest.$ac_ext <<_ACEOF @@ -21784,15 +22896,15 @@ main () return 0; } _ACEOF - echo "$as_me:$LINENO: checking whether $CC supports $w" >&5 -echo $ECHO_N "checking whether $CC supports $w... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether $CC supports $w" >&5 +$as_echo_n "checking whether $CC supports $w... " >&6; } if $CC $w -c -o /dev/null conftest.c >/dev/null 2>&1 ; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } CFLAGS="$CFLAGS -finline-functions" else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -21889,18 +23001,18 @@ fi -# Check whether --with-release-version or --without-release-version was given. +# Check whether --with-release-version was given. if test "${with_release_version+set}" = set; then - withval="$with_release_version" - RELEASE_VERSION="$withval" + withval=$with_release_version; RELEASE_VERSION="$withval" else RELEASE_VERSION="" -fi; +fi + if test "x$RELEASE_VERSION" != "x"; then PACKAGE="$PACKAGE-$RELEASE_VERSION" PACKAGE_TARNAME="$PACKAGE_TARNAME-$RELEASE_VERSION" - { echo "$as_me:$LINENO: Building with package name set to $PACKAGE" >&5 -echo "$as_me: Building with package name set to $PACKAGE" >&6;} + { $as_echo "$as_me:$LINENO: Building with package name set to $PACKAGE" >&5 +$as_echo "$as_me: Building with package name set to $PACKAGE" >&6;} fi cat >>confdefs.h <<_ACEOF @@ -21945,7 +23057,97 @@ _ACEOF fi - ac_config_files="$ac_config_files Makefile man/Makefile src/Makefile utils/conntest/Makefile" + + + # Check whether --enable-shave was given. +if test "${enable_shave+set}" = set; then + enableval=$enable_shave; +else + enable_shave=yes + +fi + + + + if test x"$enable_shave" = xyes; then + shavedir="$ac_pwd/." + + + MAKEFLAGS=-s + + AM_MAKEFLAGS='`test -z $V && echo -s`' + + + # Extract the first word of "sed", so it can be a program name with args. +set dummy sed; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_SED+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$SED"; then + ac_cv_prog_SED="$SED" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_SED="sed" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_SED" && ac_cv_prog_SED="false" +fi +fi +SED=$ac_cv_prog_SED +if test -n "$SED"; then + { $as_echo "$as_me:$LINENO: result: $SED" >&5 +$as_echo "$SED" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + SHAVE_SAVED_LIBTOOL=$LIBTOOL + LIBTOOL="${SHELL} ${shavedir}/shave-libtool '${SHAVE_SAVED_LIBTOOL}'" + + + SHAVE_SAVED_CC=$CC + SHAVE_SAVED_CXX=$CXX + SHAVE_SAVED_FC=$FC + SHAVE_SAVED_F77=$F77 + SHAVE_SAVED_OBJC=$OBJC + CC="${SHELL} ${shavedir}/shave cc ${SHAVE_SAVED_CC}" + CXX="${SHELL} ${shavedir}/shave cxx ${SHAVE_SAVED_CXX}" + FC="${SHELL} ${shavedir}/shave fc ${SHAVE_SAVED_FC}" + F77="${SHELL} ${shavedir}/shave f77 ${SHAVE_SAVED_F77}" + OBJC="${SHELL} ${shavedir}/shave objc ${SHAVE_SAVED_OBJC}" + + + + + + + V=@ + else + V=1 + fi + Q='$(V:1=)' + + + + +ac_config_files="$ac_config_files Makefile man/Makefile src/Makefile utils/conntest/Makefile" + cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -21964,39 +23166,59 @@ _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. +# So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. -{ +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +$as_echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + (set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; + ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; - esac; -} | + esac | + sort +) | sed ' + /^ac_cv_env_/b end t clear - : clear + :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - : end' >>confcache -if diff $cache_file confcache >/dev/null 2>&1; then :; else - if test -w $cache_file; then - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else - echo "not updating unwritable cache $cache_file" + { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache @@ -22005,32 +23227,18 @@ test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. - ac_i=`echo "$ac_i" | - sed 's/\$U\././;s/\.o$//;s/\.obj$//'` - # 2. Add them. - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs @@ -22038,103 +23246,111 @@ LTLIBOBJS=$ac_ltlibobjs if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. +$as_echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"AMDEP\" was never defined. +$as_echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. +$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE}" && test -z "${HAVE_SED_WITH_REASONABLE_SUBSTITUTION_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"HAVE_SED_WITH_REASONABLE_SUBSTITUTION\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_SED_WITH_REASONABLE_SUBSTITUTION\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"HAVE_SED_WITH_REASONABLE_SUBSTITUTION\" was never defined. +$as_echo "$as_me: error: conditional \"HAVE_SED_WITH_REASONABLE_SUBSTITUTION\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. +$as_echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${HAVE_XEXTPROTO_71_TRUE}" && test -z "${HAVE_XEXTPROTO_71_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_XEXTPROTO_71\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"HAVE_XEXTPROTO_71\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_PCI_PCI_H_TRUE}" && test -z "${HAVE_PCI_PCI_H_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"HAVE_PCI_PCI_H\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_PCI_PCI_H\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"HAVE_PCI_PCI_H\" was never defined. +$as_echo "$as_me: error: conditional \"HAVE_PCI_PCI_H\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${XSERVER_LIBPCIACCESS_TRUE}" && test -z "${XSERVER_LIBPCIACCESS_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"XSERVER_LIBPCIACCESS\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"XSERVER_LIBPCIACCESS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"XSERVER_LIBPCIACCESS\" was never defined. +$as_echo "$as_me: error: conditional \"XSERVER_LIBPCIACCESS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${USE_EXA_TRUE}" && test -z "${USE_EXA_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"USE_EXA\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"USE_EXA\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"USE_EXA\" was never defined. +$as_echo "$as_me: error: conditional \"USE_EXA\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${USE_DRI_TRUE}" && test -z "${USE_DRI_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"USE_DRI\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"USE_DRI\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"USE_DRI\" was never defined. +$as_echo "$as_me: error: conditional \"USE_DRI\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_XF86_ANSIC_H_TRUE}" && test -z "${HAVE_XF86_ANSIC_H_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"HAVE_XF86_ANSIC_H\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_XF86_ANSIC_H\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"HAVE_XF86_ANSIC_H\" was never defined. +$as_echo "$as_me: error: conditional \"HAVE_XF86_ANSIC_H\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${ATOM_BIOS_TRUE}" && test -z "${ATOM_BIOS_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"ATOM_BIOS\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"ATOM_BIOS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"ATOM_BIOS\" was never defined. +$as_echo "$as_me: error: conditional \"ATOM_BIOS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${ATOM_BIOS_PARSER_TRUE}" && test -z "${ATOM_BIOS_PARSER_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"ATOM_BIOS_PARSER\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"ATOM_BIOS_PARSER\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"ATOM_BIOS_PARSER\" was never defined. +$as_echo "$as_me: error: conditional \"ATOM_BIOS_PARSER\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_ZLIB_TRUE}" && test -z "${HAVE_ZLIB_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"HAVE_ZLIB\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_ZLIB\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"HAVE_ZLIB\" was never defined. +$as_echo "$as_me: error: conditional \"HAVE_ZLIB\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} +ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF +{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. @@ -22147,22 +23363,78 @@ ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## -# Be Bourne compatible +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } fi -DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then @@ -22172,33 +23444,60 @@ else fi +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + # Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - 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=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE # Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false @@ -22206,159 +23505,122 @@ fi # Name of the executable. -as_me=`$as_basename "$0" || +as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` +# CDPATH. +$as_unset CDPATH -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi as_lineno_1=$LINENO as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "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=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # 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. + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop - s,-$,, - s,^['$as_cr_digits']*\n,, + s/-\n.*// ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX 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 + # original and so on. Autoconf is especially sensitive 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= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi -if expr a : '\(a\)' >/dev/null 2>&1; then +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false 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 generic - # 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='cp -p' - else +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln else as_ln_s='cp -p' fi -rm -f conf$$ conf$$.exe conf$$.file +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: @@ -22367,7 +23629,28 @@ else as_mkdir_p=false fi -as_executable_p="test -f" +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -22376,31 +23659,14 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - exec 6>&1 -# Open the log real soon, to keep \$[0] and so on meaningful, and to +# Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by xf86-video-radeonhd $as_me 1.2.5, which was -generated by GNU Autoconf 2.59. Invocation command line was +# values after options handling. +ac_log=" +This file was extended by xf86-video-radeonhd $as_me 1.3.0, which was +generated by GNU Autoconf 2.62. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -22408,30 +23674,20 @@ generated by GNU Autoconf 2.59. Invocation command line was CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + _ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -fi +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -fi - -cat >>$CONFIG_STATUS <<\_ACEOF +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. @@ -22439,14 +23695,14 @@ current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit - -V, --version print version number, then exit + -V, --version print version number and configuration settings, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] - instantiate the configuration file FILE + instantiate the configuration file FILE --header=FILE[:TEMPLATE] - instantiate the configuration header FILE + instantiate the configuration header FILE Configuration files: $config_files @@ -22458,83 +23714,83 @@ Configuration commands: $config_commands Report bugs to <bug-autoconf@gnu.org>." -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -xf86-video-radeonhd config.status 1.2.5 -configured by $0, generated by GNU Autoconf 2.59, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" +xf86-video-radeonhd config.status 1.3.0 +configured by $0, generated by GNU Autoconf 2.62, + with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" -Copyright (C) 2003 Free Software Foundation, Inc. +Copyright (C) 2008 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." -srcdir=$srcdir -INSTALL="$INSTALL" + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +AWK='$AWK' +test -n "\$AWK" || AWK=awk _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) - ac_option=`expr "x$1" : 'x\([^=]*\)='` - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; - -*) + *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_option=$1 - ac_need_defaults=false;; esac case $ac_option in # Handling of the options. -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + { $as_echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} + -*) { $as_echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; - *) ac_config_targets="$ac_config_targets $1" ;; + *) ac_config_targets="$ac_config_targets $1" + ac_need_defaults=false ;; esac shift @@ -22548,42 +23804,58 @@ if $ac_cs_silent; then fi _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" fi _ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 -cat >>$CONFIG_STATUS <<_ACEOF +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # -# INIT-COMMANDS section. +# INIT-COMMANDS # - AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF +# Handling of arguments. for ac_config_target in $ac_config_targets do - case "$ac_config_target" in - # Handling of arguments. - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "man/Makefile" ) CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; - "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - "utils/conntest/Makefile" ) CONFIG_FILES="$CONFIG_FILES utils/conntest/Makefile" ;; - "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "shave") CONFIG_FILES="$CONFIG_FILES shave" ;; + "shave-libtool") CONFIG_FILES="$CONFIG_FILES shave-libtool" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "utils/conntest/Makefile") CONFIG_FILES="$CONFIG_FILES utils/conntest/Makefile" ;; + + *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done + # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely @@ -22595,793 +23867,634 @@ if $ac_need_defaults; then fi # Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason to put it here, and in addition, +# simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. -# Create a temporary directory, and hook for its removal unless debugging. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. $debug || { - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } - # Create a (secure) tmp directory for tmp files. { - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { - tmp=./confstat$$-$RANDOM - (umask 077 && mkdir $tmp) + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") } || { - echo "$me: cannot create a temporary directory in ." >&2 + $as_echo "$as_me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr='
' +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -# -# CONFIG_FILES section. -# +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } +ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@DEFS@,$DEFS,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@LIBS@,$LIBS,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@CYGPATH_W@,$CYGPATH_W,;t t -s,@PACKAGE@,$PACKAGE,;t t -s,@VERSION@,$VERSION,;t t -s,@ACLOCAL@,$ACLOCAL,;t t -s,@AUTOCONF@,$AUTOCONF,;t t -s,@AUTOMAKE@,$AUTOMAKE,;t t -s,@AUTOHEADER@,$AUTOHEADER,;t t -s,@MAKEINFO@,$MAKEINFO,;t t -s,@install_sh@,$install_sh,;t t -s,@STRIP@,$STRIP,;t t -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t -s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t -s,@mkdir_p@,$mkdir_p,;t t -s,@AWK@,$AWK,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@am__leading_dot@,$am__leading_dot,;t t -s,@AMTAR@,$AMTAR,;t t -s,@am__tar@,$am__tar,;t t -s,@am__untar@,$am__untar,;t t -s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t -s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t -s,@MAINT@,$MAINT,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@EXEEXT@,$EXEEXT,;t t -s,@OBJEXT@,$OBJEXT,;t t -s,@DEPDIR@,$DEPDIR,;t t -s,@am__include@,$am__include,;t t -s,@am__quote@,$am__quote,;t t -s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t -s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t -s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t -s,@CCDEPMODE@,$CCDEPMODE,;t t -s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t -s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t -s,@SED@,$SED,;t t -s,@HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@,$HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE,;t t -s,@HAVE_SED_WITH_REASONABLE_SUBSTITUTION_FALSE@,$HAVE_SED_WITH_REASONABLE_SUBSTITUTION_FALSE,;t t -s,@build@,$build,;t t -s,@build_cpu@,$build_cpu,;t t -s,@build_vendor@,$build_vendor,;t t -s,@build_os@,$build_os,;t t -s,@host@,$host,;t t -s,@host_cpu@,$host_cpu,;t t -s,@host_vendor@,$host_vendor,;t t -s,@host_os@,$host_os,;t t -s,@EGREP@,$EGREP,;t t -s,@LN_S@,$LN_S,;t t -s,@ECHO@,$ECHO,;t t -s,@AR@,$AR,;t t -s,@ac_ct_AR@,$ac_ct_AR,;t t -s,@RANLIB@,$RANLIB,;t t -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s,@DSYMUTIL@,$DSYMUTIL,;t t -s,@ac_ct_DSYMUTIL@,$ac_ct_DSYMUTIL,;t t -s,@NMEDIT@,$NMEDIT,;t t -s,@ac_ct_NMEDIT@,$ac_ct_NMEDIT,;t t -s,@CPP@,$CPP,;t t -s,@CXX@,$CXX,;t t -s,@CXXFLAGS@,$CXXFLAGS,;t t -s,@ac_ct_CXX@,$ac_ct_CXX,;t t -s,@CXXDEPMODE@,$CXXDEPMODE,;t t -s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t -s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t -s,@CXXCPP@,$CXXCPP,;t t -s,@F77@,$F77,;t t -s,@FFLAGS@,$FFLAGS,;t t -s,@ac_ct_F77@,$ac_ct_F77,;t t -s,@LIBTOOL@,$LIBTOOL,;t t -s,@PKG_CONFIG@,$PKG_CONFIG,;t t -s,@ac_pt_PKG_CONFIG@,$ac_pt_PKG_CONFIG,;t t -s,@XORG_CFLAGS@,$XORG_CFLAGS,;t t -s,@XORG_LIBS@,$XORG_LIBS,;t t -s,@PCIUTILS_CFLAGS@,$PCIUTILS_CFLAGS,;t t -s,@PCIUTILS_LIBS@,$PCIUTILS_LIBS,;t t -s,@HAVE_PCI_PCI_H_TRUE@,$HAVE_PCI_PCI_H_TRUE,;t t -s,@HAVE_PCI_PCI_H_FALSE@,$HAVE_PCI_PCI_H_FALSE,;t t -s,@PCIACCESS_CFLAGS@,$PCIACCESS_CFLAGS,;t t -s,@PCIACCESS_LIBS@,$PCIACCESS_LIBS,;t t -s,@XSERVER_LIBPCIACCESS_TRUE@,$XSERVER_LIBPCIACCESS_TRUE,;t t -s,@XSERVER_LIBPCIACCESS_FALSE@,$XSERVER_LIBPCIACCESS_FALSE,;t t -s,@USE_EXA_TRUE@,$USE_EXA_TRUE,;t t -s,@USE_EXA_FALSE@,$USE_EXA_FALSE,;t t -s,@DRI_CFLAGS@,$DRI_CFLAGS,;t t -s,@DRI_LIBS@,$DRI_LIBS,;t t -s,@USE_DRI_TRUE@,$USE_DRI_TRUE,;t t -s,@USE_DRI_FALSE@,$USE_DRI_FALSE,;t t -s,@HAVE_XF86_ANSIC_H_TRUE@,$HAVE_XF86_ANSIC_H_TRUE,;t t -s,@HAVE_XF86_ANSIC_H_FALSE@,$HAVE_XF86_ANSIC_H_FALSE,;t t -s,@ATOM_BIOS_TRUE@,$ATOM_BIOS_TRUE,;t t -s,@ATOM_BIOS_FALSE@,$ATOM_BIOS_FALSE,;t t -s,@ATOM_BIOS_PARSER_TRUE@,$ATOM_BIOS_PARSER_TRUE,;t t -s,@ATOM_BIOS_PARSER_FALSE@,$ATOM_BIOS_PARSER_FALSE,;t t -s,@HAVE_ZLIB_TRUE@,$HAVE_ZLIB_TRUE,;t t -s,@HAVE_ZLIB_FALSE@,$HAVE_ZLIB_FALSE,;t t -s,@WARN_CFLAGS@,$WARN_CFLAGS,;t t -s,@PEDANTIC_CFLAGS@,$PEDANTIC_CFLAGS,;t t -s,@ATOMBIOS_CFLAGS@,$ATOMBIOS_CFLAGS,;t t -s,@RANDR_VERSION@,$RANDR_VERSION,;t t -s,@moduledir@,$moduledir,;t t -s,@DRIVER_NAME@,$DRIVER_NAME,;t t -s,@APP_MAN_SUFFIX@,$APP_MAN_SUFFIX,;t t -s,@LIB_MAN_SUFFIX@,$LIB_MAN_SUFFIX,;t t -s,@FILE_MAN_SUFFIX@,$FILE_MAN_SUFFIX,;t t -s,@MISC_MAN_SUFFIX@,$MISC_MAN_SUFFIX,;t t -s,@DRIVER_MAN_SUFFIX@,$DRIVER_MAN_SUFFIX,;t t -s,@ADMIN_MAN_SUFFIX@,$ADMIN_MAN_SUFFIX,;t t -s,@APP_MAN_DIR@,$APP_MAN_DIR,;t t -s,@LIB_MAN_DIR@,$LIB_MAN_DIR,;t t -s,@FILE_MAN_DIR@,$FILE_MAN_DIR,;t t -s,@MISC_MAN_DIR@,$MISC_MAN_DIR,;t t -s,@DRIVER_MAN_DIR@,$DRIVER_MAN_DIR,;t t -s,@ADMIN_MAN_DIR@,$ADMIN_MAN_DIR,;t t -s,@LIBOBJS@,$LIBOBJS,;t t -s,@LTLIBOBJS@,$LTLIBOBJS,;t t -CEOF + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` = $ac_delim_num; then + break + elif $ac_last_try; then + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\).*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\).*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' <conf$$subs.awk | sed ' +/^[^""]/{ + N + s/\n// +} +' >>$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" - cat >>$CONFIG_STATUS <<\_ACEOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat - fi +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ + || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 +$as_echo "$as_me: error: could not setup config files machinery" >&2;} + { (exit 1); exit 1; }; } +_ACEOF + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ +s/:*$// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$tmp/defines.awk" <<\_ACAWK || +BEGIN { _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_t=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_t"; then + break + elif $ac_last_try; then + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' <confdefs.h | sed ' +s/'"$ac_delim"'/"\\\ +"/g' >>$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + prefix = substr(line, 1, index(line, defundef) - 1) + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", line, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 +$as_echo "$as_me: error: could not setup config headers machinery" >&2;} + { (exit 1); exit 1; }; } +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 +$as_echo "$as_me: error: Invalid tag $ac_tag." >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { (exit 1); exit 1; }; };; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + ac_file_inputs="$ac_file_inputs '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir="$ac_dir" + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } - ac_builddir=. -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix case $srcdir in - .) # No --srcdir option. We are building in place. + .) # We are building in place. ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac + case $ac_mode in + :F) + # + # CONFIG_FILE + # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_builddir$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac +_ACEOF - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= + +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p +' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub $extrasub _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;t t -s,@srcdir@,$ac_srcdir,;t t -s,@abs_srcdir@,$ac_abs_srcdir,;t t -s,@top_srcdir@,$ac_top_srcdir,;t t -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t -s,@builddir@,$ac_builddir,;t t -s,@abs_builddir@,$ac_abs_builddir,;t t -s,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } -# -# CONFIG_HEADER section. -# +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='[ ].*$,\1#\2' -ac_dC=' ' -ac_dD=',;t' -# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='$,\1#\2define\3' -ac_uC=' ' -ac_uD=',;t' - -for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + rm -f "$tmp/stdin" case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - # Do quote $f, to prevent DOS paths from being IFS'd. - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} + -) cat "$tmp/out" && rm -f "$tmp/out";; + *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + esac \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - # Remove the trailing spaces. - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in - -_ACEOF - -# Transform confdefs.h into two sed scripts, `conftest.defines' and -# `conftest.undefs', that substitutes the proper values into -# config.h.in to produce config.h. The first handles `#define' -# templates, and the second `#undef' templates. -# And first: Protect against being on the right side of a sed subst in -# config.status. Protect against being in an unquoted here document -# in config.status. -rm -f conftest.defines conftest.undefs -# Using a here document instead of a string reduces the quoting nightmare. -# Putting comments in sed scripts is not portable. -# -# `end' is used to avoid that the second main sed command (meant for -# 0-ary CPP macros) applies to n-ary macro definitions. -# See the Autoconf documentation for `clear'. -cat >confdef2sed.sed <<\_ACEOF -s/[\\&,]/\\&/g -s,[\\$`],\\&,g -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp -t end -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp -: end -_ACEOF -# If some macros were called several times there might be several times -# the same #defines, which is useless. Nevertheless, we may not want to -# sort them, since we want the *last* AC-DEFINE to be honored. -uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines -sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs -rm -f confdef2sed.sed - -# This sed command replaces #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -cat >>conftest.undefs <<\_ACEOF -s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, -_ACEOF - -# Break up conftest.defines because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS -echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS -echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS -echo ' :' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.defines >/dev/null -do - # Write a limited-size here document to $tmp/defines.sed. - echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS - # Speed up: don't consider the non `#define' lines. - echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/defines.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines -echo ' fi # grep' >>$CONFIG_STATUS -echo >>$CONFIG_STATUS - -# Break up conftest.undefs because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #undef templates' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.undefs >/dev/null -do - # Write a limited-size here document to $tmp/undefs.sed. - echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS - # Speed up: don't consider the non `#undef' - echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/undefs.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail - rm -f conftest.undefs - mv conftest.tail conftest.undefs -done -rm -f conftest.undefs - -cat >>$CONFIG_STATUS <<\_ACEOF - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - echo "/* Generated by configure. */" >$tmp/config.h - else - echo "/* $ac_file. Generated by configure. */" >$tmp/config.h - fi - cat $tmp/in >>$tmp/config.h - rm -f $tmp/in + ;; + :H) + # + # CONFIG_HEADER + # if test x"$ac_file" != x-; then - if diff $ac_file $tmp/config.h >/dev/null 2>&1; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" + } >"$tmp/config.h" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } + if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} else - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - rm -f $ac_file - mv $tmp/config.h $ac_file + rm -f "$ac_file" + mv "$tmp/config.h" "$ac_file" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } fi else - cat $tmp/config.h - rm -f $tmp/config.h + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 +$as_echo "$as_me: error: could not create -" >&2;} + { (exit 1); exit 1; }; } fi -# Compute $ac_file's index in $config_headers. +# Compute "$ac_file"'s index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in - $ac_file | $ac_file:* ) + "$ac_file" | "$ac_file":* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done -echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || -$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X$ac_file : 'X\(//\)[^/]' \| \ - X$ac_file : 'X\(//\)$' \| \ - X$ac_file : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X$ac_file | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'`/stamp-h$_am_stamp_count -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_COMMANDS section. -# -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue - ac_dest=`echo "$ac_file" | sed 's,:.*,,'` - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_dir=`(dirname "$ac_dest") 2>/dev/null || -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_dest" : 'X\(//\)[^/]' \| \ - X"$ac_dest" : 'X\(//\)$' \| \ - X"$ac_dest" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_dest" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac +echo "timestamp for "$ac_file"" >`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac + :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 -echo "$as_me: executing $ac_dest commands" >&6;} - case $ac_dest in - depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. @@ -23391,18 +24504,29 @@ echo "$as_me: executing $ac_dest commands" >&6;} # 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=`(dirname "$mf") 2>/dev/null || + dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` else continue fi @@ -23424,59 +24548,90 @@ echo X"$mf" | sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue - fdir=`(dirname "$file") 2>/dev/null || + fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p $dirpart/$fdir - else - as_dir=$dirpart/$fdir + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir=$dirpart/$fdir + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 -echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } - # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; + esac -done -_ACEOF +done # for ac_tag -cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save +test $ac_write_fail = 0 || + { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. @@ -23498,6 +24653,10 @@ if test "$no_create" != yes; then # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:$LINENO: WARNING: Unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: Unrecognized options: $ac_unrecognized_opts" >&2;} +fi if test "x$USE_DRI" != xyes ; then echo "" diff --git a/driver/xf86-video-radeonhd/configure.ac b/driver/xf86-video-radeonhd/configure.ac index c31f10adc..3615a9b81 100644 --- a/driver/xf86-video-radeonhd/configure.ac +++ b/driver/xf86-video-radeonhd/configure.ac @@ -2,7 +2,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-radeonhd], - 1.2.5, + 1.3.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/radeonhd], xf86-video-radeonhd) @@ -14,6 +14,9 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AM_MAINTAINER_MODE +AC_CONFIG_FILES([shave shave-libtool]) + + # Program checks. AC_DISABLE_STATIC AC_PROG_CC @@ -48,19 +51,19 @@ AH_BOTTOM([#endif]) AC_ARG_WITH(xorg-module-dir, AC_HELP_STRING([--with-xorg-module-dir=DIR], - [Default xorg module directory [[default=$libdir/xorg/modules]]]), + [Default xorg module directory (default $libdir/xorg/modules)]), [moduledir="$withval"], [moduledir="$libdir/xorg/modules"]) AC_ARG_ENABLE(exa, AC_HELP_STRING([--disable-exa], - [Disable EXA support [[default enabled]]]), + [Disable EXA support (default enabled)]), [EXA="$enableval"], [EXA=yes]) AC_ARG_ENABLE(dri, AC_HELP_STRING([--disable-dri], - [Disable DRI support [[default enabled]]]), + [Disable DRI support (default enabled)]), [DRI="$enableval"], [DRI=yes]) @@ -76,6 +79,10 @@ XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto) # @@@@ need to check for the right server version once RandR 1.2 is in. # @@@ do we really need fontsproto here? PKG_CHECK_MODULES(XORG, [xorg-server xproto fontsproto $REQUIRED_MODULES]) +PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1], + HAVE_XEXTPROTO_71="yes"; AC_DEFINE(HAVE_XEXTPROTO_71, 1, [xextproto 7.1 available]), + HAVE_XEXTPROTO_71="no") +AM_CONDITIONAL(HAVE_XEXTPROTO_71, [ test "$HAVE_XEXTPROTO_71" = "yes" ]) sdkdir=$(pkg-config --variable=sdkdir xorg-server) @@ -220,6 +227,10 @@ AC_CHECK_DECL(xf86RotateFreeShadow, #include <windowstr.h> #include <xf86Crtc.h>]) +AC_CHECK_DECL(pci_device_enable, + [AC_DEFINE(HAVE_PCI_DEVICE_ENABLE, 1, [Have pci_device_enable prototype])], + [], + [#include <pciaccess.h>]) CFLAGS="$SAVED_CFLAGS" @@ -297,20 +308,21 @@ for w in \ -Wpointer-arith -Woverlength-strings -Wvolatile-register-var \ -Winit-self -Wbad-function-cast \ -Wstrict-prototypes -Wold-style-definition \ - -Wnested-externs -Wdisabled-optimization ; + -Wnested-externs -Wdisabled-optimization \ + -Wno-unknown-pragmas ; do AC_PROG_CC_FLAG($w,[WARN_CFLAGS="$WARN_CFLAGS $w"],) done -# Due to AtomBIOS spitting out too much with -pedantic +# atombios.h prohibits -std=c99 due to unnamed unions PEDANTIC_CFLAGS="" -for w in -pedantic -Wno-long-long -Wno-variadic-macros ; do +for w in -Wno-long-long -Wno-variadic-macros ; do AC_PROG_CC_FLAG($w,[PEDANTIC_CFLAGS="$PEDANTIC_CFLAGS $w"],) done # AtomBios special flags ATOMBIOS_CFLAGS="" -for w in -std=c99 -Wno-unknown-pragmas ; do +for w in -Wno-unknown-pragmas ; do AC_PROG_CC_FLAG($w,[ATOMBIOS_CFLAGS="$ATOMBIOS_CFLAGS $w"],) done @@ -360,6 +372,8 @@ AC_DEFINE_UNQUOTED([PACKAGE_VERSION_PATCHLEVEL], [Patchlevel Version]) fi +SHAVE_INIT(.,enable) + AC_OUTPUT([ Makefile man/Makefile diff --git a/driver/xf86-video-radeonhd/man/Makefile.in b/driver/xf86-video-radeonhd/man/Makefile.in index 25c1e7efa..9ef9ca9c2 100644 --- a/driver/xf86-video-radeonhd/man/Makefile.in +++ b/driver/xf86-video-radeonhd/man/Makefile.in @@ -14,7 +14,7 @@ @SET_MAKE@ -# $Id: Makefile.in,v 1.9 2009/04/26 13:59:41 matthieu Exp $ +# $Id: Makefile.in,v 1.10 2009/11/24 16:57:34 matthieu Exp $ # # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # @@ -66,7 +66,8 @@ host_triplet = @host@ subdir = man DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(install_sh) -d @@ -90,6 +91,7 @@ ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ +AM_MAKEFLAGS = @AM_MAKEFLAGS@ APP_MAN_DIR = @APP_MAN_DIR@ APP_MAN_SUFFIX = @APP_MAN_SUFFIX@ AR = @AR@ @@ -127,13 +129,17 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ +FC = @FC@ FFLAGS = @FFLAGS@ FILE_MAN_DIR = @FILE_MAN_DIR@ FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@ +GREP = @GREP@ HAVE_PCI_PCI_H_FALSE = @HAVE_PCI_PCI_H_FALSE@ HAVE_PCI_PCI_H_TRUE = @HAVE_PCI_PCI_H_TRUE@ HAVE_SED_WITH_REASONABLE_SUBSTITUTION_FALSE = @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_FALSE@ HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE = @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@ +HAVE_XEXTPROTO_71_FALSE = @HAVE_XEXTPROTO_71_FALSE@ +HAVE_XEXTPROTO_71_TRUE = @HAVE_XEXTPROTO_71_TRUE@ HAVE_XF86_ANSIC_H_FALSE = @HAVE_XF86_ANSIC_H_FALSE@ HAVE_XF86_ANSIC_H_TRUE = @HAVE_XF86_ANSIC_H_TRUE@ HAVE_ZLIB_FALSE = @HAVE_ZLIB_FALSE@ @@ -153,10 +159,12 @@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MISC_MAN_DIR = @MISC_MAN_DIR@ MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@ NMEDIT = @NMEDIT@ +OBJC = @OBJC@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ @@ -171,6 +179,7 @@ PCIUTILS_CFLAGS = @PCIUTILS_CFLAGS@ PCIUTILS_LIBS = @PCIUTILS_LIBS@ PEDANTIC_CFLAGS = @PEDANTIC_CFLAGS@ PKG_CONFIG = @PKG_CONFIG@ +Q = @Q@ RANDR_VERSION = @RANDR_VERSION@ RANLIB = @RANLIB@ SED = @SED@ @@ -181,21 +190,18 @@ USE_DRI_FALSE = @USE_DRI_FALSE@ USE_DRI_TRUE = @USE_DRI_TRUE@ USE_EXA_FALSE = @USE_EXA_FALSE@ USE_EXA_TRUE = @USE_EXA_TRUE@ +V = @V@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ +XEXT_CFLAGS = @XEXT_CFLAGS@ +XEXT_LIBS = @XEXT_LIBS@ XORG_CFLAGS = @XORG_CFLAGS@ XORG_LIBS = @XORG_LIBS@ XSERVER_LIBPCIACCESS_FALSE = @XSERVER_LIBPCIACCESS_FALSE@ XSERVER_LIBPCIACCESS_TRUE = @XSERVER_LIBPCIACCESS_TRUE@ -ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ -ac_ct_DSYMUTIL = @ac_ct_DSYMUTIL@ ac_ct_F77 = @ac_ct_F77@ -ac_ct_NMEDIT = @ac_ct_NMEDIT@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ @@ -212,26 +218,34 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ moduledir = @moduledir@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +shavedir = @shavedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ drivermandir = $(DRIVER_MAN_DIR) diff --git a/driver/xf86-video-radeonhd/man/radeonhd.man b/driver/xf86-video-radeonhd/man/radeonhd.man index e7a4d9914..7a1641a1f 100644 --- a/driver/xf86-video-radeonhd/man/radeonhd.man +++ b/driver/xf86-video-radeonhd/man/radeonhd.man @@ -30,7 +30,8 @@ has the following limitations: .\".TP "\w'\fB\(bu\fR'u+1n" .TP 2 \(bu -Support for hardware-based 2D acceleration and Xvideo needs more testing on R6xx and R7xx based cards. +Support for hardware-based 2D acceleration and Xvideo needs more testing on +R6xx and R7xx based cards. .TP \(bu No TV and Component connector support so far. @@ -166,23 +167,38 @@ RS740, RS740M .B RS780 Radeon HD 3100/3200/3300 Series .TP 8 -.B RV770 -Radeon HD 4800 Series; Everest, K2, Denali ATI FirePro -.TP 8 .B R700 Radeon R700 .TP 8 -.B M98 -Radeon M98 Mobility +.B RV710 +Radeon HD4570, HD4350 .TP 8 .B RV730 Radeon HD4670, HD4650 .TP 8 +.B RV740 +Radeon HD4770. EXPERIMENTAL AND UNTESTED +.TP 8 +.B RV770 +Radeon HD 4800 Series; Everest, K2, Denali ATI FirePro +.TP 8 +.B RV790 +Radeon HD 4890 +.TP 8 +.B M92 +Mobility Radeon HD4330, HD4530, HD4570. EXPERIMENTAL +.TP 8 +.B M93 +Mobility Radeon M93. EXPERIMENTAL AND UNTESTED +.TP 8 .B M96 -Radeon M96 Mobility +Mobility Radeon HD4600 .TP 8 -.B RV710 -Radeon HD4570, HD4350 +.B M97 +Mobility Radeon HD4860. EXPERIMENTAL AND UNTESTED +.TP 8 +.B M98 +Mobility Radeon HD4850, HD4870 .\" END_DEVICE_LIST marker - do not delete .PD .\" @@ -220,21 +236,22 @@ is the newer but more experimental hardware-based acceleration technique. .RS .PD .PP -The default is -.BR "depending on the chipset" , -driver version, and state of acceleration techniques and tries to give the best -user experience. -.br +Default value +.B depends on the chipset +and the acceleration techniques available for that chipset, and is chosen to +give the best user experience. +.PP +Note that R600 and above require +.BR DRI +to be enabled for "exa". +.PP Rotation isn't supported for the AccelMethods \*qnone\*q and \*qshadowfb\*q. .RE .TP .BI "Option \*qDRI\*q" Use this option to enable 3D and Xv acceleration using DRI. -Currently, the default is -.B on -on R5xx and RS6xx chips, and -.B off -on all others. +Default is +.B on. .TP .BI "Option \*qOffscreenSize\*q \*q" <integer>M|<integer>% \*q Specify the amount of framebuffer memory used for offscreen pixmaps, in @@ -400,25 +417,26 @@ mailing list. .TP .BI "Option \*qAudio\*q \*q" boolean \*q This option enables the audio hardware, which is responsible for delivering audio data -to the different HDMI capable conntectors and used to communicate with the audio +to the different HDMI capable connectors and used to communicate with the audio driver of the operation system. The default is .BR off . .TP .BI "Option \*qHDMI\*q \*q" string \*q Possible values are "DVI-I_0", "DVI-I_1"..,"DVI-D_0","DVI-I_1",.., "all". This option enables HDMI-Audio and HDMI-Info packets on the specified connector. -This is the only way enabling HDMI at the moment, since decoding E-EDID data to check if monitor supports HDMI is not implemented (yet). +This is the only way enabling HDMI at the moment, since decoding E-EDID data +to check if monitor supports HDMI is not implemented (yet). .TP .BI "Option \*qCoherent\*q \*q" string \*q There are two different ways to program the TMDS encoder in an output -for best signal quality for the transmitter chip used inside a digital -monitor. This option may be used to set the programming for each output +for best signal quality for the transmitter chip used inside a digital +monitor. This option may be used to set the programming for each output individually. The string is a space separated list of -.B <output_transmitter>=on|off. -Possible values for -.B <output_transmitter> -are: -.B TMDS_A, +.B <output_transmitter>=on|off. +Possible values for +.B <output_transmitter> +are: +.B TMDS_A, .B TMDS_B, .B UNIPHY_A, .B UNIPHY_B, @@ -426,14 +444,14 @@ are: .B AtomOutputLVTMA, .B AtomOutputKldskpLvtma, .B AtomOutputUniphyA, -.B AtomOutputUniphyB. -The log file should be consulted +.B AtomOutputUniphyB. +The log file should be consulted on which ones to use. The line: .B "Option \*qCoherent\*q \*qTMDS_A=off TMDS_B=on\*q" -will set coherent mode to -.B off -for TMDS A and to -.B on +will set coherent mode to +.B off +for TMDS A and to +.B on for TMDS B. The default for all outputs is .BR off . @@ -470,6 +488,16 @@ This option isn't implemented yet and has no effect. .RE .PP .PD +.TP +.BI "Option \*qForceLowPowerMode\*q \*q" boolean \*q +Enable to statically set GPU engine clock to a lower than default value. This +can help reduce power consumption. The default is +.B off. +.TP +.BI "Option \*qLowPowerModeEngineClock\*q \*q" integer \*q +Engine clock frequency to use when ForceLowPowerMode is enabled, in Hz. If not +set, the minimum known working frequency is used. If integer is negative, +validation is skipped, and the absolute value is used for the engine clock. .\" .\" .SH RANDR OUTPUT PROPERTIES @@ -591,7 +619,7 @@ panning, which is included in Xserver 1.6. It is considerable more flexible, and should support rotated pans. .RE .TP -.B _Backlight +.B Backlight .RS .TP 16 .PD 0 @@ -604,7 +632,7 @@ int32 .RS .PD .PP -Specifies the backlight intensity on laptop panels, if controlable by the driver. +Specifies the backlight intensity on laptop panels, if controllable by the driver. .RE .TP .B _Coherent @@ -625,6 +653,31 @@ Sets the coherent flag for TMDS signals. See also .IR "Coherent" . .\" .\" +.SH XVIDEO ATTRIBUTES +On R600 and above, the following XVideo attributes are supported. +Use +.B xvattr +to query and set these values at runtime. +.TP +.B XV_COLORSPACE +Select the Y'CbCr color space of the source video. Accepted values +are 'auto-detect'(0), 'Rec.601'(1), and 'Rec.709'(2). +.RS +.PP +Rec.709 is the standard which applies to high-definition television +broadcasting and "HD" digital video in general; Rec.601 applies to all +other digital video. +When 'auto-detect' is selected, Rec.709 is used for videos encoded +at least 928px wide, and Rec.601 is used otherwise. +This cut-off is lower than 720p so that the correct color space can be +applied to some media with non-standard resolutions that have high-probability +of having originated from Rec.709 encoded content. +.PP +Default is +.B 'auto-detect'(0). +.RE +.\" +.\" .SH KNOWN BUGS As the .B radeonhd @@ -677,5 +730,6 @@ Query the bugtracker for radeonhd bugs .\" .\" .SH AUTHORS -Egbert Eich, Luc Verhaegen, Matthias Hopf, Hans Ulrich Niedermann, Christian Koenig, Alexander Deucher, and others. +Egbert Eich, Luc Verhaegen, Matthias Hopf, Hans Ulrich Niedermann, +Christian Koenig, Alexander Deucher, and others. .\" vim: syntax=nroff diff --git a/driver/xf86-video-radeonhd/shave-libtool.in b/driver/xf86-video-radeonhd/shave-libtool.in new file mode 100644 index 000000000..1f3a720c1 --- /dev/null +++ b/driver/xf86-video-radeonhd/shave-libtool.in @@ -0,0 +1,69 @@ +#!/bin/sh + +# we need sed +SED=@SED@ +if test -z "$SED" ; then +SED=sed +fi + +lt_unmangle () +{ + last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'` +} + +# the real libtool to use +LIBTOOL="$1" +shift + +# if 1, don't print anything, the underlaying wrapper will do it +pass_though=0 + +# scan the arguments, keep the right ones for libtool, and discover the mode +preserved_args= +while test "$#" -gt 0; do + opt="$1" + shift + + case $opt in + --mode=*) + mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'` + preserved_args="$preserved_args $opt" + ;; + -o) + lt_output="$1" + preserved_args="$preserved_args $opt" + ;; + *) + preserved_args="$preserved_args $opt" + ;; + esac +done + +case "$mode" in +compile) + # shave will be called and print the actual CC/CXX/LINK line + preserved_args="$preserved_args --shave-mode=$mode" + pass_though=1 + ;; +link) + preserved_args="$preserved_args --shave-mode=$mode" + Q=" LINK " + ;; +*) + # let's u + # echo "*** libtool: Unimplemented mode: $mode, fill a bug report" + ;; +esac + +lt_unmangle "$lt_output" +output=$last_result + +if test -z $V; then + if test $pass_though -eq 0; then + echo "$Q$output" + fi + $LIBTOOL --silent $preserved_args +else + echo $LIBTOOL $preserved_args + $LIBTOOL $preserved_args +fi diff --git a/driver/xf86-video-radeonhd/shave.in b/driver/xf86-video-radeonhd/shave.in new file mode 100644 index 000000000..5c16f27ae --- /dev/null +++ b/driver/xf86-video-radeonhd/shave.in @@ -0,0 +1,79 @@ +#!/bin/sh + +# we need sed +SED=@SED@ +if test -z "$SED" ; then +SED=sed +fi + +lt_unmangle () +{ + last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'` +} + +# the tool to wrap (cc, cxx, ar, ranlib, ..) +tool="$1" +shift + +# the reel tool (to call) +REEL_TOOL="$1" +shift + +pass_through=0 +preserved_args= +while test "$#" -gt 0; do + opt="$1" + shift + + case $opt in + --shave-mode=*) + mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'` + ;; + -o) + lt_output="$1" + preserved_args="$preserved_args $opt" + ;; + *) + preserved_args="$preserved_args $opt" + ;; + esac +done + +# mode=link is handled in the libtool wrapper +case "$mode,$tool" in +link,*) + pass_through=1 + ;; +*,cxx) + Q=" CXX " + ;; +*,cc) + Q=" CC " + ;; +*,fc) + Q=" FC " + ;; +*,f77) + Q=" F77 " + ;; +*,objc) + Q=" OBJC " + ;; +*,*) + # should not happen + Q=" CC " + ;; +esac + +lt_unmangle "$lt_output" +output=$last_result + +if test -z $V; then + if test $pass_through -eq 0; then + echo "$Q$output" + fi + $REEL_TOOL $preserved_args +else + echo $REEL_TOOL $preserved_args + $REEL_TOOL $preserved_args +fi diff --git a/driver/xf86-video-radeonhd/src/Makefile.am b/driver/xf86-video-radeonhd/src/Makefile.am index 7156d63bd..49429f915 100644 --- a/driver/xf86-video-radeonhd/src/Makefile.am +++ b/driver/xf86-video-radeonhd/src/Makefile.am @@ -18,6 +18,7 @@ radeonhd_drv_la_LIBADD += @PCIACCESS_LIBS@ endif radeonhd_drv_la_SOURCES = \ + atombios_rev.h \ r5xx_3dregs.h \ r5xx_accel.c \ r5xx_accel.h \ @@ -76,6 +77,8 @@ radeonhd_drv_la_SOURCES = \ rhd_output.h \ rhd_pll.c \ rhd_pll.h \ + rhd_pm.c \ + rhd_pm.h \ rhd_randr.c \ rhd_randr.h \ rhd_regs.h \ @@ -85,7 +88,9 @@ radeonhd_drv_la_SOURCES = \ rhd_vga.c \ rhd_vga.h \ rhd_video.c \ - rhd_video.h + rhd_video.h \ + rhd_acpi.c \ + rhd_acpi.h nodist_radeonhd_drv_la_SOURCES = \ git_version.h @@ -146,8 +151,7 @@ if HAVE_SED_WITH_REASONABLE_SUBSTITUTION SRCMAN = $(top_srcdir)/man/radeonhd.man CLEANFILES += radeonhd.man.new radeonhd.man.new: rhd_id.c $(SRCMAN) - echo "Generating radeon.man.new..."; \ - ( $(SED) -n '1,/^\.\\" START_DEVICE_LIST marker - do not delete/p' "$(SRCMAN)"; \ + $(Q)( $(SED) -n '1,/^\.\\" START_DEVICE_LIST marker - do not delete/p' "$(SRCMAN)"; \ $(SED) -e '1,/^[ ]*\/\* START_DEVICE_LIST marker - do not delete \*\/ *$$/d' \ -e '/^[ ]*\/\* END_DEVICE_LIST marker - do not delete \*\/ *$$/,$$d' \ -e '/^[ ]\{1,\}xf86Msg(X_NONE,/d' \ @@ -162,8 +166,7 @@ radeonhd.man.new: rhd_id.c $(SRCMAN) SRCREADME = $(top_srcdir)/README CLEANFILES += README.new README.new: rhd_id.c $(top_srcdir)/README - echo "Generating README.new..."; \ - ( $(SED) -n '1,/^BEGIN_DEVICE_LIST$$/p' "$(SRCREADME)"; \ + $(Q)( $(SED) -n '1,/^BEGIN_DEVICE_LIST$$/p' "$(SRCREADME)"; \ $(SED) -e '1,/^[ ]*\/\* START_DEVICE_LIST marker - do not delete \*\/ *$$/d' \ -e '/^[ ]*\/\* END_DEVICE_LIST marker - do not delete \*\/ *$$/,$$d' \ -e '/^[ ]\{1,\}xf86Msg(X_NONE,/d' \ @@ -180,13 +183,13 @@ README.new: rhd_id.c $(top_srcdir)/README all-local: radeonhd.man.new README.new @changed=""; \ if diff -u "$(SRCMAN)" radeonhd.man.new; then \ - echo "radeon(4) man page is current."; \ + if test "x$(Q)" = "x@"; then :; else echo "radeon(4) man page is current."; fi \ else \ changed="$$changed $(SRCMAN)"; \ mv -f radeonhd.man.new "$(SRCMAN)"; \ fi; \ if diff -u "$(SRCREADME)" README.new; then \ - echo "README file is current."; \ + if test "x$(Q)" = "x@"; then :; else echo "README file is current."; fi \ else \ changed="$$changed $(SRCREADME)"; \ mv -f README.new "$(SRCREADME)"; \ diff --git a/driver/xf86-video-radeonhd/src/Makefile.in b/driver/xf86-video-radeonhd/src/Makefile.in index 4755d6c12..43a82e0d2 100644 --- a/driver/xf86-video-radeonhd/src/Makefile.in +++ b/driver/xf86-video-radeonhd/src/Makefile.in @@ -60,7 +60,8 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ README.new subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(install_sh) -d @@ -97,8 +98,8 @@ am__DEPENDENCIES_1 = @ATOM_BIOS_PARSER_TRUE@am__DEPENDENCIES_2 = libatom.la radeonhd_drv_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) -am__radeonhd_drv_la_SOURCES_DIST = r5xx_3dregs.h r5xx_accel.c \ - r5xx_accel.h r5xx_regs.h r5xx_xaa.c r600_reg.h \ +am__radeonhd_drv_la_SOURCES_DIST = atombios_rev.h r5xx_3dregs.h \ + r5xx_accel.c r5xx_accel.h r5xx_regs.h r5xx_xaa.c r600_reg.h \ r600_reg_auto_r6xx.h r600_reg_r6xx.h r600_reg_r7xx.h \ r600_shader.h r600_shader.c r600_state.h radeon_3d.c \ radeon_textured_videofuncs.c rhd_atombios.c rhd_atombios.h \ @@ -110,9 +111,10 @@ am__radeonhd_drv_la_SOURCES_DIST = r5xx_3dregs.h r5xx_accel.c \ rhd_hdmi.c rhd_hdmi.h rhd_helper.c rhd_i2c.c rhd_i2c.h \ rhd_id.c rhd_lut.c rhd_lut.h rhd_lvtma.c rhd_mc.c rhd_mc.h \ rhd_modes.c rhd_modes.h rhd_monitor.c rhd_monitor.h \ - rhd_output.c rhd_output.h rhd_pll.c rhd_pll.h rhd_randr.c \ - rhd_randr.h rhd_regs.h rhd_shadow.c rhd_shadow.h rhd_tmds.c \ - rhd_vga.c rhd_vga.h rhd_video.c rhd_video.h r5xx_exa.c \ + rhd_output.c rhd_output.h rhd_pll.c rhd_pll.h rhd_pm.c \ + rhd_pm.h rhd_randr.c rhd_randr.h rhd_regs.h rhd_shadow.c \ + rhd_shadow.h rhd_tmds.c rhd_vga.c rhd_vga.h rhd_video.c \ + rhd_video.h rhd_acpi.c rhd_acpi.h r5xx_exa.c \ radeon_exa_render.c rhd_dri.c rhd_dri.h radeon_dri.h \ radeon_drm.h r6xx_accel.c r6xx_accel.h r600_exa.c \ r600_textured_videofuncs.c AtomBios/includes/atombios.h \ @@ -142,9 +144,10 @@ am_radeonhd_drv_la_OBJECTS = radeonhd_drv_la-r5xx_accel.lo \ radeonhd_drv_la-rhd_lvtma.lo radeonhd_drv_la-rhd_mc.lo \ radeonhd_drv_la-rhd_modes.lo radeonhd_drv_la-rhd_monitor.lo \ radeonhd_drv_la-rhd_output.lo radeonhd_drv_la-rhd_pll.lo \ - radeonhd_drv_la-rhd_randr.lo radeonhd_drv_la-rhd_shadow.lo \ - radeonhd_drv_la-rhd_tmds.lo radeonhd_drv_la-rhd_vga.lo \ - radeonhd_drv_la-rhd_video.lo $(am__objects_1) $(am__objects_2) \ + radeonhd_drv_la-rhd_pm.lo radeonhd_drv_la-rhd_randr.lo \ + radeonhd_drv_la-rhd_shadow.lo radeonhd_drv_la-rhd_tmds.lo \ + radeonhd_drv_la-rhd_vga.lo radeonhd_drv_la-rhd_video.lo \ + radeonhd_drv_la-rhd_acpi.lo $(am__objects_1) $(am__objects_2) \ $(am__objects_3) $(am__objects_3) nodist_radeonhd_drv_la_OBJECTS = radeonhd_drv_la_OBJECTS = $(am_radeonhd_drv_la_OBJECTS) \ @@ -173,6 +176,7 @@ ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ +AM_MAKEFLAGS = @AM_MAKEFLAGS@ APP_MAN_DIR = @APP_MAN_DIR@ APP_MAN_SUFFIX = @APP_MAN_SUFFIX@ AR = @AR@ @@ -210,13 +214,17 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ +FC = @FC@ FFLAGS = @FFLAGS@ FILE_MAN_DIR = @FILE_MAN_DIR@ FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@ +GREP = @GREP@ HAVE_PCI_PCI_H_FALSE = @HAVE_PCI_PCI_H_FALSE@ HAVE_PCI_PCI_H_TRUE = @HAVE_PCI_PCI_H_TRUE@ HAVE_SED_WITH_REASONABLE_SUBSTITUTION_FALSE = @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_FALSE@ HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE = @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@ +HAVE_XEXTPROTO_71_FALSE = @HAVE_XEXTPROTO_71_FALSE@ +HAVE_XEXTPROTO_71_TRUE = @HAVE_XEXTPROTO_71_TRUE@ HAVE_XF86_ANSIC_H_FALSE = @HAVE_XF86_ANSIC_H_FALSE@ HAVE_XF86_ANSIC_H_TRUE = @HAVE_XF86_ANSIC_H_TRUE@ HAVE_ZLIB_FALSE = @HAVE_ZLIB_FALSE@ @@ -236,10 +244,12 @@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MISC_MAN_DIR = @MISC_MAN_DIR@ MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@ NMEDIT = @NMEDIT@ +OBJC = @OBJC@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ @@ -254,6 +264,7 @@ PCIUTILS_CFLAGS = @PCIUTILS_CFLAGS@ PCIUTILS_LIBS = @PCIUTILS_LIBS@ PEDANTIC_CFLAGS = @PEDANTIC_CFLAGS@ PKG_CONFIG = @PKG_CONFIG@ +Q = @Q@ RANDR_VERSION = @RANDR_VERSION@ RANLIB = @RANLIB@ SED = @SED@ @@ -264,21 +275,18 @@ USE_DRI_FALSE = @USE_DRI_FALSE@ USE_DRI_TRUE = @USE_DRI_TRUE@ USE_EXA_FALSE = @USE_EXA_FALSE@ USE_EXA_TRUE = @USE_EXA_TRUE@ +V = @V@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ +XEXT_CFLAGS = @XEXT_CFLAGS@ +XEXT_LIBS = @XEXT_LIBS@ XORG_CFLAGS = @XORG_CFLAGS@ XORG_LIBS = @XORG_LIBS@ XSERVER_LIBPCIACCESS_FALSE = @XSERVER_LIBPCIACCESS_FALSE@ XSERVER_LIBPCIACCESS_TRUE = @XSERVER_LIBPCIACCESS_TRUE@ -ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ -ac_ct_DSYMUTIL = @ac_ct_DSYMUTIL@ ac_ct_F77 = @ac_ct_F77@ -ac_ct_NMEDIT = @ac_ct_NMEDIT@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ @@ -295,26 +303,34 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ moduledir = @moduledir@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +shavedir = @shavedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @@ -334,23 +350,24 @@ radeonhd_drv_la_LDFLAGS = -module -avoid-version radeonhd_drv_la_CFLAGS = $(AM_CFLAGS) @PEDANTIC_CFLAGS@ radeonhd_drv_la_LIBADD = $(am__append_1) $(am__append_4) \ $(am__append_7) -radeonhd_drv_la_SOURCES = r5xx_3dregs.h r5xx_accel.c r5xx_accel.h \ - r5xx_regs.h r5xx_xaa.c r600_reg.h r600_reg_auto_r6xx.h \ - r600_reg_r6xx.h r600_reg_r7xx.h r600_shader.h r600_shader.c \ - r600_state.h radeon_3d.c radeon_textured_videofuncs.c \ - rhd_atombios.c rhd_atombios.h rhd_atomcrtc.c rhd_atomout.c \ - rhd_atomout.h rhd_atompll.c rhd_audio.c rhd_audio.h \ - rhd_biosscratch.c rhd_biosscratch.h rhd_card.h rhd_connector.c \ - rhd_connector.h rhd_crtc.c rhd_crtc.h rhd_cs.c rhd_cs.h \ - rhd_cursor.c rhd_cursor.h rhd_dac.c rhd_ddia.c rhd_dig.c \ - rhd_driver.c rhd_edid.c rhd.h rhd_hdmi.c rhd_hdmi.h \ - rhd_helper.c rhd_i2c.c rhd_i2c.h rhd_id.c rhd_lut.c rhd_lut.h \ - rhd_lvtma.c rhd_mc.c rhd_mc.h rhd_modes.c rhd_modes.h \ - rhd_monitor.c rhd_monitor.h rhd_output.c rhd_output.h \ - rhd_pll.c rhd_pll.h rhd_randr.c rhd_randr.h rhd_regs.h \ - rhd_shadow.c rhd_shadow.h rhd_tmds.c rhd_vga.c rhd_vga.h \ - rhd_video.c rhd_video.h $(am__append_2) $(am__append_3) \ - $(am__append_5) $(am__append_6) +radeonhd_drv_la_SOURCES = atombios_rev.h r5xx_3dregs.h r5xx_accel.c \ + r5xx_accel.h r5xx_regs.h r5xx_xaa.c r600_reg.h \ + r600_reg_auto_r6xx.h r600_reg_r6xx.h r600_reg_r7xx.h \ + r600_shader.h r600_shader.c r600_state.h radeon_3d.c \ + radeon_textured_videofuncs.c rhd_atombios.c rhd_atombios.h \ + rhd_atomcrtc.c rhd_atomout.c rhd_atomout.h rhd_atompll.c \ + rhd_audio.c rhd_audio.h rhd_biosscratch.c rhd_biosscratch.h \ + rhd_card.h rhd_connector.c rhd_connector.h rhd_crtc.c \ + rhd_crtc.h rhd_cs.c rhd_cs.h rhd_cursor.c rhd_cursor.h \ + rhd_dac.c rhd_ddia.c rhd_dig.c rhd_driver.c rhd_edid.c rhd.h \ + rhd_hdmi.c rhd_hdmi.h rhd_helper.c rhd_i2c.c rhd_i2c.h \ + rhd_id.c rhd_lut.c rhd_lut.h rhd_lvtma.c rhd_mc.c rhd_mc.h \ + rhd_modes.c rhd_modes.h rhd_monitor.c rhd_monitor.h \ + rhd_output.c rhd_output.h rhd_pll.c rhd_pll.h rhd_pm.c \ + rhd_pm.h rhd_randr.c rhd_randr.h rhd_regs.h rhd_shadow.c \ + rhd_shadow.h rhd_tmds.c rhd_vga.c rhd_vga.h rhd_video.c \ + rhd_video.h rhd_acpi.c rhd_acpi.h $(am__append_2) \ + $(am__append_3) $(am__append_5) $(am__append_6) nodist_radeonhd_drv_la_SOURCES = \ git_version.h @@ -472,6 +489,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeonhd_drv_la-radeon_3d.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeonhd_drv_la-radeon_exa_render.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeonhd_drv_la-radeon_textured_videofuncs.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeonhd_drv_la-rhd_acpi.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeonhd_drv_la-rhd_atombios.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeonhd_drv_la-rhd_atomcrtc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeonhd_drv_la-rhd_atomout.Plo@am__quote@ @@ -499,6 +517,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeonhd_drv_la-rhd_monitor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeonhd_drv_la-rhd_output.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeonhd_drv_la-rhd_pll.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeonhd_drv_la-rhd_pm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeonhd_drv_la-rhd_randr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeonhd_drv_la-rhd_shadow.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeonhd_drv_la-rhd_tmds.Plo@am__quote@ @@ -771,6 +790,13 @@ radeonhd_drv_la-rhd_pll.lo: rhd_pll.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(radeonhd_drv_la_CFLAGS) $(CFLAGS) -c -o radeonhd_drv_la-rhd_pll.lo `test -f 'rhd_pll.c' || echo '$(srcdir)/'`rhd_pll.c +radeonhd_drv_la-rhd_pm.lo: rhd_pm.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(radeonhd_drv_la_CFLAGS) $(CFLAGS) -MT radeonhd_drv_la-rhd_pm.lo -MD -MP -MF "$(DEPDIR)/radeonhd_drv_la-rhd_pm.Tpo" -c -o radeonhd_drv_la-rhd_pm.lo `test -f 'rhd_pm.c' || echo '$(srcdir)/'`rhd_pm.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/radeonhd_drv_la-rhd_pm.Tpo" "$(DEPDIR)/radeonhd_drv_la-rhd_pm.Plo"; else rm -f "$(DEPDIR)/radeonhd_drv_la-rhd_pm.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rhd_pm.c' object='radeonhd_drv_la-rhd_pm.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(radeonhd_drv_la_CFLAGS) $(CFLAGS) -c -o radeonhd_drv_la-rhd_pm.lo `test -f 'rhd_pm.c' || echo '$(srcdir)/'`rhd_pm.c + radeonhd_drv_la-rhd_randr.lo: rhd_randr.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(radeonhd_drv_la_CFLAGS) $(CFLAGS) -MT radeonhd_drv_la-rhd_randr.lo -MD -MP -MF "$(DEPDIR)/radeonhd_drv_la-rhd_randr.Tpo" -c -o radeonhd_drv_la-rhd_randr.lo `test -f 'rhd_randr.c' || echo '$(srcdir)/'`rhd_randr.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/radeonhd_drv_la-rhd_randr.Tpo" "$(DEPDIR)/radeonhd_drv_la-rhd_randr.Plo"; else rm -f "$(DEPDIR)/radeonhd_drv_la-rhd_randr.Tpo"; exit 1; fi @@ -806,6 +832,13 @@ radeonhd_drv_la-rhd_video.lo: rhd_video.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(radeonhd_drv_la_CFLAGS) $(CFLAGS) -c -o radeonhd_drv_la-rhd_video.lo `test -f 'rhd_video.c' || echo '$(srcdir)/'`rhd_video.c +radeonhd_drv_la-rhd_acpi.lo: rhd_acpi.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(radeonhd_drv_la_CFLAGS) $(CFLAGS) -MT radeonhd_drv_la-rhd_acpi.lo -MD -MP -MF "$(DEPDIR)/radeonhd_drv_la-rhd_acpi.Tpo" -c -o radeonhd_drv_la-rhd_acpi.lo `test -f 'rhd_acpi.c' || echo '$(srcdir)/'`rhd_acpi.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/radeonhd_drv_la-rhd_acpi.Tpo" "$(DEPDIR)/radeonhd_drv_la-rhd_acpi.Plo"; else rm -f "$(DEPDIR)/radeonhd_drv_la-rhd_acpi.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rhd_acpi.c' object='radeonhd_drv_la-rhd_acpi.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(radeonhd_drv_la_CFLAGS) $(CFLAGS) -c -o radeonhd_drv_la-rhd_acpi.lo `test -f 'rhd_acpi.c' || echo '$(srcdir)/'`rhd_acpi.c + radeonhd_drv_la-r5xx_exa.lo: r5xx_exa.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(radeonhd_drv_la_CFLAGS) $(CFLAGS) -MT radeonhd_drv_la-r5xx_exa.lo -MD -MP -MF "$(DEPDIR)/radeonhd_drv_la-r5xx_exa.Tpo" -c -o radeonhd_drv_la-r5xx_exa.lo `test -f 'r5xx_exa.c' || echo '$(srcdir)/'`r5xx_exa.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/radeonhd_drv_la-r5xx_exa.Tpo" "$(DEPDIR)/radeonhd_drv_la-r5xx_exa.Plo"; else rm -f "$(DEPDIR)/radeonhd_drv_la-r5xx_exa.Tpo"; exit 1; fi @@ -1062,8 +1095,7 @@ dist-hook: git_version.stamp "git_version.h" > "$(distdir)/git_version.h"; \ fi @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@radeonhd.man.new: rhd_id.c $(SRCMAN) -@HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ echo "Generating radeon.man.new..."; \ -@HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ ( $(SED) -n '1,/^\.\\" START_DEVICE_LIST marker - do not delete/p' "$(SRCMAN)"; \ +@HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ $(Q)( $(SED) -n '1,/^\.\\" START_DEVICE_LIST marker - do not delete/p' "$(SRCMAN)"; \ @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ $(SED) -e '1,/^[ ]*\/\* START_DEVICE_LIST marker - do not delete \*\/ *$$/d' \ @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ -e '/^[ ]*\/\* END_DEVICE_LIST marker - do not delete \*\/ *$$/,$$d' \ @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ -e '/^[ ]\{1,\}xf86Msg(X_NONE,/d' \ @@ -1075,8 +1107,7 @@ dist-hook: git_version.stamp @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ $(SED) -n '/^\.\\" END_DEVICE_LIST marker - do not delete/,$$p' "$(SRCMAN)" \ @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ ) > radeonhd.man.new @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@README.new: rhd_id.c $(top_srcdir)/README -@HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ echo "Generating README.new..."; \ -@HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ ( $(SED) -n '1,/^BEGIN_DEVICE_LIST$$/p' "$(SRCREADME)"; \ +@HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ $(Q)( $(SED) -n '1,/^BEGIN_DEVICE_LIST$$/p' "$(SRCREADME)"; \ @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ $(SED) -e '1,/^[ ]*\/\* START_DEVICE_LIST marker - do not delete \*\/ *$$/d' \ @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ -e '/^[ ]*\/\* END_DEVICE_LIST marker - do not delete \*\/ *$$/,$$d' \ @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ -e '/^[ ]\{1,\}xf86Msg(X_NONE,/d' \ @@ -1093,13 +1124,13 @@ dist-hook: git_version.stamp @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@all-local: radeonhd.man.new README.new @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ @changed=""; \ @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ if diff -u "$(SRCMAN)" radeonhd.man.new; then \ -@HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ echo "radeon(4) man page is current."; \ +@HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ if test "x$(Q)" = "x@"; then :; else echo "radeon(4) man page is current."; fi \ @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ else \ @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ changed="$$changed $(SRCMAN)"; \ @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ mv -f radeonhd.man.new "$(SRCMAN)"; \ @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ fi; \ @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ if diff -u "$(SRCREADME)" README.new; then \ -@HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ echo "README file is current."; \ +@HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ if test "x$(Q)" = "x@"; then :; else echo "README file is current."; fi \ @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ else \ @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ changed="$$changed $(SRCREADME)"; \ @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@@MAINTAINER_MODE_TRUE@ mv -f README.new "$(SRCREADME)"; \ diff --git a/driver/xf86-video-radeonhd/src/atombios_rev.h b/driver/xf86-video-radeonhd/src/atombios_rev.h new file mode 100644 index 000000000..cb95ac20b --- /dev/null +++ b/driver/xf86-video-radeonhd/src/atombios_rev.h @@ -0,0 +1,199 @@ +/* + * Copyright 2007-2009 Luc Verhaegen <libv@exsuse.de> + * Copyright 2007-2009 Matthias Hopf <mhopf@novell.com> + * Copyright 2007-2009 Egbert Eich <eich@novell.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * Reverse engineered AtomBIOS entries. + * Plus addon information for dynamic data tables. + */ + +/* + * Dynamic data tables: + * Modify table sizes and offset positions by replacing access code + * (e.g. &d->asPowerUnknownInfo[i]) by custom code. + * d is the current data structure, data as a char *, + * start the main data structure as char *, i is counter. + * + * #pragma count ATOM_POWERPLAY_INFO_V4 asPowerIndexInfo (d->NumPowerIndexEntries) + * #pragma offset ATOM_POWERPLAY_INFO_V4 asPowerIndexInfo (data + d->OffsetPowerIndexEntries + i*d->SizeOfPowerIndexEntry) + * #pragma return ATOM_POWERPLAY_INFO_V4 - (d->OffsetPowerUnknownEntries + ATOM_MAX_NUMBEROF_POWERUNKNOWN_BLOCK_V4*d->SizeOfPowerUnknownEntry) + * + * Has to be issued *before* the offset is encountered. And outside structures. + */ + +typedef struct +{ + unsigned char u[2]; +} U16; +#define _U16(x) (((x).u[1]<<8)|(x).u[0]) + +typedef struct +{ + unsigned char u[3]; +} U24; +#define _U24(x) (((x).u[2]<<16)|((x).u[1]<<8)|(x).u[0]) + +#include <stddef.h> /* offsetof() */ +#define COUNT_REMAINDER(s,m,e) ((((ATOM_COMMON_TABLE_HEADER*)d)->usStructureSize-offsetof(s,m)) / sizeof(e)) +#define RETURN_REMAINDER(s,m,e) (d ? (offsetof(s,m) + COUNT_REMAINDER(s,m,e) * sizeof(e)) : 0) +#define COUNT_ALL(s,e) ((((ATOM_COMMON_TABLE_HEADER*)d)->usStructureSize-sizeof(ATOM_COMMON_TABLE_HEADER)) / sizeof(e)) +#define RETURN_ALL(s,e) (d ? (sizeof(ATOM_COMMON_TABLE_HEADER) + COUNT_ALL(s,e) * sizeof(e)) : 0) + + +/* + * Dynamic additions to generic atombios.h + */ +#pragma count ATOM_GPIO_I2C_INFO asGPIO_Info COUNT_ALL (ATOM_GPIO_I2C_INFO, ATOM_GPIO_I2C_ASSIGMENT) +#pragma return ATOM_GPIO_I2C_INFO asGPIO_Info RETURN_ALL (ATOM_GPIO_I2C_INFO, ATOM_GPIO_I2C_ASSIGMENT) + +#pragma count ATOM_GPIO_PIN_LUT asGPIO_Pin COUNT_ALL (ATOM_GPIO_PIN_LUT, ATOM_GPIO_PIN_ASSIGNMENT) +#pragma return ATOM_GPIO_PIN_LUT asGPIO_Pin RETURN_ALL (ATOM_GPIO_PIN_LUT, ATOM_GPIO_PIN_ASSIGNMENT) + +#pragma count ATOM_VESA_TO_INTENAL_MODE_LUT asVESA_ToExtendedModeInfo COUNT_ALL (ATOM_VESA_TO_INTENAL_MODE_LUT, ATOM_VESA_TO_EXTENDED_MODE) +#pragma return ATOM_VESA_TO_INTENAL_MODE_LUT asVESA_ToExtendedModeInfo RETURN_ALL (ATOM_VESA_TO_INTENAL_MODE_LUT, ATOM_VESA_TO_EXTENDED_MODE) + +#pragma count ATOM_COMPONENT_VIDEO_INFO aWbGpioStateBlock (d->ucNumOfWbGpioBlocks) +#pragma count ATOM_COMPONENT_VIDEO_INFO aModeTimings COUNT_REMAINDER (ATOM_COMPONENT_VIDEO_INFO, aModeTimings[0], ATOM_DTD_FORMAT) +#pragma return ATOM_COMPONENT_VIDEO_INFO - RETURN_REMAINDER (ATOM_COMPONENT_VIDEO_INFO, aModeTimings[0], ATOM_DTD_FORMAT) +#pragma count ATOM_COMPONENT_VIDEO_INFO_V21 aWbGpioStateBlock (d->ucNumOfWbGpioBlocks) +#pragma count ATOM_COMPONENT_VIDEO_INFO_V21 aModeTimings COUNT_REMAINDER (ATOM_COMPONENT_VIDEO_INFO_V21, aModeTimings[0], ATOM_DTD_FORMAT) +#pragma return ATOM_COMPONENT_VIDEO_INFO_V21 - RETURN_REMAINDER (ATOM_COMPONENT_VIDEO_INFO_V21, aModeTimings[0], ATOM_DTD_FORMAT) + +#pragma count INDIRECT_IO_ACCESS IOAccessSequence -1 /* No useful information */ +#pragma return INDIRECT_IO_ACCESS IOAccessSequence RETURN_ALL (ATOM_INDIRECT_IO_ACCESS, UCHAR) + +#pragma offset ATOM_VRAM_INFO_V3 aVramInfo *(offset_ATOM_VRAM_INFO_V3_aVramInfo(d,i)) +#pragma count ATOM_VRAM_INFO_V3 aVramInfo (count_ATOM_VRAM_INFO_V3_aVramInfo(d)) +#pragma offset ATOM_VRAM_INFO_V3 asMemPatch *(data + d->usMemClkPatchTblOffset) +/* Needs more love */ +#pragma return ATOM_VRAM_INFO_V3 - 0 + +/* Doesn't look completely reasonable, but seems ok... */ +#pragma count ATOM_ASIC_PROFILE_VOLTAGE asLeakVol ((d->usSize - offsetof(ATOM_ASIC_PROFILE_VOLTAGE,asLeakVol)) / sizeof(ATOM_LEAKID_VOLTAGE)) + +#pragma count ATOM_VOLTAGE_FORMULA ucVIDAdjustEntries (d->ucNumOfVoltageEntries) +#pragma offset ATOM_VOLTAGE_OBJECT_INFO asVoltageObj *(offset_ATOM_VOLTAGE_OBJECT_INFO_asVoltageObj(d,i)) +#pragma count ATOM_VOLTAGE_OBJECT_INFO asVoltageObj (count_ATOM_VOLTAGE_OBJECT_INFO_asVoltageObj(d)) +#pragma return ATOM_VOLTAGE_OBJECT_INFO - 0 + +#pragma count ATOM_POWER_SOURCE_INFO asPwrObj COUNT_REMAINDER (ATOM_POWER_SOURCE_INFO, asPwrObj[0], ATOM_POWER_SOURCE_OBJECT) +#pragma return ATOM_POWER_SOURCE_INFO - RETURN_REMAINDER (ATOM_POWER_SOURCE_INFO, asPwrObj[0], ATOM_POWER_SOURCE_OBJECT) + +/* + * Generic atombios.h + */ +#include "atombios.h" + +static inline char *offset_ATOM_VRAM_INFO_V3_aVramInfo(ATOM_VRAM_INFO_V3 *d, int i) { + char *r = (char *)&d->aVramInfo[0]; + while (i-- > 0) + r += ((ATOM_VRAM_MODULE_V3 *)r)->usSize; + return r; +} +static inline int count_ATOM_VRAM_INFO_V3_aVramInfo(ATOM_VRAM_INFO_V3 *d) { + int i=0; + char *last = 0, *next; + while ( (next = offset_ATOM_VRAM_INFO_V3_aVramInfo(d,i)) - (char*)d < d->usMemAdjustTblOffset && next != last) { + last = next; + i++; + } + return i; +} +static inline char *offset_ATOM_VOLTAGE_OBJECT_INFO_asVoltageObj(ATOM_VOLTAGE_OBJECT_INFO *d, int i) { + char *r = (char *)&d->asVoltageObj[0]; + while (i-- > 0) + r += ((ATOM_VOLTAGE_OBJECT *)r)->ucSize; + return r; +} +static inline int count_ATOM_VOLTAGE_OBJECT_INFO_asVoltageObj(ATOM_VOLTAGE_OBJECT_INFO *d) { + int i=0; + char *last=0, *next; + while ( (next = offset_ATOM_VOLTAGE_OBJECT_INFO_asVoltageObj(d,i)) - (char*)d < d->sHeader.usStructureSize && next != last) { + last = next; + i++; + } + return i; +} + + +/* + * Reverse engineered tables + */ + +/* ucTableFormatRevision=4 / ucTableContentRevision=1 */ + +#pragma count ATOM_POWERINDEX_INFO_V4 Index (((ATOM_POWERPLAY_INFO_V4*)start)->SizeOfPowerIndexEntry-1) +typedef struct _ATOM_POWERINDEX_INFO_V4 +{ + UCHAR Type; + UCHAR Index[3]; +}ATOM_POWERINDEX_INFO_V4; + +typedef struct _ATOM_POWERMODE_INFO_V4 +{ + U24 engineClock; + U24 memoryClock; + U16 voltage; + U16 unknown8; + U16 unknown10; + U16 unknown12Flags; + U16 unknown14; +}ATOM_POWERMODE_INFO_V4; + +#pragma count ATOM_POWERUNKNOWN_INFO_V4 unknown (((ATOM_POWERPLAY_INFO_V4*)start)->SizeOfPowerUnknownEntry) +typedef struct _ATOM_POWERUNKNOWN_INFO_V4 +{ + UCHAR unknown[12]; +}ATOM_POWERUNKNOWN_INFO_V4; + +#pragma count ATOM_POWERPLAY_INFO_V4 asPowerIndexInfo (d->NumPowerIndexEntries) +#pragma offset ATOM_POWERPLAY_INFO_V4 asPowerIndexInfo *(data + _U16(d->OffsetPowerIndexEntries) + i*d->SizeOfPowerIndexEntry) +#pragma count ATOM_POWERPLAY_INFO_V4 asPowerModeInfo ((_U16(d->OffsetPowerUnknownEntries) - _U16(d->OffsetPowerModeEntries)) / d->SizeOfPowerModeEntry) +#pragma offset ATOM_POWERPLAY_INFO_V4 asPowerModeInfo *(data + _U16(d->OffsetPowerModeEntries) + i*d->SizeOfPowerModeEntry) +#pragma count ATOM_POWERPLAY_INFO_V4 asPowerUnknownInfo ((d->sHeader.usStructureSize - _U16(d->OffsetPowerUnknownEntries)) / d->SizeOfPowerUnknownEntry) +#pragma offset ATOM_POWERPLAY_INFO_V4 asPowerUnknownInfo *(data + _U16(d->OffsetPowerUnknownEntries) + i*d->SizeOfPowerUnknownEntry) +#pragma return ATOM_POWERPLAY_INFO_V4 - (d ? (_U16(d->OffsetPowerUnknownEntries) + ((d->sHeader.usStructureSize - _U16(d->OffsetPowerUnknownEntries)) / d->SizeOfPowerUnknownEntry)*d->SizeOfPowerUnknownEntry) : 0) + +typedef struct _ATOM_POWERPLAY_INFO_V4 +{ + ATOM_COMMON_TABLE_HEADER sHeader; + UCHAR unknown4; + UCHAR NumPowerIndexEntries; + UCHAR SizeOfPowerIndexEntry; + UCHAR SizeOfPowerModeEntry; + UCHAR SizeOfPowerUnknownEntry; + U16 OffsetPowerIndexEntries; + U16 OffsetPowerModeEntries; + U16 OffsetPowerUnknownEntries; + U16 unknown15[3]; + U16 unknownFlags; + U16 unknown23[5]; + U16 OffsetPowerModeEntries2; + U16 OffsetPowerUnknownEntries2; + UCHAR unknown37[3]; /* Only on some BIOSes (e.g. RV770) */ + ATOM_POWERINDEX_INFO_V4 asPowerIndexInfo[4]; + ATOM_POWERMODE_INFO_V4 asPowerModeInfo[10]; + ATOM_POWERUNKNOWN_INFO_V4 asPowerUnknownInfo[4]; +}ATOM_POWERPLAY_INFO_V4; + + diff --git a/driver/xf86-video-radeonhd/src/git_version.h b/driver/xf86-video-radeonhd/src/git_version.h index a98f5f5d6..86048a2c4 100644 --- a/driver/xf86-video-radeonhd/src/git_version.h +++ b/driver/xf86-video-radeonhd/src/git_version.h @@ -20,7 +20,7 @@ #define GIT_REPO 1 /* Git SHA ID of last commit */ -#define GIT_SHAID "cb54f48b" +#define GIT_SHAID "8cbff7bf" /* Branch this tree is on */ #define GIT_BRANCH "master" diff --git a/driver/xf86-video-radeonhd/src/r5xx_accel.h b/driver/xf86-video-radeonhd/src/r5xx_accel.h index 50e44b3a9..3e642bec9 100644 --- a/driver/xf86-video-radeonhd/src/r5xx_accel.h +++ b/driver/xf86-video-radeonhd/src/r5xx_accel.h @@ -82,7 +82,7 @@ struct R5xx3D { unsigned short texH[2]; Bool is_transform[2]; - struct _PictTransform *transform[2]; + struct pixman_transform *transform[2]; Bool has_mask; /* Whether we are tiling horizontally and vertically */ Bool need_src_tile_x; diff --git a/driver/xf86-video-radeonhd/src/r600_exa.c b/driver/xf86-video-radeonhd/src/r600_exa.c index 86da7af2f..e68195b4a 100644 --- a/driver/xf86-video-radeonhd/src/r600_exa.c +++ b/driver/xf86-video-radeonhd/src/r600_exa.c @@ -316,6 +316,7 @@ R600DoneSolid(PixmapPtr pPix) (rhdPtr->ChipSet == RHD_M74) || (rhdPtr->ChipSet == RHD_M82) || (rhdPtr->ChipSet == RHD_RS780) || + (rhdPtr->ChipSet == RHD_RS880) || (rhdPtr->ChipSet == RHD_RV710)) cp_set_surface_sync(pScrn, accel_state->ib, TC_ACTION_ENA_bit, accel_state->vb_size, accel_state->vb_mc_addr); @@ -559,6 +560,7 @@ R600DoCopy(ScrnInfoPtr pScrn) (rhdPtr->ChipSet == RHD_M74) || (rhdPtr->ChipSet == RHD_M82) || (rhdPtr->ChipSet == RHD_RS780) || + (rhdPtr->ChipSet == RHD_RS880) || (rhdPtr->ChipSet == RHD_RV710)) cp_set_surface_sync(pScrn, accel_state->ib, TC_ACTION_ENA_bit, accel_state->vb_size, accel_state->vb_mc_addr); @@ -1391,6 +1393,11 @@ static Bool R600PrepareComposite(int op, PicturePtr pSrcPicture, cb_config_t cb_conf; shader_config_t vs_conf, ps_conf; + /* RV740 seems to be particularly problematic */ + /* if ((rhdPtr->ChipSet == RHD_RV740) && (w < 32 || h < 32)) */ + if (rhdPtr->ChipSet == RHD_RV740) + return FALSE; + /* return FALSE; */ if (pMask) { @@ -1723,6 +1730,7 @@ static void R600DoneComposite(PixmapPtr pDst) (rhdPtr->ChipSet == RHD_M74) || (rhdPtr->ChipSet == RHD_M82) || (rhdPtr->ChipSet == RHD_RS780) || + (rhdPtr->ChipSet == RHD_RS880) || (rhdPtr->ChipSet == RHD_RV710)) cp_set_surface_sync(pScrn, accel_state->ib, TC_ACTION_ENA_bit, accel_state->vb_size, accel_state->vb_mc_addr); @@ -1853,6 +1861,12 @@ R600DownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h, int wpass = w * (bpp/8); drmBufPtr scratch; + /* RV740 seems to be particularly problematic with small xfers */ + /* if ((rhdPtr->ChipSet == RHD_RV740) && (w < 32 || h < 32)) */ + /* Composite in software with DFS partially active breaks badly */ + if (rhdPtr->ChipSet == RHD_RV740) + return FALSE; + if (src_pitch & 7) return FALSE; diff --git a/driver/xf86-video-radeonhd/src/r600_reg.h b/driver/xf86-video-radeonhd/src/r600_reg.h index 66dba68f0..3c27c7f72 100644 --- a/driver/xf86-video-radeonhd/src/r600_reg.h +++ b/driver/xf86-video-radeonhd/src/r600_reg.h @@ -51,7 +51,7 @@ enum { SET_LOOP_CONST_offset = 0x0003e200, SET_LOOP_CONST_end = 0x0003e380, SET_BOOL_CONST_offset = 0x0003e380, - SET_BOOL_CONST_end = 0x0003e38c, + SET_BOOL_CONST_end = 0x0003e38c }; /* packet3 IT_SURFACE_BASE_UPDATE bits */ @@ -87,14 +87,6 @@ enum { WAIT_MEM = (1<<4) }; -/* CP packet types */ -enum { - RADEON_CP_PACKET0 = 0x00000000, - RADEON_CP_PACKET1 = 0x40000000, - RADEON_CP_PACKET2 = 0x80000000, - RADEON_CP_PACKET3 = 0xC0000000 -}; - /* Packet3 commands */ enum { IT_NOP = 0x10, diff --git a/driver/xf86-video-radeonhd/src/r600_reg_auto_r6xx.h b/driver/xf86-video-radeonhd/src/r600_reg_auto_r6xx.h index 9d5aa3c7e..fbbd45201 100644 --- a/driver/xf86-video-radeonhd/src/r600_reg_auto_r6xx.h +++ b/driver/xf86-video-radeonhd/src/r600_reg_auto_r6xx.h @@ -3079,7 +3079,7 @@ enum { INC_mask = 0xff << 24, INC_shift = 24, SQ_BOOL_CONST_0 = 0x0003e380, - SQ_BOOL_CONST_0_num = 3, + SQ_BOOL_CONST_0_num = 3 } ; diff --git a/driver/xf86-video-radeonhd/src/r600_reg_r6xx.h b/driver/xf86-video-radeonhd/src/r600_reg_r6xx.h index 425bee4b1..0a09074e8 100644 --- a/driver/xf86-video-radeonhd/src/r600_reg_r6xx.h +++ b/driver/xf86-video-radeonhd/src/r600_reg_r6xx.h @@ -34,7 +34,7 @@ enum { MM_INDEX = 0x0000, MM_DATA = 0x0004, - /*SRBM_STATUS = 0x0e50, */ + SRBM_STATUS = 0x0e50, RLC_RQ_PENDING_bit = 1 << 3, RCU_RQ_PENDING_bit = 1 << 4, GRBM_RQ_PENDING_bit = 1 << 5, @@ -401,19 +401,19 @@ enum { IB1_INT_STAT_bit = 1 << 30, RB_INT_STAT_bit = 1 << 31, -// SX_ALPHA_TEST_CONTROL = 0x00028410, +/* SX_ALPHA_TEST_CONTROL = 0x00028410, */ ALPHA_FUNC__REF_NEVER = 0, ALPHA_FUNC__REF_ALWAYS = 7, -// DB_SHADER_CONTROL = 0x0002880c, +/* DB_SHADER_CONTROL = 0x0002880c, */ Z_ORDER__EARLY_Z_THEN_LATE_Z = 2, -// PA_SU_SC_MODE_CNTL = 0x00028814, -// POLY_MODE_mask = 0x03 << 3, +/* PA_SU_SC_MODE_CNTL = 0x00028814, */ +/* POLY_MODE_mask = 0x03 << 3, */ POLY_MODE__TRIANGLES = 0, POLY_MODE__DUAL_MODE, -// POLYMODE_FRONT_PTYPE_mask = 0x07 << 5, +/* POLYMODE_FRONT_PTYPE_mask = 0x07 << 5, */ POLYMODE_PTYPE__POINTS = 0, POLYMODE_PTYPE__LINES, POLYMODE_PTYPE__TRIANGLES, PA_SC_AA_SAMPLE_LOCS_8S_WD1_M = 0x00028c20, DB_SRESULTS_COMPARE_STATE0 = 0x00028d28, /* See autoregs: DB_SRESULTS_COMPARE_STATE1 */ -// DB_SRESULTS_COMPARE_STATE1 = 0x00028d2c, +/* DB_SRESULTS_COMPARE_STATE1 = 0x00028d2c, */ DB_ALPHA_TO_MASK = 0x00028d44, ALPHA_TO_MASK_ENABLE = 1 << 0, ALPHA_TO_MASK_OFFSET0_mask = 0x03 << 8, @@ -425,8 +425,8 @@ enum { ALPHA_TO_MASK_OFFSET3_mask = 0x03 << 8, ALPHA_TO_MASK_OFFSET3_shift = 14, -// SQ_VTX_CONSTANT_WORD2_0 = 0x00038008, -// SQ_VTX_CONSTANT_WORD2_0__DATA_FORMAT_mask = 0x3f << 20, +/* SQ_VTX_CONSTANT_WORD2_0 = 0x00038008, */ +/* SQ_VTX_CONSTANT_WORD2_0__DATA_FORMAT_mask = 0x3f << 20, */ FMT_INVALID=0, FMT_8, FMT_4_4, FMT_3_3_2, FMT_16=5, FMT_16_FLOAT, FMT_8_8, FMT_5_6_5, FMT_6_5_5, FMT_1_5_5_5, FMT_4_4_4_4, @@ -441,7 +441,7 @@ enum { FMT_8_8_8, FMT_16_16_16, FMT_16_16_16_FLOAT, FMT_32_32_32, FMT_32_32_32_FLOAT=48, -// High level register file lengths +/* High level register file lengths */ SQ_ALU_CONSTANT = SQ_ALU_CONSTANT0_0, /* 256 PS, 256 VS */ SQ_ALU_CONSTANT_ps_num = 256, SQ_ALU_CONSTANT_vs_num = 256, @@ -497,7 +497,7 @@ enum { SQ_BOOL_CONST_offset = 4, SQ_BOOL_CONST_ps = 0, SQ_BOOL_CONST_vs = SQ_BOOL_CONST_ps + SQ_BOOL_CONST_ps_num, - SQ_BOOL_CONST_gs = SQ_BOOL_CONST_vs + SQ_BOOL_CONST_vs_num, + SQ_BOOL_CONST_gs = SQ_BOOL_CONST_vs + SQ_BOOL_CONST_vs_num }; diff --git a/driver/xf86-video-radeonhd/src/r600_reg_r7xx.h b/driver/xf86-video-radeonhd/src/r600_reg_r7xx.h index f3e796281..f9c2b661f 100644 --- a/driver/xf86-video-radeonhd/src/r600_reg_r7xx.h +++ b/driver/xf86-video-radeonhd/src/r600_reg_r7xx.h @@ -33,7 +33,7 @@ enum { /* R7XX_MC_VM_FB_LOCATION = 0x00002024, */ -// GRBM_STATUS = 0x00008010, +/* GRBM_STATUS = 0x00008010, */ R7XX_TA_BUSY_bit = 1 << 14, R7xx_SQ_DYN_GPR_CNTL_PS_FLUSH_REQ = 0x00008d8c, @@ -43,14 +43,14 @@ enum { ISOLATE_GS_ENABLE_bit = 1 << 13, VS_PC_LIMIT_ENABLE_bit = 1 << 14, -// SQ_ALU_WORD0 = 0x00008dfc, -// SRC0_SEL_mask = 0x1ff << 0, -// SRC1_SEL_mask = 0x1ff << 13, +/* SQ_ALU_WORD0 = 0x00008dfc, */ +/* SRC0_SEL_mask = 0x1ff << 0, */ +/* SRC1_SEL_mask = 0x1ff << 13, */ R7xx_SQ_ALU_SRC_1_DBL_L = 0xf4, R7xx_SQ_ALU_SRC_1_DBL_M = 0xf5, R7xx_SQ_ALU_SRC_0_5_DBL_L = 0xf6, R7xx_SQ_ALU_SRC_0_5_DBL_M = 0xf7, -// INDEX_MODE_mask = 0x07 << 26, +/* INDEX_MODE_mask = 0x07 << 26, */ R7xx_SQ_INDEX_GLOBAL = 0x05, R7xx_SQ_INDEX_GLOBAL_AR_X = 0x06, R6xx_SQ_ALU_WORD1_OP2 = 0x00008dfc, @@ -74,46 +74,46 @@ enum { R7xx_SQ_OP2_INST_PRED_SETGT_64 = 0x7c, R7xx_SQ_OP2_INST_PRED_SETE_64 = 0x7d, R7xx_SQ_OP2_INST_PRED_SETGE_64 = 0x7e, -// SQ_ALU_WORD1_OP3 = 0x00008dfc, -// SRC2_SEL_mask = 0x1ff << 0, -// R7xx_SQ_ALU_SRC_1_DBL_L = 0xf4, -// R7xx_SQ_ALU_SRC_1_DBL_M = 0xf5, -// R7xx_SQ_ALU_SRC_0_5_DBL_L = 0xf6, -// R7xx_SQ_ALU_SRC_0_5_DBL_M = 0xf7, -// SQ_ALU_WORD1_OP3__ALU_INST_mask = 0x1f << 13, +/* SQ_ALU_WORD1_OP3 = 0x00008dfc, */ +/* SRC2_SEL_mask = 0x1ff << 0, */ +/* R7xx_SQ_ALU_SRC_1_DBL_L = 0xf4, */ +/* R7xx_SQ_ALU_SRC_1_DBL_M = 0xf5, */ +/* R7xx_SQ_ALU_SRC_0_5_DBL_L = 0xf6, */ +/* R7xx_SQ_ALU_SRC_0_5_DBL_M = 0xf7, */ +/* SQ_ALU_WORD1_OP3__ALU_INST_mask = 0x1f << 13, */ R7xx_SQ_OP3_INST_MULADD_64 = 0x08, R7xx_SQ_OP3_INST_MULADD_64_M2 = 0x09, R7xx_SQ_OP3_INST_MULADD_64_M4 = 0x0a, R7xx_SQ_OP3_INST_MULADD_64_D2 = 0x0b, -// SQ_CF_ALU_WORD1 = 0x00008dfc, +/* SQ_CF_ALU_WORD1 = 0x00008dfc, */ R6xx_USES_WATERFALL_bit = 1 << 25, R7xx_SQ_CF_ALU_WORD1__ALT_CONST_bit = 1 << 25, -// SQ_CF_ALLOC_EXPORT_WORD0 = 0x00008dfc, -// ARRAY_BASE_mask = 0x1fff << 0, -// TYPE_mask = 0x03 << 13, -// SQ_EXPORT_PARAM = 0x02, -// X_UNUSED_FOR_SX_EXPORTS = 0x03, -// ELEM_SIZE_mask = 0x03 << 30, -// SQ_CF_ALLOC_EXPORT_WORD1 = 0x00008dfc, -// SQ_CF_ALLOC_EXPORT_WORD1__CF_INST_mask = 0x7f << 23, +/* SQ_CF_ALLOC_EXPORT_WORD0 = 0x00008dfc, */ +/* ARRAY_BASE_mask = 0x1fff << 0, */ +/* TYPE_mask = 0x03 << 13, */ +/* SQ_EXPORT_PARAM = 0x02, */ +/* X_UNUSED_FOR_SX_EXPORTS = 0x03, */ +/* ELEM_SIZE_mask = 0x03 << 30, */ +/* SQ_CF_ALLOC_EXPORT_WORD1 = 0x00008dfc, */ +/* SQ_CF_ALLOC_EXPORT_WORD1__CF_INST_mask = 0x7f << 23, */ R7xx_SQ_CF_INST_MEM_EXPORT = 0x3a, -// SQ_CF_WORD1 = 0x00008dfc, -// SQ_CF_WORD1__COUNT_mask = 0x07 << 10, +/* SQ_CF_WORD1 = 0x00008dfc, */ +/* SQ_CF_WORD1__COUNT_mask = 0x07 << 10, */ R7xx_COUNT_3_bit = 1 << 19, -// SQ_CF_WORD1__CF_INST_mask = 0x7f << 23, +/* SQ_CF_WORD1__CF_INST_mask = 0x7f << 23, */ R7xx_SQ_CF_INST_END_PROGRAM = 0x19, R7xx_SQ_CF_INST_WAIT_ACK = 0x1a, R7xx_SQ_CF_INST_TEX_ACK = 0x1b, R7xx_SQ_CF_INST_VTX_ACK = 0x1c, R7xx_SQ_CF_INST_VTX_TC_ACK = 0x1d, -// SQ_VTX_WORD0 = 0x00008dfc, -// VTX_INST_mask = 0x1f << 0, +/* SQ_VTX_WORD0 = 0x00008dfc, */ +/* VTX_INST_mask = 0x1f << 0, */ R7xx_SQ_VTX_INST_MEM = 0x02, -// SQ_VTX_WORD2 = 0x00008dfc, +/* SQ_VTX_WORD2 = 0x00008dfc, */ R7xx_SQ_VTX_WORD2__ALT_CONST_bit = 1 << 20, -// SQ_TEX_WORD0 = 0x00008dfc, -// TEX_INST_mask = 0x1f << 0, +/* SQ_TEX_WORD0 = 0x00008dfc, */ +/* TEX_INST_mask = 0x1f << 0, */ R7xx_X_MEMORY_READ = 0x02, R7xx_SQ_TEX_INST_KEEP_GRADIENTS = 0x0a, R7xx_X_FETCH4_LOAD4_INSTRUCTION_FOR_DX10_1 = 0x0f, @@ -138,11 +138,11 @@ enum { RT5_ENABLE_bit = 1 << 5, RT6_ENABLE_bit = 1 << 6, RT7_ENABLE_bit = 1 << 7, -// DB_ALPHA_TO_MASK = 0x00028d44, +/* DB_ALPHA_TO_MASK = 0x00028d44, */ R7xx_OFFSET_ROUND_bit = 1 << 16, -// SQ_TEX_SAMPLER_MISC_0 = 0x0003d03c, +/* SQ_TEX_SAMPLER_MISC_0 = 0x0003d03c, */ R7xx_TRUNCATE_COORD_bit = 1 << 9, - R7xx_DISABLE_CUBE_WRAP_bit = 1 << 10, + R7xx_DISABLE_CUBE_WRAP_bit = 1 << 10 } ; diff --git a/driver/xf86-video-radeonhd/src/r600_shader.h b/driver/xf86-video-radeonhd/src/r600_shader.h index 0ff8671f5..01ec1223e 100644 --- a/driver/xf86-video-radeonhd/src/r600_shader.h +++ b/driver/xf86-video-radeonhd/src/r600_shader.h @@ -60,47 +60,47 @@ /* Oder of instructions: All CF, All ALU, All Tex/Vtx fetches */ -// CF insts -// addr +/* CF insts */ +/* addr */ #define ADDR(x) (x) -// pc +/* pc */ #define POP_COUNT(x) (x) -// const +/* const */ #define CF_CONST(x) (x) -// cond -#define COND(x) (x) // SQ_COND_* -// count +/* cond */ +#define COND(x) (x) /* SQ_COND_* */ +/* count */ #define I_COUNT(x) ((x) ? ((x) - 1) : 0) -//r7xx +/*r7xx */ #define COUNT_3(x) (x) -// call count +/* call count */ #define CALL_COUNT(x) (x) -// eop +/* eop */ #define END_OF_PROGRAM(x) (x) -// vpm +/* vpm */ #define VALID_PIXEL_MODE(x) (x) -// cf inst -#define CF_INST(x) (x) // SQ_CF_INST_* +/* cf inst */ +#define CF_INST(x) (x) /* SQ_CF_INST_* */ -// wqm +/* wqm */ #define WHOLE_QUAD_MODE(x) (x) -// barrier +/* barrier */ #define BARRIER(x) (x) -//kb0 +/*kb0 */ #define KCACHE_BANK0(x) (x) -//kb1 +/*kb1 */ #define KCACHE_BANK1(x) (x) -// km0/1 +/* km0/1 */ #define KCACHE_MODE0(x) (x) -#define KCACHE_MODE1(x) (x) // SQ_CF_KCACHE_* -// +#define KCACHE_MODE1(x) (x) /* SQ_CF_KCACHE_* */ +/* */ #define KCACHE_ADDR0(x) (x) #define KCACHE_ADDR1(x) (x) -// uw +/* uw */ #define USES_WATERFALL(x) (x) #define ARRAY_BASE(x) (x) -// export pixel +/* export pixel */ #define CF_PIXEL_MRT0 0 #define CF_PIXEL_MRT1 1 #define CF_PIXEL_MRT2 2 @@ -109,7 +109,7 @@ #define CF_PIXEL_MRT5 5 #define CF_PIXEL_MRT6 6 #define CF_PIXEL_MRT7 7 -// *_FOG: r6xx only +/* *_FOG: r6xx only */ #define CF_PIXEL_MRT0_FOG 16 #define CF_PIXEL_MRT1_FOG 17 #define CF_PIXEL_MRT2_FOG 18 @@ -119,21 +119,21 @@ #define CF_PIXEL_MRT6_FOG 22 #define CF_PIXEL_MRT7_FOG 23 #define CF_PIXEL_Z 61 -// export pos +/* export pos */ #define CF_POS0 60 #define CF_POS1 61 #define CF_POS2 62 #define CF_POS3 63 -// export param -// 0...31 -#define TYPE(x) (x) // SQ_EXPORT_* +/* export param */ +/* 0...31 */ +#define TYPE(x) (x) /* SQ_EXPORT_* */ #if 0 -// type export +/* type export */ #define SQ_EXPORT_PIXEL 0 #define SQ_EXPORT_POS 1 #define SQ_EXPORT_PARAM 2 -// reserved 3 -// type mem +/* reserved 3 */ +/* type mem */ #define SQ_EXPORT_WRITE 0 #define SQ_EXPORT_WRITE_IND 1 #define SQ_EXPORT_WRITE_ACK 2 @@ -150,16 +150,16 @@ #define R6xx_ELEM_LOOP(x) (x) #define BURST_COUNT(x) (x ? (x - 1) : 0) -// swiz -#define SRC_SEL_X(x) (x) // SQ_SEL_* each +/* swiz */ +#define SRC_SEL_X(x) (x) /* SQ_SEL_* each */ #define SRC_SEL_Y(x) (x) #define SRC_SEL_Z(x) (x) #define SRC_SEL_W(x) (x) #define CF_DWORD0(addr) (addr) -// R7xx has another entry (COUNT3), but that is only used for adding a bit to count. -// We allow one more bit for count in the argument of the macro on R7xx instead. -// R6xx: [0,7] R7xx: [1,16] +/* R7xx has another entry (COUNT3), but that is only used for adding a bit to count. */ +/* We allow one more bit for count in the argument of the macro on R7xx instead. */ +/* R6xx: [0,7] R7xx: [1,16] */ #define CF_DWORD1(pc, cf_const, cond, count, call_count, eop, vpm, cf_inst, wqm, b) \ (((pc) << 0) | ((cf_const) << 3) | ((cond) << 8) | (((count) & 7) << 10) | (((count) >> 3) << 19) | \ ((call_count) << 13) | ((eop) << 21) | ((vpm) << 22) | ((cf_inst) << 23) | ((wqm) << 30) | ((b) << 31)) @@ -172,9 +172,9 @@ #define CF_ALLOC_IMP_EXP_DWORD0(array_base, type, rw_gpr, rr, index_gpr, es) \ (((array_base) << 0) | ((type) << 13) | ((rw_gpr) << 15) | ((rr) << 22) | ((index_gpr) << 23) | \ ((es) << 30)) -// R7xx apparently doesn't have the ELEM_LOOP entry any more -// We still expose it, but ELEM_LOOP is explicitely R6xx now. -// TODO: is this just forgotten in the docs, or really not available any more? +/* R7xx apparently doesn't have the ELEM_LOOP entry any more */ +/* We still expose it, but ELEM_LOOP is explicitely R6xx now. */ +/* TODO: is this just forgotten in the docs, or really not available any more? */ #define CF_ALLOC_IMP_EXP_DWORD1_BUF(array_size, comp_mask, el, bc, eop, vpm, cf_inst, wqm, b) \ (((array_size) << 0) | ((comp_mask) << 12) | ((el) << 16) | ((bc) << 17) | \ ((eop) << 21) | ((vpm) << 22) | ((cf_inst) << 23) | ((wqm) << 30) | ((b) << 31)) @@ -183,20 +183,20 @@ ((bc) << 17) | ((eop) << 21) | ((vpm) << 22) | ((cf_inst) << 23) | \ ((wqm) << 30) | ((b) << 31)) -// ALU clause insts +/* ALU clause insts */ #define SRC0_SEL(x) (x) #define SRC1_SEL(x) (x) #define SRC2_SEL(x) (x) -// src[0-2]_sel -// 0-127 GPR -// 128-159 kcache constants bank 0 -// 160-191 kcache constants bank 1 -// 248-255 special SQ_ALU_SRC_* (0, 1, etc.) +/* src[0-2]_sel */ +/* 0-127 GPR */ +/* 128-159 kcache constants bank 0 */ +/* 160-191 kcache constants bank 1 */ +/* 248-255 special SQ_ALU_SRC_* (0, 1, etc.) */ #define SRC0_REL(x) (x) #define SRC1_REL(x) (x) #define SRC2_REL(x) (x) -// elem +/* elem */ #define SRC0_ELEM(x) (x) #define SRC1_ELEM(x) (x) #define SRC2_ELEM(x) (x) @@ -204,33 +204,33 @@ #define ELEM_Y 1 #define ELEM_Z 2 #define ELEM_W 3 -// neg +/* neg */ #define SRC0_NEG(x) (x) #define SRC1_NEG(x) (x) #define SRC2_NEG(x) (x) -// im -#define INDEX_MODE(x) (x) // SQ_INDEX_* -// ps -#define PRED_SEL(x) (x) // SQ_PRED_SEL_* -// last +/* im */ +#define INDEX_MODE(x) (x) /* SQ_INDEX_* */ +/* ps */ +#define PRED_SEL(x) (x) /* SQ_PRED_SEL_* */ +/* last */ #define LAST(x) (x) -// abs +/* abs */ #define SRC0_ABS(x) (x) #define SRC1_ABS(x) (x) -// uem +/* uem */ #define UPDATE_EXECUTE_MASK(x) (x) -// up +/* up */ #define UPDATE_PRED(x) (x) -// wm +/* wm */ #define WRITE_MASK(x) (x) -// fm +/* fm */ #define FOG_MERGE(x) (x) -// omod -#define OMOD(x) (x) // SQ_ALU_OMOD_* -// alu inst -#define ALU_INST(x) (x) // SQ_ALU_INST_* -//bs -#define BANK_SWIZZLE(x) (x) // SQ_ALU_VEC_* +/* omod */ +#define OMOD(x) (x) /* SQ_ALU_OMOD_* */ +/* alu inst */ +#define ALU_INST(x) (x) /* SQ_ALU_INST_* */ +/*bs */ +#define BANK_SWIZZLE(x) (x) /* SQ_ALU_VEC_* */ #define DST_GPR(x) (x) #define DST_REL(x) (x) #define DST_ELEM(x) (x) @@ -240,7 +240,7 @@ (((src0_sel) << 0) | ((s0r) << 9) | ((s0e) << 10) | ((s0n) << 12) | \ ((src1_sel) << 13) | ((s1r) << 22) | ((s1e) << 23) | ((s1n) << 25) | \ ((im) << 26) | ((ps) << 29) | ((last) << 31)) -// R7xx has alu_inst at a different slot, and no fog merge any more (no fix function fog any more) +/* R7xx has alu_inst at a different slot, and no fog merge any more (no fix function fog any more) */ #define R6xx_ALU_DWORD1_OP2(s0a, s1a, uem, up, wm, fm, omod, alu_inst, bs, dst_gpr, dr, de, clamp) \ (((s0a) << 0) | ((s1a) << 1) | ((uem) << 2) | ((up) << 3) | ((wm) << 4) | \ ((fm) << 5) | ((omod) << 6) | ((alu_inst) << 8) | ((bs) << 18) | ((dst_gpr) << 21) | \ @@ -249,8 +249,8 @@ (((s0a) << 0) | ((s1a) << 1) | ((uem) << 2) | ((up) << 3) | ((wm) << 4) | \ ((omod) << 5) | ((alu_inst) << 7) | ((bs) << 18) | ((dst_gpr) << 21) | \ ((dr) << 28) | ((de) << 29) | ((clamp) << 31)) -// This is a general chipset macro, but due to selection by chipid typically not usable in static arrays -// Fog is NOT USED on R7xx, even if specified. +/* This is a general chipset macro, but due to selection by chipid typically not usable in static arrays */ +/* Fog is NOT USED on R7xx, even if specified. */ #define ALU_DWORD1_OP2(chipid, s0a, s1a, uem, up, wm, fm, omod, alu_inst, bs, dst_gpr, dr, de, clamp) \ ((chipid) < RHD_RV770 ? \ R6xx_ALU_DWORD1_OP2(s0a, s1a, uem, up, wm, fm, omod, alu_inst, bs, dst_gpr, dr, de, clamp) : \ @@ -260,12 +260,12 @@ ((alu_inst) << 13) | ((bs) << 18) | ((dst_gpr) << 21) | ((dr) << 28) | \ ((de) << 29) | ((clamp) << 31)) -// VTX clause insts -// vxt insts -#define VTX_INST(x) (x) // SQ_VTX_INST_* +/* VTX clause insts */ +/* vxt insts */ +#define VTX_INST(x) (x) /* SQ_VTX_INST_* */ -// fetch type -#define FETCH_TYPE(x) (x) // SQ_VTX_FETCH_* +/* fetch type */ +#define FETCH_TYPE(x) (x) /* SQ_VTX_FETCH_* */ #define FETCH_WHOLE_QUAD(x) (x) #define BUFFER_ID(x) (x) @@ -280,19 +280,19 @@ #define DST_SEL_W(x) (x) #define USE_CONST_FIELDS(x) (x) #define DATA_FORMAT(x) (x) -// num format -#define NUM_FORMAT_ALL(x) (x) // SQ_NUM_FORMAT_* -// format comp -#define FORMAT_COMP_ALL(x) (x) // SQ_FORMAT_COMP_* -// sma +/* num format */ +#define NUM_FORMAT_ALL(x) (x) /* SQ_NUM_FORMAT_* */ +/* format comp */ +#define FORMAT_COMP_ALL(x) (x) /* SQ_FORMAT_COMP_* */ +/* sma */ #define SRF_MODE_ALL(x) (x) #define SRF_MODE_ZERO_CLAMP_MINUS_ONE 0 #define SRF_MODE_NO_ZERO 1 #define OFFSET(x) (x) -// endian swap -#define ENDIAN_SWAP(x) (x) // SQ_ENDIAN_* +/* endian swap */ +#define ENDIAN_SWAP(x) (x) /* SQ_ENDIAN_* */ #define CONST_BUF_NO_STRIDE(x) (x) -// mf +/* mf */ #define MEGA_FETCH(x) (x) #define VTX_DWORD0(vtx_inst, ft, fwq, buffer_id, src_gpr, sr, ssx, mfc) \ @@ -308,9 +308,9 @@ (((offset) << 0) | ((es) << 16) | ((cbns) << 18) | ((mf) << 19)) #define VTX_DWORD_PAD 0x00000000 -// TEX clause insts -// tex insts -#define TEX_INST(x) (x) // SQ_TEX_INST_* +/* TEX clause insts */ +/* tex insts */ +#define TEX_INST(x) (x) /* SQ_TEX_INST_* */ #define BC_FRAC_MODE(x) (x) #define FETCH_WHOLE_QUAD(x) (x) @@ -318,7 +318,7 @@ #define R7xx_ALT_CONST(x) (x) #define LOD_BIAS(x) (x) -//ct +/*ct */ #define COORD_TYPE_X(x) (x) #define COORD_TYPE_Y(x) (x) #define COORD_TYPE_Z(x) (x) @@ -330,7 +330,7 @@ #define OFFSET_Z(x) (((int)(x) * 2) & 0x1f) #define SAMPLER_ID(x) (x) -// R7xx has an additional parameter ALT_CONST. We always expose it, but ALT_CONST is R7xx only +/* R7xx has an additional parameter ALT_CONST. We always expose it, but ALT_CONST is R7xx only */ #define TEX_DWORD0(tex_inst, bfm, fwq, resource_id, src_gpr, sr, ac) \ (((tex_inst) << 0) | ((bfm) << 5) | ((fwq) << 7) | ((resource_id) << 8) | \ ((src_gpr) << 16) | ((sr) << 23) | ((ac) << 24)) diff --git a/driver/xf86-video-radeonhd/src/r600_state.h b/driver/xf86-video-radeonhd/src/r600_state.h index 77b852f31..4339665fa 100644 --- a/driver/xf86-video-radeonhd/src/r600_state.h +++ b/driver/xf86-video-radeonhd/src/r600_state.h @@ -40,7 +40,7 @@ typedef struct { uint64_t base; int format; int endian; - int array_mode; // tiling + int array_mode; /* tiling */ int number_type; int read_size; int comp_swap; @@ -62,7 +62,7 @@ typedef struct { uint64_t base; int format; int read_size; - int array_mode; // tiling + int array_mode; /* tiling */ int tile_surface_en; int tile_compact; int zrange_precision; diff --git a/driver/xf86-video-radeonhd/src/r600_textured_videofuncs.c b/driver/xf86-video-radeonhd/src/r600_textured_videofuncs.c index 96f5885f5..44d2d775c 100644 --- a/driver/xf86-video-radeonhd/src/r600_textured_videofuncs.c +++ b/driver/xf86-video-radeonhd/src/r600_textured_videofuncs.c @@ -79,6 +79,7 @@ R600DoneTexturedVideo(ScrnInfoPtr pScrn) (rhdPtr->ChipSet == RHD_M74) || (rhdPtr->ChipSet == RHD_M82) || (rhdPtr->ChipSet == RHD_RS780) || + (rhdPtr->ChipSet == RHD_RS880) || (rhdPtr->ChipSet == RHD_RV710)) cp_set_surface_sync(pScrn, accel_state->ib, TC_ACTION_ENA_bit, accel_state->vb_size, accel_state->vb_mc_addr); @@ -126,19 +127,45 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv) shader_config_t vs_conf, ps_conf; int uv_offset; - static float ps_alu_consts[] = { - 1.0, 0.0, 1.4020, 0, // r - c[0] - 1.0, -0.34414, -0.71414, 0, // g - c[1] - 1.0, 1.7720, 0.0, 0, // b - c[2] + /* Constants for Rec.709 */ + static float ps_alu_consts_rec709[] = { + 1.0, 0.0, 1.5748, 0, /* r - c[0] */ + 1.0, -0.18732, -0.46812, 0, /* g - c[1] */ + 1.0, 1.8556, 0.0, 0, /* b - c[2] */ /* Constants for undoing Y'CbCr scaling * - Y' is scaled from 16:235 * - Cb/Cr are scaled from 16:240 * Unscaled value N' = N * N_mul + N_shift (N' in range [-0.5, 0.5]) * Vector is [Y_mul, Y_shfit, C_mul, C_shift] */ - 256.0/219.0, -16.0/219.0, 256.0/224.0, -128.0/224.0, + 255.0/219.0, -16.0/219.0, 255.0/224.0, -128.0/224.0, }; + /* Constants for Rec.601 + * Same structure as above */ + static float ps_alu_consts_rec601[] = { + 1.0, 0.0, 1.4020, 0, /* r - c[0] */ + 1.0, -0.34414, -0.71414, 0, /* g - c[1] */ + 1.0, 1.7720, 0.0, 0, /* b - c[2] */ + 255.0/219.0, -16.0/219.0, 255.0/224.0, -128.0/224.0, + }; + + float *ps_alu_consts; + + /* Pick Y'CbCr color space to use + * For video with _encoded_ width of 928 or above, choose Rec. 709. This should cover + * 720p and 1080i/p, as well as most videos with non-standard resolutions that most likely + * came from such a source. + * The exact value of the cutoff is aribrary as there is no standarization of resolution + * between "EDTV" and 720p HD content. + * */ + if ((pPriv->color_space == RHD_XV_COLOR_SPACE_REC709) || + (pPriv->color_space == RHD_XV_COLOR_SPACE_AUTODETECT && pPriv->src_w >= 928)) { + ps_alu_consts = ps_alu_consts_rec709; + } else { + ps_alu_consts = ps_alu_consts_rec601; + } + CLEAR (cb_conf); CLEAR (tex_res); CLEAR (tex_samp); @@ -148,7 +175,7 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv) accel_state->dst_pitch = exaGetPixmapPitch(pPixmap) / (pPixmap->drawable.bitsPerPixel / 8); accel_state->src_pitch[0] = pPriv->BufferPitch; - // bad pitch + /* bad pitch */ if (accel_state->src_pitch[0] & 7) return; if (accel_state->dst_pitch & 7) @@ -167,7 +194,7 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv) /* Init */ start_3d(pScrn, accel_state->ib); - //cp_set_surface_sync(pScrn, accel_state->ib); + /* cp_set_surface_sync(pScrn, accel_state->ib); */ set_default_state(pScrn, accel_state->ib); @@ -219,8 +246,8 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv) ps_conf.export_mode = 2; ps_setup (pScrn, accel_state->ib, &ps_conf); - // PS alu constants - set_alu_consts(pScrn, accel_state->ib, 0, sizeof(ps_alu_consts) / SQ_ALU_CONSTANT_offset, ps_alu_consts); + /* PS alu constants */ + set_alu_consts(pScrn, accel_state->ib, 0, sizeof(ps_alu_consts_rec709) / SQ_ALU_CONSTANT_offset, ps_alu_consts); /* Texture */ switch(pPriv->id) { @@ -233,7 +260,7 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv) cp_set_surface_sync(pScrn, accel_state->ib, TC_ACTION_ENA_bit, accel_state->src_size[0], accel_state->src_mc_addr[0]); - // Y texture + /* Y texture */ tex_res.id = 0; tex_res.w = pPriv->w; tex_res.h = pPriv->h; @@ -244,7 +271,7 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv) tex_res.mip_base = accel_state->src_mc_addr[0]; tex_res.format = FMT_8; - tex_res.dst_sel_x = SQ_SEL_X; //Y + tex_res.dst_sel_x = SQ_SEL_X; /* Y */ tex_res.dst_sel_y = SQ_SEL_1; tex_res.dst_sel_z = SQ_SEL_1; tex_res.dst_sel_w = SQ_SEL_1; @@ -256,14 +283,14 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv) tex_res.interlaced = 0; set_tex_resource (pScrn, accel_state->ib, &tex_res); - // Y sampler + /* Y sampler */ tex_samp.id = 0; tex_samp.clamp_x = SQ_TEX_CLAMP_LAST_TEXEL; tex_samp.clamp_y = SQ_TEX_CLAMP_LAST_TEXEL; tex_samp.clamp_z = SQ_TEX_WRAP; - // UV texture + /* UV texture */ uv_offset = accel_state->src_pitch[0] * pPriv->h; uv_offset = (uv_offset + 255) & ~255; @@ -276,17 +303,17 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv) tex_res.w = pPriv->w >> 1; tex_res.h = pPriv->h >> 1; tex_res.pitch = accel_state->src_pitch[0] >> 1; - tex_res.dst_sel_x = SQ_SEL_X; //V or U + tex_res.dst_sel_x = SQ_SEL_X; /* V or U */ tex_res.dst_sel_y = SQ_SEL_1; tex_res.dst_sel_z = SQ_SEL_1; tex_res.dst_sel_w = SQ_SEL_1; tex_res.interlaced = 0; - // XXX tex bases need to be 256B aligned + /* XXX tex bases need to be 256B aligned */ tex_res.base = accel_state->src_mc_addr[0] + uv_offset; tex_res.mip_base = accel_state->src_mc_addr[0] + uv_offset; set_tex_resource (pScrn, accel_state->ib, &tex_res); - // xxx: switch to bicubic + /* xxx: switch to bicubic */ tex_samp.xy_mag_filter = SQ_TEX_XY_FILTER_BILINEAR; tex_samp.xy_min_filter = SQ_TEX_XY_FILTER_BILINEAR; @@ -294,11 +321,11 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv) tex_samp.mip_filter = 0; /* no mipmap */ set_tex_sampler (pScrn, accel_state->ib, &tex_samp); - // UV sampler + /* UV sampler */ tex_samp.id = 1; set_tex_sampler (pScrn, accel_state->ib, &tex_samp); - // UV texture + /* UV texture */ uv_offset += ((accel_state->src_pitch[0] >> 1) * (pPriv->h >> 1)); uv_offset = (uv_offset + 255) & ~255; @@ -311,17 +338,17 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv) tex_res.w = pPriv->w >> 1; tex_res.h = pPriv->h >> 1; tex_res.pitch = accel_state->src_pitch[0] >> 1; - tex_res.dst_sel_x = SQ_SEL_X; //V or U + tex_res.dst_sel_x = SQ_SEL_X; /* V or U */ tex_res.dst_sel_y = SQ_SEL_1; tex_res.dst_sel_z = SQ_SEL_1; tex_res.dst_sel_w = SQ_SEL_1; tex_res.interlaced = 0; - // XXX tex bases need to be 256B aligned + /* XXX tex bases need to be 256B aligned */ tex_res.base = accel_state->src_mc_addr[0] + uv_offset; tex_res.mip_base = accel_state->src_mc_addr[0] + uv_offset; set_tex_resource (pScrn, accel_state->ib, &tex_res); - // xxx: switch to bicubic + /* xxx: switch to bicubic */ tex_samp.xy_mag_filter = SQ_TEX_XY_FILTER_BILINEAR; tex_samp.xy_min_filter = SQ_TEX_XY_FILTER_BILINEAR; @@ -329,7 +356,7 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv) tex_samp.mip_filter = 0; /* no mipmap */ set_tex_sampler (pScrn, accel_state->ib, &tex_samp); - // UV sampler + /* UV sampler */ tex_samp.id = 2; set_tex_sampler (pScrn, accel_state->ib, &tex_samp); break; @@ -343,7 +370,7 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv) cp_set_surface_sync(pScrn, accel_state->ib, TC_ACTION_ENA_bit, accel_state->src_size[0], accel_state->src_mc_addr[0]); - // Y texture + /* Y texture */ tex_res.id = 0; tex_res.w = pPriv->w; tex_res.h = pPriv->h; @@ -355,9 +382,9 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv) tex_res.format = FMT_8_8; if (pPriv->id == FOURCC_UYVY) - tex_res.dst_sel_x = SQ_SEL_Y; //Y + tex_res.dst_sel_x = SQ_SEL_Y; /* Y */ else - tex_res.dst_sel_x = SQ_SEL_X; //Y + tex_res.dst_sel_x = SQ_SEL_X; /* Y */ tex_res.dst_sel_y = SQ_SEL_1; tex_res.dst_sel_z = SQ_SEL_1; tex_res.dst_sel_w = SQ_SEL_1; @@ -369,35 +396,35 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv) tex_res.interlaced = 0; set_tex_resource (pScrn, accel_state->ib, &tex_res); - // Y sampler + /* Y sampler */ tex_samp.id = 0; tex_samp.clamp_x = SQ_TEX_CLAMP_LAST_TEXEL; tex_samp.clamp_y = SQ_TEX_CLAMP_LAST_TEXEL; tex_samp.clamp_z = SQ_TEX_WRAP; - // UV texture + /* UV texture */ tex_res.id = 1; tex_res.format = FMT_8_8_8_8; tex_res.w = pPriv->w >> 1; tex_res.h = pPriv->h; tex_res.pitch = accel_state->src_pitch[0] >> 2; if (pPriv->id == FOURCC_UYVY) { - tex_res.dst_sel_x = SQ_SEL_X; //V - tex_res.dst_sel_y = SQ_SEL_Z; //U + tex_res.dst_sel_x = SQ_SEL_X; /* V */ + tex_res.dst_sel_y = SQ_SEL_Z; /* U */ } else { - tex_res.dst_sel_x = SQ_SEL_Y; //V - tex_res.dst_sel_y = SQ_SEL_W; //U + tex_res.dst_sel_x = SQ_SEL_Y; /* V */ + tex_res.dst_sel_y = SQ_SEL_W; /* U */ } tex_res.dst_sel_z = SQ_SEL_1; tex_res.dst_sel_w = SQ_SEL_1; tex_res.interlaced = 0; - // XXX tex bases need to be 256B aligned + /* XXX tex bases need to be 256B aligned */ tex_res.base = accel_state->src_mc_addr[0]; tex_res.mip_base = accel_state->src_mc_addr[0]; set_tex_resource (pScrn, accel_state->ib, &tex_res); - // xxx: switch to bicubic + /* xxx: switch to bicubic */ tex_samp.xy_mag_filter = SQ_TEX_XY_FILTER_BILINEAR; tex_samp.xy_min_filter = SQ_TEX_XY_FILTER_BILINEAR; @@ -405,7 +432,7 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv) tex_samp.mip_filter = 0; /* no mipmap */ set_tex_sampler (pScrn, accel_state->ib, &tex_samp); - // UV sampler + /* UV sampler */ tex_samp.id = 1; set_tex_sampler (pScrn, accel_state->ib, &tex_samp); break; @@ -428,15 +455,15 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv) case 16: if (pPixmap->drawable.depth == 15) { cb_conf.format = COLOR_1_5_5_5; - cb_conf.comp_swap = 1; //ARGB + cb_conf.comp_swap = 1; /* ARGB */ } else { cb_conf.format = COLOR_5_6_5; - cb_conf.comp_swap = 2; //RGB + cb_conf.comp_swap = 2; /* RGB */ } break; case 32: cb_conf.format = COLOR_8_8_8_8; - cb_conf.comp_swap = 1; //ARGB + cb_conf.comp_swap = 1; /* ARGB */ break; default: return; @@ -453,7 +480,7 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv) DUAL_EXPORT_ENABLE_bit)); /* Only useful if no depth export */ /* Interpolator setup */ - // export tex coords from VS + /* export tex coords from VS */ EREG(accel_state->ib, SPI_VS_OUT_CONFIG, ((1 - 1) << VS_EXPORT_COUNT_shift)); EREG(accel_state->ib, SPI_VS_OUT_ID_0, (0 << SEMANTIC_0_shift)); diff --git a/driver/xf86-video-radeonhd/src/r6xx_accel.c b/driver/xf86-video-radeonhd/src/r6xx_accel.c index ae9a15c7c..bdbc4058d 100644 --- a/driver/xf86-video-radeonhd/src/r6xx_accel.c +++ b/driver/xf86-video-radeonhd/src/r6xx_accel.c @@ -64,7 +64,6 @@ /* Flush the indirect buffer to the kernel for submission to the card */ void R600CPFlushIndirect(ScrnInfoPtr pScrn, drmBufPtr ib) { -// RHDPtr rhdPtr = RHDPTR(pScrn); drmBufPtr buffer = ib; int start = 0; drm_radeon_indirect_t indirect; @@ -72,15 +71,10 @@ void R600CPFlushIndirect(ScrnInfoPtr pScrn, drmBufPtr ib) if (!buffer) return; - //xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Flushing buffer %d\n", - // buffer->idx); - while (buffer->used & 0x3c){ E32(buffer, CP_PACKET2()); /* fill up to multiple of 16 dwords */ } - //ErrorF("buffer bytes: %d\n", buffer->used); - indirect.idx = buffer->idx; indirect.start = start; indirect.end = buffer->used; @@ -102,12 +96,11 @@ void R600IBDiscard(ScrnInfoPtr pScrn, drmBufPtr ib) void wait_3d_idle_clean(ScrnInfoPtr pScrn, drmBufPtr ib) { -// RHDPtr rhdPtr = RHDPTR(pScrn); - //flush caches, don't generate timestamp + /* flush caches, don't generate timestamp */ PACK3(ib, IT_EVENT_WRITE, 1); E32(ib, CACHE_FLUSH_AND_INV_EVENT); - // wait for 3D idle clean + /* wait for 3D idle clean */ EREG(ib, WAIT_UNTIL, (WAIT_3D_IDLE_bit | WAIT_3D_IDLECLEAN_bit)); } @@ -115,10 +108,7 @@ wait_3d_idle_clean(ScrnInfoPtr pScrn, drmBufPtr ib) void wait_3d_idle(ScrnInfoPtr pScrn, drmBufPtr ib) { -// RHDPtr rhdPtr = RHDPTR(pScrn); - EREG(ib, WAIT_UNTIL, WAIT_3D_IDLE_bit); - } /* @@ -161,16 +151,15 @@ wait_vline_range(ScrnInfoPtr pScrn, drmBufPtr ib, int crtc, int start, int stop) else E32(ib, D2MODE_VLINE_STATUS >> 2); E32(ib, 0); - E32(ib, 0); // Ref value - E32(ib, 0x1000); // Mask - E32(ib, 10); // Wait interval + E32(ib, 0); /* Ref value */ + E32(ib, 0x1000); /* Mask */ + E32(ib, 10); /* Wait interval */ } static void reset_cb(ScrnInfoPtr pScrn, drmBufPtr ib) { int i; -// RHDPtr rhdPtr = RHDPTR(pScrn); PACK0(ib, CB_COLOR0_INFO, 8); for (i = 0; i < 8; i++) @@ -181,7 +170,6 @@ static void reset_td_samplers(ScrnInfoPtr pScrn, drmBufPtr ib) { int i; -// RHDPtr rhdPtr = RHDPTR(pScrn); wait_3d_idle(pScrn, ib); @@ -199,7 +187,6 @@ static void reset_sampler_const (ScrnInfoPtr pScrn, drmBufPtr ib) { int i; -// RHDPtr rhdPtr = RHDPTR(pScrn); for (i = 0; i < SQ_TEX_SAMPLER_WORD_all_num; i++) { PACK0 (ib, SQ_TEX_SAMPLER_WORD + i * SQ_TEX_SAMPLER_WORD_offset, 3); @@ -213,7 +200,6 @@ static void reset_dx9_alu_consts(ScrnInfoPtr pScrn, drmBufPtr ib) { int i; -// RHDPtr rhdPtr = RHDPTR(pScrn); const int count = SQ_ALU_CONSTANT_all_num * (SQ_ALU_CONSTANT_offset >> 2); @@ -226,7 +212,6 @@ static void reset_bool_loop_const(ScrnInfoPtr pScrn, drmBufPtr ib) { int i; -// RHDPtr rhdPtr = RHDPTR(pScrn); PACK0(ib, SQ_BOOL_CONST, SQ_BOOL_CONST_all_num); for (i = 0; i < SQ_BOOL_CONST_all_num; i++) @@ -260,7 +245,7 @@ start_3d(ScrnInfoPtr pScrn, drmBufPtr ib) * Setup of functional groups */ -// asic stack/thread/gpr limits - need to query the drm +/* asic stack/thread/gpr limits - need to query the drm */ static void sq_setup(ScrnInfoPtr pScrn, drmBufPtr ib, sq_config_t *sq_conf) { @@ -274,8 +259,9 @@ sq_setup(ScrnInfoPtr pScrn, drmBufPtr ib, sq_config_t *sq_conf) (rhdPtr->ChipSet == RHD_M74) || (rhdPtr->ChipSet == RHD_M82) || (rhdPtr->ChipSet == RHD_RS780) || + (rhdPtr->ChipSet == RHD_RS880) || (rhdPtr->ChipSet == RHD_RV710)) - sq_config = 0; // no VC + sq_config = 0; /* no VC */ else sq_config = VC_ENABLE_bit; @@ -351,21 +337,21 @@ set_render_target(ScrnInfoPtr pScrn, drmBufPtr ib, cb_config_t *cb_conf) EREG(ib, (CB_COLOR0_BASE + (4 * cb_conf->id)), (cb_conf->base >> 8)); - // rv6xx workaround + /* rv6xx workaround */ if ((rhdPtr->ChipSet > RHD_R600) && (rhdPtr->ChipSet < RHD_RV770)) { PACK3(ib, IT_SURFACE_BASE_UPDATE, 1); E32(ib, (2 << cb_conf->id)); } - // pitch only for ARRAY_LINEAR_GENERAL, other tiling modes require addrlib + /* pitch only for ARRAY_LINEAR_GENERAL, other tiling modes require addrlib */ EREG(ib, (CB_COLOR0_SIZE + (4 * cb_conf->id)), ((pitch << PITCH_TILE_MAX_shift) | (slice << SLICE_TILE_MAX_shift))); EREG(ib, (CB_COLOR0_VIEW + (4 * cb_conf->id)), ((0 << SLICE_START_shift) | (0 << SLICE_MAX_shift))); EREG(ib, (CB_COLOR0_INFO + (4 * cb_conf->id)), cb_color_info); - EREG(ib, (CB_COLOR0_TILE + (4 * cb_conf->id)), (0 >> 8)); // CMASK per-tile data base/256 - EREG(ib, (CB_COLOR0_FRAG + (4 * cb_conf->id)), (0 >> 8)); // FMASK per-tile data base/256 + EREG(ib, (CB_COLOR0_TILE + (4 * cb_conf->id)), (0 >> 8)); /* CMASK per-tile data base/256 */ + EREG(ib, (CB_COLOR0_FRAG + (4 * cb_conf->id)), (0 >> 8)); /* FMASK per-tile data base/256 */ EREG(ib, (CB_COLOR0_MASK + (4 * cb_conf->id)), ((0 << CMASK_BLOCK_MAX_shift) | (0 << FMASK_TILE_MAX_shift))); } @@ -373,8 +359,6 @@ set_render_target(ScrnInfoPtr pScrn, drmBufPtr ib, cb_config_t *cb_conf) void cp_set_surface_sync(ScrnInfoPtr pScrn, drmBufPtr ib, uint32_t sync_type, uint32_t size, uint64_t mc_addr) { -// RHDPtr rhdPtr = RHDPTR(pScrn); - uint32_t cp_coher_size; if (size == 0xffffffff) cp_coher_size = 0xffffffff; @@ -392,7 +376,6 @@ void fs_setup(ScrnInfoPtr pScrn, drmBufPtr ib, shader_config_t *fs_conf) { uint32_t sq_pgm_resources; -// RHDPtr rhdPtr = RHDPTR(pScrn); sq_pgm_resources = ((fs_conf->num_gprs << NUM_GPRS_shift) | (fs_conf->stack_size << STACK_SIZE_shift)); @@ -409,7 +392,6 @@ void vs_setup(ScrnInfoPtr pScrn, drmBufPtr ib, shader_config_t *vs_conf) { uint32_t sq_pgm_resources; -// RHDPtr rhdPtr = RHDPTR(pScrn); sq_pgm_resources = ((vs_conf->num_gprs << NUM_GPRS_shift) | (vs_conf->stack_size << STACK_SIZE_shift)); @@ -430,7 +412,6 @@ void ps_setup(ScrnInfoPtr pScrn, drmBufPtr ib, shader_config_t *ps_conf) { uint32_t sq_pgm_resources; -// RHDPtr rhdPtr = RHDPTR(pScrn); sq_pgm_resources = ((ps_conf->num_gprs << NUM_GPRS_shift) | (ps_conf->stack_size << STACK_SIZE_shift)); @@ -455,7 +436,6 @@ set_alu_consts(ScrnInfoPtr pScrn, drmBufPtr ib, int offset, int count, float *co { int i; const int countreg = count * (SQ_ALU_CONSTANT_offset >> 2); -// RHDPtr rhdPtr = RHDPTR(pScrn); PACK0(ib, SQ_ALU_CONSTANT + offset * SQ_ALU_CONSTANT_offset, countreg); for (i = 0; i < countreg; i++) @@ -475,7 +455,6 @@ void set_vtx_resource(ScrnInfoPtr pScrn, drmBufPtr ib, vtx_resource_t *res) { uint32_t sq_vtx_constant_word2; -// RHDPtr rhdPtr = RHDPTR(pScrn); sq_vtx_constant_word2 = ((((res->vb_addr) >> 32) & BASE_ADDRESS_HI_mask) | ((res->vtx_size_dw << 2) << SQ_VTX_CONSTANT_WORD2_0__STRIDE_shift) | @@ -492,13 +471,13 @@ set_vtx_resource(ScrnInfoPtr pScrn, drmBufPtr ib, vtx_resource_t *res) sq_vtx_constant_word2 |= SQ_VTX_CONSTANT_WORD2_0__SRF_MODE_ALL_bit; PACK0(ib, SQ_VTX_RESOURCE + res->id * SQ_VTX_RESOURCE_offset, 7); - E32(ib, res->vb_addr & 0xffffffff); // 0: BASE_ADDRESS - E32(ib, (res->vtx_num_entries << 2) - 1); // 1: SIZE - E32(ib, sq_vtx_constant_word2); // 2: BASE_HI, STRIDE, CLAMP, FORMAT, ENDIAN - E32(ib, res->mem_req_size << MEM_REQUEST_SIZE_shift); // 3: MEM_REQUEST_SIZE ?!? - E32(ib, 0); // 4: n/a - E32(ib, 0); // 5: n/a - E32(ib, SQ_TEX_VTX_VALID_BUFFER << SQ_VTX_CONSTANT_WORD6_0__TYPE_shift); // 6: TYPE + E32(ib, res->vb_addr & 0xffffffff); /* 0: BASE_ADDRESS */ + E32(ib, (res->vtx_num_entries << 2) - 1); /* 1: SIZE */ + E32(ib, sq_vtx_constant_word2); /* 2: BASE_HI, STRIDE, CLAMP, FORMAT, ENDIAN */ + E32(ib, res->mem_req_size << MEM_REQUEST_SIZE_shift); /* 3: MEM_REQUEST_SIZE ?!? */ + E32(ib, 0); /* 4: n/a */ + E32(ib, 0); /* 5: n/a */ + E32(ib, SQ_TEX_VTX_VALID_BUFFER << SQ_VTX_CONSTANT_WORD6_0__TYPE_shift); /* 6: TYPE */ } void @@ -506,7 +485,6 @@ set_tex_resource(ScrnInfoPtr pScrn, drmBufPtr ib, tex_resource_t *tex_res) { uint32_t sq_tex_resource_word0, sq_tex_resource_word1, sq_tex_resource_word4; uint32_t sq_tex_resource_word5, sq_tex_resource_word6; -// RHDPtr rhdPtr = RHDPTR(pScrn); sq_tex_resource_word0 = ((tex_res->dim << DIM_shift) | (tex_res->tile_mode << SQ_TEX_RESOURCE_WORD0_0__TILE_MODE_shift)); @@ -568,7 +546,6 @@ void set_tex_sampler (ScrnInfoPtr pScrn, drmBufPtr ib, tex_sampler_t *s) { uint32_t sq_tex_sampler_word0, sq_tex_sampler_word1, sq_tex_sampler_word2; -// RHDPtr rhdPtr = RHDPTR(pScrn); sq_tex_sampler_word0 = ((s->clamp_x << SQ_TEX_SAMPLER_WORD0_0__CLAMP_X_shift) | (s->clamp_y << CLAMP_Y_shift) | @@ -613,11 +590,10 @@ set_tex_sampler (ScrnInfoPtr pScrn, drmBufPtr ib, tex_sampler_t *s) E32(ib, sq_tex_sampler_word2); } -//XXX deal with clip offsets in clip setup +/* XXX deal with clip offsets in clip setup */ void set_screen_scissor(ScrnInfoPtr pScrn, drmBufPtr ib, int x1, int y1, int x2, int y2) { -// RHDPtr rhdPtr = RHDPTR(pScrn); EREG(ib, PA_SC_SCREEN_SCISSOR_TL, ((x1 << PA_SC_SCREEN_SCISSOR_TL__TL_X_shift) | (y1 << PA_SC_SCREEN_SCISSOR_TL__TL_Y_shift))); @@ -628,8 +604,6 @@ set_screen_scissor(ScrnInfoPtr pScrn, drmBufPtr ib, int x1, int y1, int x2, int void set_vport_scissor(ScrnInfoPtr pScrn, drmBufPtr ib, int id, int x1, int y1, int x2, int y2) { -// RHDPtr rhdPtr = RHDPTR(pScrn); - EREG(ib, PA_SC_VPORT_SCISSOR_0_TL + id * PA_SC_VPORT_SCISSOR_0_TL_offset, ((x1 << PA_SC_VPORT_SCISSOR_0_TL__TL_X_shift) | (y1 << PA_SC_VPORT_SCISSOR_0_TL__TL_Y_shift) | @@ -642,8 +616,6 @@ set_vport_scissor(ScrnInfoPtr pScrn, drmBufPtr ib, int id, int x1, int y1, int x void set_generic_scissor(ScrnInfoPtr pScrn, drmBufPtr ib, int x1, int y1, int x2, int y2) { -// RHDPtr rhdPtr = RHDPTR(pScrn); - EREG(ib, PA_SC_GENERIC_SCISSOR_TL, ((x1 << PA_SC_GENERIC_SCISSOR_TL__TL_X_shift) | (y1 << PA_SC_GENERIC_SCISSOR_TL__TL_Y_shift) | WINDOW_OFFSET_DISABLE_bit)); @@ -654,8 +626,6 @@ set_generic_scissor(ScrnInfoPtr pScrn, drmBufPtr ib, int x1, int y1, int x2, int void set_window_scissor(ScrnInfoPtr pScrn, drmBufPtr ib, int x1, int y1, int x2, int y2) { -// RHDPtr rhdPtr = RHDPTR(pScrn); - EREG(ib, PA_SC_WINDOW_SCISSOR_TL, ((x1 << PA_SC_WINDOW_SCISSOR_TL__TL_X_shift) | (y1 << PA_SC_WINDOW_SCISSOR_TL__TL_Y_shift) | WINDOW_OFFSET_DISABLE_bit)); @@ -666,8 +636,6 @@ set_window_scissor(ScrnInfoPtr pScrn, drmBufPtr ib, int x1, int y1, int x2, int void set_clip_rect(ScrnInfoPtr pScrn, drmBufPtr ib, int id, int x1, int y1, int x2, int y2) { -// RHDPtr rhdPtr = RHDPTR(pScrn); - EREG(ib, PA_SC_CLIPRECT_0_TL + id * PA_SC_CLIPRECT_0_TL_offset, ((x1 << PA_SC_CLIPRECT_0_TL__TL_X_shift) | (y1 << PA_SC_CLIPRECT_0_TL__TL_Y_shift))); @@ -687,7 +655,7 @@ set_default_state(ScrnInfoPtr pScrn, drmBufPtr ib) shader_config_t fs_conf; sq_config_t sq_conf; int i; -// uint32_t reg; + RHDPtr rhdPtr = RHDPTR(pScrn); struct r6xx_accel_state *accel_state = rhdPtr->TwoDPrivate; @@ -703,7 +671,7 @@ set_default_state(ScrnInfoPtr pScrn, drmBufPtr ib) wait_3d_idle(pScrn, ib); - // ASIC specific setup, see drm + /* ASIC specific setup, see drm */ if (rhdPtr->ChipSet < RHD_RV770) { EREG(ib, TA_CNTL_AUX, (( 3 << GRADIENT_CREDIT_shift) | (28 << TD_FIFO_CREDIT_shift))); @@ -735,14 +703,15 @@ set_default_state(ScrnInfoPtr pScrn, drmBufPtr ib) reset_bool_loop_const (pScrn, ib); reset_sampler_const (pScrn, ib); - // SQ + /* SQ */ sq_conf.ps_prio = 0; sq_conf.vs_prio = 1; sq_conf.gs_prio = 2; sq_conf.es_prio = 3; - // need to set stack/thread/gpr limits based on the asic - // for now just set them low enough so any card will work - // see r600_cp.c in the drm + /* need to set stack/thread/gpr limits based on the asic + * for now just set them low enough so any card will work + * see r600_cp.c in the drm + */ switch (rhdPtr->ChipSet) { case RHD_R600: sq_conf.num_ps_gprs = 192; @@ -783,6 +752,7 @@ set_default_state(ScrnInfoPtr pScrn, drmBufPtr ib) case RHD_M82: case RHD_RV620: case RHD_RS780: + case RHD_RS880: default: sq_conf.num_ps_gprs = 84; sq_conf.num_vs_gprs = 36; @@ -815,6 +785,7 @@ set_default_state(ScrnInfoPtr pScrn, drmBufPtr ib) sq_conf.num_es_stack_entries = 16; break; case RHD_RV770: + case RHD_RV790: case RHD_M98: sq_conf.num_ps_gprs = 192; sq_conf.num_vs_gprs = 56; @@ -831,6 +802,7 @@ set_default_state(ScrnInfoPtr pScrn, drmBufPtr ib) sq_conf.num_es_stack_entries = 0; break; case RHD_RV730: + case RHD_RV740: case RHD_M96: sq_conf.num_ps_gprs = 84; sq_conf.num_vs_gprs = 36; @@ -869,17 +841,17 @@ set_default_state(ScrnInfoPtr pScrn, drmBufPtr ib) EREG(ib, SQ_VTX_START_INST_LOC, 0); PACK0(ib, SQ_ESGS_RING_ITEMSIZE, 9); - E32(ib, 0); // SQ_ESGS_RING_ITEMSIZE - E32(ib, 0); // SQ_GSVS_RING_ITEMSIZE - E32(ib, 0); // SQ_ESTMP_RING_ITEMSIZE - E32(ib, 0); // SQ_GSTMP_RING_ITEMSIZE - E32(ib, 0); // SQ_VSTMP_RING_ITEMSIZE - E32(ib, 0); // SQ_PSTMP_RING_ITEMSIZE - E32(ib, 0); // SQ_FBUF_RING_ITEMSIZE - E32(ib, 0); // SQ_REDUC_RING_ITEMSIZE - E32(ib, 0); // SQ_GS_VERT_ITEMSIZE - - // DB + E32(ib, 0); /* SQ_ESGS_RING_ITEMSIZE */ + E32(ib, 0); /* SQ_GSVS_RING_ITEMSIZE */ + E32(ib, 0); /* SQ_ESTMP_RING_ITEMSIZE */ + E32(ib, 0); /* SQ_GSTMP_RING_ITEMSIZE */ + E32(ib, 0); /* SQ_VSTMP_RING_ITEMSIZE */ + E32(ib, 0); /* SQ_PSTMP_RING_ITEMSIZE */ + E32(ib, 0); /* SQ_FBUF_RING_ITEMSIZE */ + E32(ib, 0); /* SQ_REDUC_RING_ITEMSIZE */ + E32(ib, 0); /* SQ_GS_VERT_ITEMSIZE */ + + /* DB */ EREG(ib, DB_DEPTH_INFO, 0); EREG(ib, DB_STENCIL_CLEAR, 0); EREG(ib, DB_DEPTH_CLEAR, 0); @@ -896,11 +868,11 @@ set_default_state(ScrnInfoPtr pScrn, drmBufPtr ib) (2 << ALPHA_TO_MASK_OFFSET2_shift) | (2 << ALPHA_TO_MASK_OFFSET3_shift))); - // SX + /* SX */ EREG(ib, SX_ALPHA_TEST_CONTROL, 0); EREG(ib, SX_ALPHA_REF, 0); - // CB + /* CB */ reset_cb(pScrn, ib); PACK0(ib, CB_BLEND_RED, 4); @@ -910,7 +882,7 @@ set_default_state(ScrnInfoPtr pScrn, drmBufPtr ib) E32(ib, 0x00000000); /* CB_COLOR_CONTROL.PER_MRT_BLEND is off */ - // RV6xx+ have per-MRT blend + /* RV6xx+ have per-MRT blend */ if (rhdPtr->ChipSet > RHD_R600) { PACK0(ib, CB_BLEND0_CONTROL, CB_BLEND0_CONTROL_num); for (i = 0; i < CB_BLEND0_CONTROL_num; i++) @@ -928,10 +900,10 @@ set_default_state(ScrnInfoPtr pScrn, drmBufPtr ib) EREG(ib, CB_COLOR_CONTROL, 0); PACK0(ib, CB_CLRCMP_CONTROL, 4); - E32(ib, 1 << CLRCMP_FCN_SEL_shift); // CB_CLRCMP_CONTROL: use CLRCMP_FCN_SRC - E32(ib, 0); // CB_CLRCMP_SRC - E32(ib, 0); // CB_CLRCMP_DST - E32(ib, 0); // CB_CLRCMP_MSK + E32(ib, 1 << CLRCMP_FCN_SEL_shift); /* CB_CLRCMP_CONTROL: use CLRCMP_FCN_SRC */ + E32(ib, 0); /* CB_CLRCMP_SRC */ + E32(ib, 0); /* CB_CLRCMP_DST */ + E32(ib, 0); /* CB_CLRCMP_MSK */ if (rhdPtr->ChipSet < RHD_RV770) { @@ -943,7 +915,7 @@ set_default_state(ScrnInfoPtr pScrn, drmBufPtr ib) } EREG(ib, CB_TARGET_MASK, (0x0f << TARGET0_ENABLE_shift)); - // SC + /* SC */ set_generic_scissor(pScrn, ib, 0, 0, 8192, 8192); set_screen_scissor (pScrn, ib, 0, 0, 8192, 8192); EREG(ib, PA_SC_WINDOW_OFFSET, ((0 << WINDOW_X_OFFSET_shift) | @@ -978,7 +950,7 @@ set_default_state(ScrnInfoPtr pScrn, drmBufPtr ib) EREG(ib, PA_SC_AA_CONFIG, 0); EREG(ib, PA_SC_AA_MASK, 0xFFFFFFFF); - //XXX: double check this + /* XXX: double check this */ if (rhdPtr->ChipSet > RHD_R600) { EREG(ib, PA_SC_AA_SAMPLE_LOCS_MCTX, 0); EREG(ib, PA_SC_AA_SAMPLE_LOCS_8S_WD1_M, 0); @@ -987,30 +959,30 @@ set_default_state(ScrnInfoPtr pScrn, drmBufPtr ib) EREG(ib, PA_SC_LINE_STIPPLE, 0); EREG(ib, PA_SC_MPASS_PS_CNTL, 0); - // CL + /* CL */ PACK0(ib, PA_CL_VPORT_XSCALE_0, 6); - EFLOAT(ib, 0.0f); // PA_CL_VPORT_XSCALE - EFLOAT(ib, 0.0f); // PA_CL_VPORT_XOFFSET - EFLOAT(ib, 0.0f); // PA_CL_VPORT_YSCALE - EFLOAT(ib, 0.0f); // PA_CL_VPORT_YOFFSET - EFLOAT(ib, 0.0f); // PA_CL_VPORT_ZSCALE - EFLOAT(ib, 0.0f); // PA_CL_VPORT_ZOFFSET + EFLOAT(ib, 0.0f); /* PA_CL_VPORT_XSCALE */ + EFLOAT(ib, 0.0f); /* PA_CL_VPORT_XOFFSET */ + EFLOAT(ib, 0.0f); /* PA_CL_VPORT_YSCALE */ + EFLOAT(ib, 0.0f); /* PA_CL_VPORT_YOFFSET */ + EFLOAT(ib, 0.0f); /* PA_CL_VPORT_ZSCALE */ + EFLOAT(ib, 0.0f); /* PA_CL_VPORT_ZOFFSET */ EREG(ib, PA_CL_CLIP_CNTL, (CLIP_DISABLE_bit | DX_CLIP_SPACE_DEF_bit)); EREG(ib, PA_CL_VTE_CNTL, 0); EREG(ib, PA_CL_VS_OUT_CNTL, 0); EREG(ib, PA_CL_NANINF_CNTL, 0); PACK0(ib, PA_CL_GB_VERT_CLIP_ADJ, 4); - EFLOAT(ib, 1.0); // PA_CL_GB_VERT_CLIP_ADJ - EFLOAT(ib, 1.0); // PA_CL_GB_VERT_DISC_ADJ - EFLOAT(ib, 1.0); // PA_CL_GB_HORZ_CLIP_ADJ - EFLOAT(ib, 1.0); // PA_CL_GB_HORZ_DISC_ADJ + EFLOAT(ib, 1.0); /* PA_CL_GB_VERT_CLIP_ADJ */ + EFLOAT(ib, 1.0); /* PA_CL_GB_VERT_DISC_ADJ */ + EFLOAT(ib, 1.0); /* PA_CL_GB_HORZ_CLIP_ADJ */ + EFLOAT(ib, 1.0); /* PA_CL_GB_HORZ_DISC_ADJ */ /* user clipping planes are disabled by default */ PACK0(ib, PA_CL_UCP_0_X, 24); for (i = 0; i < 24; i++) EFLOAT(ib, 0.0); - // SU + /* SU */ EREG(ib, PA_SU_SC_MODE_CNTL, FACE_bit); EREG(ib, PA_SU_POINT_SIZE, 0); EREG(ib, PA_SU_POINT_MINMAX, 0); @@ -1021,11 +993,11 @@ set_default_state(ScrnInfoPtr pScrn, drmBufPtr ib) EREG(ib, PA_SU_POLY_OFFSET_FRONT_OFFSET, 0); EREG(ib, PA_SU_LINE_CNTL, (8 << PA_SU_LINE_CNTL__WIDTH_shift)); /* Line width 1 pixel */ - EREG(ib, PA_SU_VTX_CNTL, ((2 << PA_SU_VTX_CNTL__ROUND_MODE_shift) | + EREG(ib, PA_SU_VTX_CNTL, ((2 << PA_SU_VTX_CNTL__ROUND_MODE_shift) | PIX_CENTER_bit | (5 << QUANT_MODE_shift))); /* Round to Even, fixed point 1/256 */ EREG(ib, PA_SU_POLY_OFFSET_CLAMP, 0); - // SPI + /* SPI */ if (rhdPtr->ChipSet < RHD_RV770) EREG(ib, R7xx_SPI_THREAD_GROUPING, 0); else @@ -1045,10 +1017,10 @@ set_default_state(ScrnInfoPtr pScrn, drmBufPtr ib) E32(ib, 0x03020100 + i*0x04040404); EREG(ib, SPI_VS_OUT_CONFIG, 0); - // clear FS + /* clear FS */ fs_setup(pScrn, ib, &fs_conf); - // VGT + /* VGT */ EREG(ib, VGT_MAX_VTX_INDX, 2048); /* XXX set to a reasonably large number of indices */ EREG(ib, VGT_MIN_VTX_INDX, 0); EREG(ib, VGT_INDX_OFFSET, 0); @@ -1076,19 +1048,19 @@ set_default_state(ScrnInfoPtr pScrn, drmBufPtr ib) EREG(ib, VGT_VTX_CNT_EN, 0); EREG(ib, VGT_STRMOUT_BUFFER_EN, 0); - // clear tex resources - PS + /* clear tex resources - PS */ for (i = 0; i < 16; i++) { tex_res.id = i; set_tex_resource(pScrn, ib, &tex_res); } - // clear tex resources - VS + /* clear tex resources - VS */ for (i = 160; i < 164; i++) { tex_res.id = i; set_tex_resource(pScrn, ib, &tex_res); } - // clear tex resources - FS + /* clear tex resources - FS */ for (i = 320; i < 335; i++) { tex_res.id = i; set_tex_resource(pScrn, ib, &tex_res); @@ -1105,7 +1077,6 @@ void draw_immd(ScrnInfoPtr pScrn, drmBufPtr ib, draw_config_t *draw_conf, uint32_t *indices) { uint32_t i, count; -// RHDPtr rhdPtr = RHDPTR(pScrn); EREG(ib, VGT_PRIMITIVE_TYPE, draw_conf->prim_type); PACK3(ib, IT_INDEX_TYPE, 1); @@ -1113,7 +1084,7 @@ draw_immd(ScrnInfoPtr pScrn, drmBufPtr ib, draw_config_t *draw_conf, uint32_t *i PACK3(ib, IT_NUM_INSTANCES, 1); E32(ib, draw_conf->num_instances); - // calculate num of packets + /* calculate num of packets */ count = 2; if (draw_conf->index_type == DI_INDEX_SIZE_16_BIT) count += (draw_conf->num_indices + 1) / 2; @@ -1140,8 +1111,6 @@ draw_immd(ScrnInfoPtr pScrn, drmBufPtr ib, draw_config_t *draw_conf, uint32_t *i void draw_auto(ScrnInfoPtr pScrn, drmBufPtr ib, draw_config_t *draw_conf) { -// RHDPtr rhdPtr = RHDPTR(pScrn); - EREG(ib, VGT_PRIMITIVE_TYPE, draw_conf->prim_type); PACK3(ib, IT_INDEX_TYPE, 1); E32(ib, draw_conf->index_type); diff --git a/driver/xf86-video-radeonhd/src/r6xx_accel.h b/driver/xf86-video-radeonhd/src/r6xx_accel.h index b86f9b3f0..b96501d22 100644 --- a/driver/xf86-video-radeonhd/src/r6xx_accel.h +++ b/driver/xf86-video-radeonhd/src/r6xx_accel.h @@ -37,7 +37,7 @@ struct r6xx_accel_state { drmBufPtr ib; int vb_index; - // shader storage + /* shader storage */ ExaOffscreenArea *shaders; uint32_t solid_vs_offset; uint32_t solid_ps_offset; @@ -49,7 +49,7 @@ struct r6xx_accel_state { uint32_t xv_vs_offset; uint32_t xv_ps_offset; - //size/addr stuff + /*size/addr stuff */ uint32_t src_size[2]; uint64_t src_mc_addr[2]; uint32_t src_pitch[2]; @@ -68,20 +68,20 @@ struct r6xx_accel_state { uint32_t vb_size; uint64_t vb_mc_addr; - // UTS/DFS + /* UTS/DFS */ drmBufPtr scratch; - // copy + /* copy */ ExaOffscreenArea *copy_area; Bool same_surface; int rop; uint32_t planemask; - //comp + /*comp */ unsigned short texW[2]; unsigned short texH[2]; Bool is_transform[2]; - struct _PictTransform *transform[2]; + struct pixman_transform *transform[2]; Bool has_mask; Bool component_alpha; Bool src_alpha; diff --git a/driver/xf86-video-radeonhd/src/radeon_3d.c b/driver/xf86-video-radeonhd/src/radeon_3d.c index 6f6dce584..d70052a70 100644 --- a/driver/xf86-video-radeonhd/src/radeon_3d.c +++ b/driver/xf86-video-radeonhd/src/radeon_3d.c @@ -251,7 +251,7 @@ R5xx3DSetup(int scrnIndex) if (IS_R500_3D) R5XXPowerPipes(pScrn); - gb_tile_config = (R300_ENABLE_TILING | R300_TILE_SIZE_16 | R300_SUBPIXEL_1_16); + gb_tile_config = (R300_ENABLE_TILING | R300_TILE_SIZE_16); switch(num_gb_pipes) { case 2: gb_tile_config |= R300_PIPE_COUNT_R300; break; @@ -287,21 +287,21 @@ R5xx3DSetup(int scrnIndex) OUT_ACCEL_REG(R300_GB_AA_CONFIG, 0); OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_DC_FLUSH_3D | R300_DC_FREE_3D); OUT_ACCEL_REG(R300_RB3D_ZCACHE_CTLSTAT, R300_ZC_FLUSH | R300_ZC_FREE); - OUT_ACCEL_REG(R300_GB_MSPOS0, ((8 << R300_MS_X0_SHIFT) | - (8 << R300_MS_Y0_SHIFT) | - (8 << R300_MS_X1_SHIFT) | - (8 << R300_MS_Y1_SHIFT) | - (8 << R300_MS_X2_SHIFT) | - (8 << R300_MS_Y2_SHIFT) | - (8 << R300_MSBD0_Y_SHIFT) | - (7 << R300_MSBD0_X_SHIFT))); - OUT_ACCEL_REG(R300_GB_MSPOS1, ((8 << R300_MS_X3_SHIFT) | - (8 << R300_MS_Y3_SHIFT) | - (8 << R300_MS_X4_SHIFT) | - (8 << R300_MS_Y4_SHIFT) | - (8 << R300_MS_X5_SHIFT) | - (8 << R300_MS_Y5_SHIFT) | - (8 << R300_MSBD1_SHIFT))); + OUT_ACCEL_REG(R300_GB_MSPOS0, ((6 << R300_MS_X0_SHIFT) | + (6 << R300_MS_Y0_SHIFT) | + (6 << R300_MS_X1_SHIFT) | + (6 << R300_MS_Y1_SHIFT) | + (6 << R300_MS_X2_SHIFT) | + (6 << R300_MS_Y2_SHIFT) | + (6 << R300_MSBD0_Y_SHIFT) | + (6 << R300_MSBD0_X_SHIFT))); + OUT_ACCEL_REG(R300_GB_MSPOS1, ((6 << R300_MS_X3_SHIFT) | + (6 << R300_MS_Y3_SHIFT) | + (6 << R300_MS_X4_SHIFT) | + (6 << R300_MS_Y4_SHIFT) | + (6 << R300_MS_X5_SHIFT) | + (6 << R300_MS_Y5_SHIFT) | + (6 << R300_MSBD1_SHIFT))); FINISH_ACCEL(); BEGIN_ACCEL(5); @@ -756,18 +756,22 @@ R5xx3DSetup(int scrnIndex) BEGIN_ACCEL(7); OUT_ACCEL_REG(R300_SC_EDGERULE, 0xA5294A5); - OUT_ACCEL_REG(R300_SC_SCISSOR0, ((0 << R300_SCISSOR_X_SHIFT) | - (0 << R300_SCISSOR_Y_SHIFT))); - OUT_ACCEL_REG(R300_SC_SCISSOR1, ((8191 << R300_SCISSOR_X_SHIFT) | - (8191 << R300_SCISSOR_Y_SHIFT))); if (IS_R300_3D) { /* clip has offset 1440 */ - OUT_ACCEL_REG(R300_SC_CLIP_0_A, ((1088 << R300_CLIP_X_SHIFT) | - (1088 << R300_CLIP_Y_SHIFT))); - OUT_ACCEL_REG(R300_SC_CLIP_0_B, (((1080 + 2920) << R300_CLIP_X_SHIFT) | - ((1080 + 2920) << R300_CLIP_Y_SHIFT))); + OUT_ACCEL_REG(R300_SC_SCISSOR0, ((1440 << R300_SCISSOR_X_SHIFT) | + (1440 << R300_SCISSOR_Y_SHIFT))); + OUT_ACCEL_REG(R300_SC_SCISSOR1, ((8191 << R300_SCISSOR_X_SHIFT) | + (8191 << R300_SCISSOR_Y_SHIFT))); + OUT_ACCEL_REG(R300_SC_CLIP_0_A, ((1440 << R300_CLIP_X_SHIFT) | + (1440 << R300_CLIP_Y_SHIFT))); + OUT_ACCEL_REG(R300_SC_CLIP_0_B, ((4080 << R300_CLIP_X_SHIFT) | + (4080 << R300_CLIP_Y_SHIFT))); } else { + OUT_ACCEL_REG(R300_SC_SCISSOR0, ((0 << R300_SCISSOR_X_SHIFT) | + (0 << R300_SCISSOR_Y_SHIFT))); + OUT_ACCEL_REG(R300_SC_SCISSOR1, ((8191 << R300_SCISSOR_X_SHIFT) | + (8191 << R300_SCISSOR_Y_SHIFT))); OUT_ACCEL_REG(R300_SC_CLIP_0_A, ((0 << R300_CLIP_X_SHIFT) | (0 << R300_CLIP_Y_SHIFT))); OUT_ACCEL_REG(R300_SC_CLIP_0_B, ((4080 << R300_CLIP_X_SHIFT) | diff --git a/driver/xf86-video-radeonhd/src/radeon_drm.h b/driver/xf86-video-radeonhd/src/radeon_drm.h index c0d566cde..2199ecff6 100644 --- a/driver/xf86-video-radeonhd/src/radeon_drm.h +++ b/driver/xf86-video-radeonhd/src/radeon_drm.h @@ -528,7 +528,7 @@ typedef struct drm_radeon_init { RADEON_CLEANUP_CP = 0x02, RADEON_INIT_R200_CP = 0x03, RADEON_INIT_R300_CP = 0x04, - RADEON_INIT_R600_CP = 0x05, + RADEON_INIT_R600_CP = 0x05 } func; unsigned long sarea_priv_offset; int is_pci; /* for overriding only */ diff --git a/driver/xf86-video-radeonhd/src/radeon_exa_render.c b/driver/xf86-video-radeonhd/src/radeon_exa_render.c index ef0f810e4..252e7b0d2 100644 --- a/driver/xf86-video-radeonhd/src/radeon_exa_render.c +++ b/driver/xf86-video-radeonhd/src/radeon_exa_render.c @@ -463,6 +463,11 @@ static Bool R100CheckCompositeTexture(PicturePtr pPict, int unit) RADEON_FALLBACK(("Unsupported filter 0x%x\n", pPict->filter)); } + if (pPict->repeat && pPict->repeatType != RepeatNormal) + { + RADEON_FALLBACK(("Unsupported repeat type %d\n", pPict->repeat)); + } + return TRUE; } # endif ONLY_ONCE @@ -767,6 +772,11 @@ static Bool R200CheckCompositeTexture(PicturePtr pPict, int unit) pPict->filter != PictFilterBilinear) RADEON_FALLBACK(("Unsupported filter 0x%x\n", pPict->filter)); + if (pPict->repeat && pPict->repeatType != RepeatNormal) + { + RADEON_FALLBACK(("Unsupported repeat type %d\n", pPict->repeat)); + } + return TRUE; } # endif /* ONLY_ONCE */ @@ -1100,6 +1110,11 @@ static Bool R300CheckCompositeTexture(PicturePtr pPict, RADEON_FALLBACK(("REPEAT_NONE unsupported for transformed xRGB source\n")); } + if (pPict->repeat && pPict->repeatType != RepeatNormal) + { + RADEON_FALLBACK(("Unsupported repeat type %d\n", pPict->repeat)); + } + return TRUE; } @@ -1539,7 +1554,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, R300_RS_COUNT_HIRES_EN)); /* R300_INST_COUNT_RS - highest RS instruction used */ - OUT_ACCEL_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(1) | R300_TX_OFFSET_RS(6)); + OUT_ACCEL_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(1)); OUT_ACCEL_REG(R300_US_CODE_OFFSET, (R300_ALU_CODE_OFFSET(0) | R300_ALU_CODE_SIZE(0) | @@ -1558,7 +1573,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, ((2 << R300_RS_COUNT_IT_COUNT_SHIFT) | R300_RS_COUNT_HIRES_EN)); - OUT_ACCEL_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(0) | R300_TX_OFFSET_RS(6)); + OUT_ACCEL_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(0)); OUT_ACCEL_REG(R300_US_CODE_OFFSET, (R300_ALU_CODE_OFFSET(0) | R300_ALU_CODE_SIZE(0) | @@ -1753,7 +1768,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, R300_RS_COUNT_HIRES_EN)); /* 2 RS instructions: 1 for tex0 (src), 1 for tex1 (mask) */ - OUT_ACCEL_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(1) | R300_TX_OFFSET_RS(6)); + OUT_ACCEL_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(1)); OUT_ACCEL_REG(R500_US_CODE_ADDR, (R500_US_CODE_START_ADDR(0) | R500_US_CODE_END_ADDR(2))); @@ -1765,7 +1780,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, ((2 << R300_RS_COUNT_IT_COUNT_SHIFT) | R300_RS_COUNT_HIRES_EN)); - OUT_ACCEL_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(0) | R300_TX_OFFSET_RS(6)); + OUT_ACCEL_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(0)); OUT_ACCEL_REG(R500_US_CODE_ADDR, (R500_US_CODE_START_ADDR(0) | R500_US_CODE_END_ADDR(1))); diff --git a/driver/xf86-video-radeonhd/src/radeon_textured_videofuncs.c b/driver/xf86-video-radeonhd/src/radeon_textured_videofuncs.c index 247f7c2bb..b51e14573 100644 --- a/driver/xf86-video-radeonhd/src/radeon_textured_videofuncs.c +++ b/driver/xf86-video-radeonhd/src/radeon_textured_videofuncs.c @@ -391,7 +391,7 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv ((2 << R300_RS_COUNT_IT_COUNT_SHIFT) | R300_RS_COUNT_HIRES_EN)); /* R300_INST_COUNT_RS - highest RS instruction used */ - OUT_VIDEO_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(0) | R300_TX_OFFSET_RS(6)); + OUT_VIDEO_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(0)); OUT_VIDEO_REG(R300_US_CODE_OFFSET, (R300_ALU_CODE_OFFSET(0) | @@ -457,7 +457,7 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv R300_RS_COUNT_HIRES_EN)); /* R300_INST_COUNT_RS - highest RS instruction used */ - OUT_VIDEO_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(0) | R300_TX_OFFSET_RS(6)); + OUT_VIDEO_REG(R300_RS_INST_COUNT, R300_INST_COUNT_RS(0)); OUT_VIDEO_REG(R500_US_CODE_ADDR, (R500_US_CODE_START_ADDR(0) | R500_US_CODE_END_ADDR(1))); diff --git a/driver/xf86-video-radeonhd/src/rhd.h b/driver/xf86-video-radeonhd/src/rhd.h index e58689cdb..efa6bc26e 100644 --- a/driver/xf86-video-radeonhd/src/rhd.h +++ b/driver/xf86-video-radeonhd/src/rhd.h @@ -1,7 +1,7 @@ /* - * Copyright 2007, 2008 Luc Verhaegen <libv@exsuse.de> - * Copyright 2007, 2008 Matthias Hopf <mhopf@novell.com> - * Copyright 2007, 2008 Egbert Eich <eich@novell.com> + * Copyright 2007 - 2009 Luc Verhaegen <libv@exsuse.de> + * Copyright 2007 - 2009 Matthias Hopf <mhopf@novell.com> + * Copyright 2007 - 2009 Egbert Eich <eich@novell.com> * Copyright 2007, 2008 Advanced Micro Devices, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -81,7 +81,7 @@ enum RHD_CHIPSETS { RHD_M72, RHD_M74, RHD_M76, - /* RV670 came into existence after RV6x0 and M7x */ + /* R600 second batch - RV670 came into existence after RV6x0 and M7x */ RHD_RV670, RHD_M88, RHD_R680, @@ -92,11 +92,17 @@ enum RHD_CHIPSETS { RHD_RS780, RHD_RS880, RHD_RV770, + /* R700 */ RHD_R700, RHD_M98, RHD_RV730, RHD_M96, RHD_RV710, + RHD_M92, + RHD_M93, + RHD_M97, + RHD_RV790, + RHD_RV740, RHD_CHIP_END }; @@ -136,6 +142,8 @@ union rhdPropertyData Bool Bool; }; +#define RHD_BACKLIGHT_PROPERTY_MAX 255 + #define RHD_CONNECTORS_MAX 6 /* Just define where which PCI BAR lives for now. Will deal with different @@ -239,8 +247,12 @@ typedef struct RHDRec { RHDOpt scaleTypeOpt; RHDOpt unverifiedFeatures; RHDOpt audio; + RHDOpt audioWorkaround; RHDOpt hdmi; RHDOpt coherent; + RHDOpt lowPowerMode; + RHDOpt lowPowerModeEngineClock; + RHDOpt lowPowerModeMemoryClock; enum RHD_HPD_USAGE hpdUsage; unsigned int FbMapSize; pointer FbBase; /* map base of fb */ @@ -336,6 +348,8 @@ typedef struct RHDRec { RHDOpt UseAtomBIOS; CARD32 UseAtomFlags; + struct rhdPm *Pm; + struct rhdOutput *DigEncoderOutput[2]; # define RHD_CHECKDEBUGFLAG(rhdPtr, FLAG) (rhdPtr->DebugFlags & (1 << FLAG)) #ifndef NO_ASSERT @@ -371,6 +385,14 @@ enum rhdOptStatus { RHD_OPTION_ON }; +struct rhdPowerState { + /* All entries: 0 means unknown / unspecified / dontchange */ + /* Clocks in kHz, Voltage in mV */ + CARD32 EngineClock; + CARD32 MemoryClock; + CARD32 VDDCVoltage; +}; + /* rhd_driver.c */ /* Some handy functions that makes life so much more readable */ extern unsigned int RHDReadPCIBios(RHDPtr rhdPtr, unsigned char **prt); diff --git a/driver/xf86-video-radeonhd/src/rhd_acpi.c b/driver/xf86-video-radeonhd/src/rhd_acpi.c new file mode 100644 index 000000000..38319255c --- /dev/null +++ b/driver/xf86-video-radeonhd/src/rhd_acpi.c @@ -0,0 +1,150 @@ +/* + * Copyright 2009 Luc Verhaegen <libv@exsuse.de> + * Copyright 2009 Matthias Hopf <mhopf@novell.com> + * Copyright 2009 Egbert Eich <eich@novell.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#if HAVE_XF86_ANSIC_H +# include "xf86_ansic.h" +#else +# include <unistd.h> +# include <sys/types.h> +# include <dirent.h> +# include <sys/stat.h> +# include <fcntl.h> +# include <stdio.h> +# include <string.h> +# include <errno.h> +#endif + +#include "xf86.h" + +#include "rhd.h" +#include "rhd_connector.h" +#include "rhd_output.h" +#include "rhd_acpi.h" + + +#define ACPI_PATH "/sys/class/backlight" + +/* + * + */ +static Bool +rhdDoBacklight(struct rhdOutput *Output, Bool do_write, int *val) +{ + DIR *dir = opendir(ACPI_PATH); + struct dirent *dirent; + char buf[10]; + RHDFUNC(Output); + + if (!dir) + return -1; + + while ((dirent = readdir(dir)) != NULL) { + char path[PATH_MAX]; + int fd_max; + + snprintf(path,PATH_MAX,"%s/%s/max_brightness",ACPI_PATH,dirent->d_name); + if ((fd_max = open(path, O_RDONLY)) > 0) { + int max_val; + + while ((read(fd_max,buf,9) == -1) + && (errno == EINTR || errno == EAGAIN)) {}; + close (fd_max); + + if (sscanf(buf,"%i\n",&max_val) == 1) { + int fd; + + snprintf(path,PATH_MAX,"%s/%s/%s",ACPI_PATH,dirent->d_name, + do_write ? "brightness" : "actual_brightness"); + if ((fd = open(path, do_write ? O_WRONLY : O_RDONLY)) > 0) { + + if (do_write) { + + snprintf(buf,10,"%i\n",(*val * max_val) / RHD_BACKLIGHT_PROPERTY_MAX); + while ((write(fd,buf,strlen(buf)) <= 0) + && (errno == EINTR || errno == EAGAIN)) {}; + + close (fd); + closedir (dir); + RHDDebug(Output->scrnIndex,"%s: Wrote value %i to %s\n", + __func__,*val,path); + + return TRUE; + } else { + memset(buf,0,10); + + while ((read(fd,buf,9) == -1) + && (errno == EINTR || errno == EAGAIN)) {}; + + if (sscanf(buf,"%i\n",val) == 1) { + *val = (*val * RHD_BACKLIGHT_PROPERTY_MAX) / max_val; + + close(fd); + closedir(dir); + RHDDebug(Output->scrnIndex,"%s: Read value %i from %s\n", + __func__,*val,path); + + return TRUE; + } + } + close (fd); + } + } + } + } + closedir(dir); + + return FALSE; +} + +/* + * RhdACPIGetBacklightControl(): return backlight value in range 0..255; + * -1 means no ACPI BL support. + */ +int +RhdACPIGetBacklightControl(struct rhdOutput *Output) +{ +#ifdef __linux__ + int ret; + RHDFUNC(Output); + if (rhdDoBacklight(Output, FALSE, &ret)) + return ret; +#endif + return -1; +} + +/* + * + */ +void +RhdACPISetBacklightControl(struct rhdOutput *Output, int val) +{ + RHDFUNC(Output); +#ifdef __linux__ + rhdDoBacklight(Output, TRUE, &val); +#endif +} diff --git a/driver/xf86-video-radeonhd/src/rhd_acpi.h b/driver/xf86-video-radeonhd/src/rhd_acpi.h new file mode 100644 index 000000000..d76af4136 --- /dev/null +++ b/driver/xf86-video-radeonhd/src/rhd_acpi.h @@ -0,0 +1,31 @@ +/* + * Copyright 2009 Luc Verhaegen <libv@exsuse.de> + * Copyright 2009 Matthias Hopf <mhopf@novell.com> + * Copyright 2009 Egbert Eich <eich@novell.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef RHD_ACPI_H +# define RHD_ACPI_H + +int RhdACPIGetBacklightControl(struct rhdOutput *Output); +void RhdACPISetBacklightControl(struct rhdOutput *Output, int val); + +#endif diff --git a/driver/xf86-video-radeonhd/src/rhd_atombios.c b/driver/xf86-video-radeonhd/src/rhd_atombios.c index a285e48bb..26e32fcab 100644 --- a/driver/xf86-video-radeonhd/src/rhd_atombios.c +++ b/driver/xf86-video-radeonhd/src/rhd_atombios.c @@ -74,7 +74,7 @@ typedef unsigned short USHORT; # endif # endif -# include "atombios.h" +# include "atombios_rev.h" # include "ObjectID.h" typedef AtomBiosResult (*AtomBiosRequestFunc)(atomBiosHandlePtr handle, @@ -126,6 +126,21 @@ atomSetRegisterListLocation(atomBiosHandlePtr handle, AtomBiosRequestID func, At static AtomBiosResult atomRestoreRegisters(atomBiosHandlePtr handle, AtomBiosRequestID func, AtomBiosArgPtr data); +static AtomBiosResult +rhdAtomSetClock(atomBiosHandlePtr handle, AtomBiosRequestID func, AtomBiosArgPtr data); +static AtomBiosResult +rhdAtomGetClock(atomBiosHandlePtr handle, AtomBiosRequestID func, AtomBiosArgPtr data); +static AtomBiosResult +rhdAtomPmSetup(atomBiosHandlePtr handle, AtomBiosRequestID func, AtomBiosArgPtr data); +static AtomBiosResult +rhdAtomChipLimits(atomBiosHandlePtr handle, AtomBiosRequestID func, AtomBiosArgPtr data); +static AtomBiosResult +rhdAtomGetVoltage(atomBiosHandlePtr handle, AtomBiosRequestID func, AtomBiosArgPtr data); +static AtomBiosResult +rhdAtomSetVoltage(atomBiosHandlePtr handle, AtomBiosRequestID func, AtomBiosArgPtr data); +static AtomBiosResult +rhdAtomChipConfigs(atomBiosHandlePtr handle, AtomBiosRequestID func, AtomBiosArgPtr data); + enum msgDataFormat { MSG_FORMAT_NONE, @@ -146,45 +161,45 @@ struct atomBIOSRequests { char *message; enum msgDataFormat message_format; } AtomBiosRequestList [] = { - {ATOMBIOS_INIT, rhdAtomInit, + {ATOM_INIT, rhdAtomInit, "AtomBIOS Init", MSG_FORMAT_NONE}, - {ATOMBIOS_TEARDOWN, rhdAtomTearDown, + {ATOM_TEARDOWN, rhdAtomTearDown, "AtomBIOS Teardown", MSG_FORMAT_NONE}, # ifdef ATOM_BIOS_PARSER - {ATOMBIOS_EXEC, rhdAtomExec, + {ATOM_EXEC, rhdAtomExec, "AtomBIOS Exec", MSG_FORMAT_NONE}, #endif - {ATOMBIOS_ALLOCATE_FB_SCRATCH, rhdAtomAllocateFbScratch, + {ATOM_ALLOCATE_FB_SCRATCH, rhdAtomAllocateFbScratch, "AtomBIOS Set FB Space", MSG_FORMAT_NONE}, - {ATOMBIOS_GET_CONNECTORS, rhdAtomConnectorInfo, + {ATOM_GET_CONNECTORS, rhdAtomConnectorInfo, "AtomBIOS Get Connectors", MSG_FORMAT_NONE}, - {ATOMBIOS_GET_OUTPUT_DEVICE_LIST, rhdAtomOutputDeviceList, + {ATOM_GET_OUTPUT_DEVICE_LIST, rhdAtomOutputDeviceList, "AtomBIOS Get Output Info", MSG_FORMAT_NONE}, - {ATOMBIOS_GET_PANEL_MODE, rhdAtomLvdsGetTimings, + {ATOM_GET_PANEL_MODE, rhdAtomLvdsGetTimings, "AtomBIOS Get Panel Mode", MSG_FORMAT_NONE}, - {ATOMBIOS_GET_PANEL_EDID, rhdAtomLvdsGetTimings, + {ATOM_GET_PANEL_EDID, rhdAtomLvdsGetTimings, "AtomBIOS Get Panel EDID", MSG_FORMAT_NONE}, - {ATOMBIOS_GET_CODE_DATA_TABLE, rhdAtomGetDataInCodeTable, + {ATOM_GET_CODE_DATA_TABLE, rhdAtomGetDataInCodeTable, "AtomBIOS Get Datatable from Codetable", MSG_FORMAT_NONE}, - {GET_DEFAULT_ENGINE_CLOCK, rhdAtomFirmwareInfoQuery, + {ATOM_GET_DEFAULT_ENGINE_CLOCK, rhdAtomFirmwareInfoQuery, "Default Engine Clock", MSG_FORMAT_DEC}, - {GET_DEFAULT_MEMORY_CLOCK, rhdAtomFirmwareInfoQuery, + {ATOM_GET_DEFAULT_MEMORY_CLOCK, rhdAtomFirmwareInfoQuery, "Default Memory Clock", MSG_FORMAT_DEC}, - {GET_MAX_PIXEL_CLOCK_PLL_OUTPUT, rhdAtomFirmwareInfoQuery, + {ATOM_GET_MAX_PIXEL_CLOCK_PLL_OUTPUT, rhdAtomFirmwareInfoQuery, "Maximum Pixel ClockPLL Frequency Output", MSG_FORMAT_DEC}, - {GET_MIN_PIXEL_CLOCK_PLL_OUTPUT, rhdAtomFirmwareInfoQuery, + {ATOM_GET_MIN_PIXEL_CLOCK_PLL_OUTPUT, rhdAtomFirmwareInfoQuery, "Minimum Pixel ClockPLL Frequency Output", MSG_FORMAT_DEC}, - {GET_MAX_PIXEL_CLOCK_PLL_INPUT, rhdAtomFirmwareInfoQuery, + {ATOM_GET_MAX_PIXEL_CLOCK_PLL_INPUT, rhdAtomFirmwareInfoQuery, "Maximum Pixel ClockPLL Frequency Input", MSG_FORMAT_DEC}, - {GET_MIN_PIXEL_CLOCK_PLL_INPUT, rhdAtomFirmwareInfoQuery, + {ATOM_GET_MIN_PIXEL_CLOCK_PLL_INPUT, rhdAtomFirmwareInfoQuery, "Minimum Pixel ClockPLL Frequency Input", MSG_FORMAT_DEC}, - {GET_MAX_PIXEL_CLK, rhdAtomFirmwareInfoQuery, + {ATOM_GET_MAX_PIXEL_CLK, rhdAtomFirmwareInfoQuery, "Maximum Pixel Clock", MSG_FORMAT_DEC}, - {GET_REF_CLOCK, rhdAtomFirmwareInfoQuery, + {ATOM_GET_REF_CLOCK, rhdAtomFirmwareInfoQuery, "Reference Clock", MSG_FORMAT_DEC}, - {GET_FW_FB_START, rhdAtomVramInfoQuery, + {ATOM_GET_FW_FB_START, rhdAtomVramInfoQuery, "Start of VRAM area used by Firmware", MSG_FORMAT_HEX}, - {GET_FW_FB_SIZE, rhdAtomVramInfoQuery, + {ATOM_GET_FW_FB_SIZE, rhdAtomVramInfoQuery, "Framebuffer space used by Firmware (kb)", MSG_FORMAT_DEC}, {ATOM_TMDS_MAX_FREQUENCY, rhdAtomTmdsInfoQuery, "TMDS Max Frequency", MSG_FORMAT_DEC}, @@ -270,7 +285,27 @@ struct atomBIOSRequests { "Register List Location", MSG_FORMAT_NONE}, {ATOM_RESTORE_REGISTERS, atomRestoreRegisters, "Restore Registers", MSG_FORMAT_NONE}, - {FUNC_END, NULL, + {ATOM_GET_ENGINE_CLOCK, rhdAtomGetClock, + "Current Engine Clock", MSG_FORMAT_DEC}, + {ATOM_GET_MEMORY_CLOCK, rhdAtomGetClock, + "Current Memory Clock", MSG_FORMAT_DEC}, + {ATOM_SET_ENGINE_CLOCK, rhdAtomSetClock, + "Set Engine Clock", MSG_FORMAT_NONE}, + {ATOM_SET_MEMORY_CLOCK, rhdAtomSetClock, + "Set Memory Clock", MSG_FORMAT_NONE}, + {ATOM_PM_SETUP, rhdAtomPmSetup, + "Set Power Management", MSG_FORMAT_NONE}, + {ATOM_PM_CLOCKGATING_SETUP, rhdAtomPmSetup, + "Set Dynamic Clock Gating", MSG_FORMAT_NONE}, + {ATOM_GET_CHIP_LIMITS, rhdAtomChipLimits, + "Get Chip Limits", MSG_FORMAT_NONE}, + {ATOM_GET_VOLTAGE, rhdAtomGetVoltage, + "Current Chip Voltage", MSG_FORMAT_DEC}, + {ATOM_SET_VOLTAGE, rhdAtomSetVoltage, + "Set Chip Voltage", MSG_FORMAT_NONE}, + {ATOM_GET_CHIP_CONFIGS, rhdAtomChipConfigs, + "Get Chip Configs", MSG_FORMAT_NONE}, + {ATOM_FUNC_END, NULL, NULL, MSG_FORMAT_NONE} }; @@ -325,7 +360,13 @@ typedef struct _atomDataTables ATOM_COMPONENT_VIDEO_INFO *ComponentVideoInfo; ATOM_COMPONENT_VIDEO_INFO_V21 *ComponentVideoInfo_v21; } ComponentVideoInfo; -/**/unsigned char *PowerPlayInfo; + union { + void *base; + ATOM_POWERPLAY_INFO *PowerPlayInfo; + ATOM_POWERPLAY_INFO_V2 *PowerPlayInfo_V_2_1; + ATOM_POWERPLAY_INFO_V3 *PowerPlayInfo_V_3_1; + ATOM_POWERPLAY_INFO_V4 *PowerPlayInfo_V_4_1; + } PowerPlayInfo; COMPASSIONATE_DATA *CompassionateData; ATOM_DISPLAY_DEVICE_PRIORITY_INFO *SaveRestoreInfo; /**/unsigned char *PPLL_SS_Info; @@ -423,6 +464,92 @@ CailDebug(int scrnIndex, const char *format, ...) # endif +static int +rhdAtomBIOSGetArg(CARD32 *val, char *ptr) +{ + int cnt = 0; + if (isspace(*ptr) || *ptr == '=') { + ptr++; + cnt++; + } + if (!strncasecmp("off",ptr,3)) { + *val = RHD_ATOMBIOS_OFF; + return cnt + 3; + } else if (!strncasecmp("on",ptr,2)) { + *val = RHD_ATOMBIOS_ON; + return cnt + 2; + } else if (!strncasecmp("force_off",ptr,9)) { + *val = RHD_ATOMBIOS_OFF | RHD_ATOMBIOS_FORCE; + return cnt + 9; + } else if (!strncasecmp("force_on",ptr,8)) { + *val = RHD_ATOMBIOS_ON | RHD_ATOMBIOS_FORCE; + return cnt + 8; + } else + return 0; +} + +int +rhdUpdateAtomBIOSUsage(RHDPtr rhdPtr, char *string) +{ + char *ptr = string; + CARD32 val; + + while (*ptr != '\0') { + int c; + while (isspace(*ptr)) + ptr++; + if (*ptr == '\0') + break; + + if (!strncasecmp("crtc",ptr,4)) { + ptr += 4; + if (!(c = rhdAtomBIOSGetArg(&val,ptr))) + return FALSE; + ptr += c; + rhdPtr->UseAtomFlags &= ~((RHD_ATOMBIOS_FORCE | RHD_ATOMBIOS_ON | RHD_ATOMBIOS_OFF) << RHD_ATOMBIOS_CRTC); + rhdPtr->UseAtomFlags |= (val << RHD_ATOMBIOS_CRTC); + } + else if (!strncasecmp("output",ptr,6)) { + ptr += 6; + if (!(c = rhdAtomBIOSGetArg(&val,ptr))) + return FALSE; + ptr += c; + rhdPtr->UseAtomFlags &= ~((RHD_ATOMBIOS_FORCE | RHD_ATOMBIOS_ON | RHD_ATOMBIOS_OFF) << RHD_ATOMBIOS_OUTPUT); + rhdPtr->UseAtomFlags |= (val << RHD_ATOMBIOS_OUTPUT); + } + else if (!strncasecmp("pll",ptr,3)) { + ptr += 3; + if (!(c = rhdAtomBIOSGetArg(&val,ptr))) + return FALSE; + ptr += c; + rhdPtr->UseAtomFlags &= ~((RHD_ATOMBIOS_FORCE | RHD_ATOMBIOS_ON | RHD_ATOMBIOS_OFF) << RHD_ATOMBIOS_PLL); + rhdPtr->UseAtomFlags |= (val << RHD_ATOMBIOS_PLL); + } else + return FALSE; + } + return TRUE; +} + +char * +rhdReturnAtomBIOSUsage(RHDPtr rhdPtr) +{ + char *type[] = { "crtc", "output", "pll", NULL }; + int shift[] = { RHD_ATOMBIOS_CRTC, RHD_ATOMBIOS_OUTPUT, RHD_ATOMBIOS_PLL }; + char *vals[] = { "", "on", "off", "unknown", "unknown", "force_on", "force_off", "unknown" }; + int i; + char buf[40]; + char *p = buf; + + for (i = 0; type[i]; i++) { + int val = (rhdPtr->UseAtomFlags >> shift[i]) & 0x07; + if (val) + p += sprintf (p, "%s=%s ", type[i], vals[val]); + } + if (p != buf) + *--p = 0; + return strdup(buf); +} + # define DEBUG_VERSION(index, handle, version) \ xf86DrvMsgVerb(handle->scrnIndex, X_INFO, 3, "%s returned version %i for index 0x%x\n" ,__func__,version.cref,index) # define DEBUG_VERSION_NAME(index, handle, name, version) \ @@ -630,7 +757,7 @@ rhdAtomGetFbBaseAndSize(atomBiosHandlePtr handle, unsigned int *base, unsigned int *size) { AtomBiosArgRec data; - if (RHDAtomBiosFunc(handle->scrnIndex, handle, GET_FW_FB_SIZE, &data) + if (RHDAtomBiosFunc(handle->scrnIndex, handle, ATOM_GET_FW_FB_SIZE, &data) == ATOM_SUCCESS) { if (data.val == 0) { xf86DrvMsg(handle->scrnIndex, X_WARNING, "%s: AtomBIOS specified VRAM " @@ -641,7 +768,7 @@ rhdAtomGetFbBaseAndSize(atomBiosHandlePtr handle, unsigned int *base, *size = (int)data.val; } else return FALSE; - if (RHDAtomBiosFunc(handle->scrnIndex, handle, GET_FW_FB_START, &data) + if (RHDAtomBiosFunc(handle->scrnIndex, handle, ATOM_GET_FW_FB_START, &data) == ATOM_SUCCESS) { if (data.val == 0) return FALSE; @@ -722,11 +849,11 @@ rhdAtomASICInit(atomBiosHandlePtr handle) RHDFUNC(handle); RHDAtomBiosFunc(handle->scrnIndex, handle, - GET_DEFAULT_ENGINE_CLOCK, + ATOM_GET_DEFAULT_ENGINE_CLOCK, &data); asicInit.sASICInitClocks.ulDefaultEngineClock = data.val / 10;/*in 10 Khz*/ RHDAtomBiosFunc(handle->scrnIndex, handle, - GET_DEFAULT_MEMORY_CLOCK, + ATOM_GET_DEFAULT_MEMORY_CLOCK, &data); asicInit.sASICInitClocks.ulDefaultMemoryClock = data.val / 10;/*in 10 Khz*/ data.exec.dataSpace = NULL; @@ -736,7 +863,7 @@ rhdAtomASICInit(atomBiosHandlePtr handle) xf86DrvMsg(handle->scrnIndex, X_INFO, "Calling ASIC Init\n"); atomDebugPrintPspace(handle, &data, sizeof(asicInit)); if (RHDAtomBiosFunc(handle->scrnIndex, handle, - ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { + ATOM_EXEC, &data) == ATOM_SUCCESS) { xf86DrvMsg(handle->scrnIndex, X_INFO, "ASIC_INIT Successful\n"); return TRUE; } @@ -797,7 +924,7 @@ rhdAtomSetScaler(atomBiosHandlePtr handle, enum atomScaler scalerID, enum atomSc atomDebugPrintPspace(handle, &data, sizeof(scaler)); xf86DrvMsg(handle->scrnIndex, X_INFO, "Calling EnableScaler\n"); if (RHDAtomBiosFunc(handle->scrnIndex, handle, - ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { + ATOM_EXEC, &data) == ATOM_SUCCESS) { xf86DrvMsg(handle->scrnIndex, X_INFO, "EnableScaler Successful\n"); return TRUE; } @@ -838,7 +965,7 @@ rhdAtomSetTVEncoder(atomBiosHandlePtr handle, Bool enable, int mode) xf86DrvMsg(handle->scrnIndex, X_INFO, "Calling SetTVEncoder\n"); atomDebugPrintPspace(handle, &data, sizeof(tvEncoder)); if (RHDAtomBiosFunc(handle->scrnIndex, handle, - ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { + ATOM_EXEC, &data) == ATOM_SUCCESS) { xf86DrvMsg(handle->scrnIndex, X_INFO, "SetTVEncoder Successful\n"); return TRUE; } @@ -1052,7 +1179,7 @@ rhdAtomDigTransmitterControl(atomBiosHandlePtr handle, enum atomTransmitter id, xf86DrvMsg(handle->scrnIndex, X_INFO, "Calling %s\n",name); atomDebugPrintPspace(handle, &data, sizeof(Transmitter)); if (RHDAtomBiosFunc(handle->scrnIndex, handle, - ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { + ATOM_EXEC, &data) == ATOM_SUCCESS) { xf86DrvMsg(handle->scrnIndex, X_INFO, "%s Successful\n",name); return TRUE; } @@ -1205,7 +1332,7 @@ rhdAtomOutputControl(atomBiosHandlePtr handle, enum atomOutput OutputId, enum at xf86DrvMsg(handle->scrnIndex, X_INFO, "Calling %s\n",name); atomDebugPrintPspace(handle, &data, sizeof(ps)); if (RHDAtomBiosFunc(handle->scrnIndex, handle, - ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { + ATOM_EXEC, &data) == ATOM_SUCCESS) { xf86DrvMsg(handle->scrnIndex, X_INFO, "%s Successful\n",name); return TRUE; } @@ -1330,7 +1457,7 @@ AtomDACLoadDetection(atomBiosHandlePtr handle, enum atomDevice Device, enum atom xf86DrvMsg(handle->scrnIndex, X_INFO, "Calling DAC_LoadDetection\n"); atomDebugPrintPspace(handle, &data, sizeof(ps)); if (RHDAtomBiosFunc(handle->scrnIndex, handle, - ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { + ATOM_EXEC, &data) == ATOM_SUCCESS) { xf86DrvMsg(handle->scrnIndex, X_INFO, "DAC_LoadDetection Successful\n"); return TRUE; } @@ -1850,7 +1977,7 @@ rhdAtomEncoderControl(atomBiosHandlePtr handle, enum atomEncoder EncoderId, xf86DrvMsg(handle->scrnIndex, X_INFO, "Calling %s\n",name); atomDebugPrintPspace(handle, &data, sizeof(ps)); if (RHDAtomBiosFunc(handle->scrnIndex, handle, - ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { + ATOM_EXEC, &data) == ATOM_SUCCESS) { xf86DrvMsg(handle->scrnIndex, X_INFO, "%s Successful\n",name); return TRUE; } @@ -1959,7 +2086,7 @@ rhdAtomUpdateCRTC_DoubleBufferRegisters(atomBiosHandlePtr handle, enum atomCrtc xf86DrvMsg(handle->scrnIndex, X_INFO, "Calling UpdateCRTC_DoubleBufferRegisters\n"); atomDebugPrintPspace(handle, &data, sizeof(ps)); if (RHDAtomBiosFunc(handle->scrnIndex, handle, - ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { + ATOM_EXEC, &data) == ATOM_SUCCESS) { xf86DrvMsg(handle->scrnIndex, X_INFO, "UpdateCRTC_DoubleBufferRegisters Successful\n"); return TRUE; } @@ -2024,7 +2151,7 @@ rhdAtomEnableCrtc(atomBiosHandlePtr handle, enum atomCrtc CrtcId, xf86DrvMsg(handle->scrnIndex, X_INFO, "Calling EnableCRTC\n"); atomDebugPrintPspace(handle, &data, sizeof(ps)); if (RHDAtomBiosFunc(handle->scrnIndex, handle, - ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { + ATOM_EXEC, &data) == ATOM_SUCCESS) { xf86DrvMsg(handle->scrnIndex, X_INFO, "EnableCRTC Successful\n"); return TRUE; } @@ -2089,7 +2216,7 @@ rhdAtomEnableCrtcMemReq(atomBiosHandlePtr handle, enum atomCrtc CrtcId, xf86DrvMsg(handle->scrnIndex, X_INFO, "Calling EnableCRTCMemReq\n"); atomDebugPrintPspace(handle, &data, sizeof(ps)); if (RHDAtomBiosFunc(handle->scrnIndex, handle, - ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { + ATOM_EXEC, &data) == ATOM_SUCCESS) { xf86DrvMsg(handle->scrnIndex, X_INFO, "EnableCRTCMemReq Successful\n"); return TRUE; } @@ -2169,7 +2296,7 @@ rhdAtomSetCRTCTimings(atomBiosHandlePtr handle, enum atomCrtc id, DisplayModePtr xf86DrvMsg(handle->scrnIndex, X_INFO, "Calling SetCRTC_Timing\n"); atomDebugPrintPspace(handle, &data, sizeof(ps)); if (RHDAtomBiosFunc(handle->scrnIndex, handle, - ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { + ATOM_EXEC, &data) == ATOM_SUCCESS) { xf86DrvMsg(handle->scrnIndex, X_INFO, "SetCRTC_Timing Successful\n"); return TRUE; } @@ -2227,7 +2354,7 @@ rhdAtomSetCRTCOverscan(atomBiosHandlePtr handle, enum atomCrtc id, struct atomCr xf86DrvMsg(handle->scrnIndex, X_INFO, "CallingSetCRTC_OverScan\n"); atomDebugPrintPspace(handle, &data, sizeof(ps)); if (RHDAtomBiosFunc(handle->scrnIndex, handle, - ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { + ATOM_EXEC, &data) == ATOM_SUCCESS) { xf86DrvMsg(handle->scrnIndex, X_INFO, "Set CRTC_OverScan Successful\n"); return TRUE; } @@ -2291,7 +2418,7 @@ rhdAtomBlankCRTC(atomBiosHandlePtr handle, enum atomCrtc id, struct atomCrtcBlan xf86DrvMsg(handle->scrnIndex, X_INFO, "Calling BlankCRTC\n"); atomDebugPrintPspace(handle, &data, sizeof(ps)); if (RHDAtomBiosFunc(handle->scrnIndex, handle, - ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { + ATOM_EXEC, &data) == ATOM_SUCCESS) { xf86DrvMsg(handle->scrnIndex, X_INFO, "BlankCRTC Successful\n"); return TRUE; } @@ -2433,13 +2560,14 @@ rhdAtomSetPixelClock(atomBiosHandlePtr handle, enum atomPxclk PCLKId, struct ato ps.pclk_v2.ucMiscInfo |= (atomGetDevice(handle, Config->u.v2.Device) << MISC_DEVICE_INDEX_SHIFT); RHDDebug(handle->scrnIndex,"%s Device: %i PixelClock: %i RefDiv: 0x%x FbDiv: 0x%x PostDiv: 0x%x " - "PLL: %i Crtc: %i MiscInfo: 0x%x\n", + "FracFbDiv: %i PLL: %i Crtc: %i MiscInfo: 0x%x\n", __func__, Config->u.v2.Device, ps.pclk_v2.usPixelClock, ps.pclk_v2.usRefDiv, ps.pclk_v2.usFbDiv, ps.pclk_v2.ucPostDiv, + ps.pclk_v2.ucFracFbDiv, ps.pclk_v2.ucPpll, ps.pclk_v2.ucCRTC, ps.pclk_v2.ucMiscInfo @@ -2526,13 +2654,14 @@ rhdAtomSetPixelClock(atomBiosHandlePtr handle, enum atomPxclk PCLKId, struct ato | (Config->u.v3.UsePpll ? PIXEL_CLOCK_MISC_USE_ENGINE_FOR_DISPCLK : 0x0) | ((Config->Crtc == atomCrtc2) ? PIXEL_CLOCK_MISC_CRTC_SEL_CRTC2 : PIXEL_CLOCK_MISC_CRTC_SEL_CRTC1); - RHDDebug(handle->scrnIndex,"%s PixelClock: %i RefDiv: 0x%x FbDiv: 0x%x PostDiv: 0x%x PLL: %i OutputType: %x " - "EncoderMode: %x MiscInfo: 0x%x\n", + RHDDebug(handle->scrnIndex,"%s PixelClock: %i RefDiv: 0x%x FbDiv: 0x%x PostDiv: 0x%x FracFbDiv: %i PLL: %i " + "OutputType: %x EncoderMode: %x MiscInfo: 0x%x\n", __func__, ps.pclk_v3.usPixelClock, ps.pclk_v3.usRefDiv, ps.pclk_v3.usFbDiv, ps.pclk_v3.ucPostDiv, + ps.pclk_v3.ucFracFbDiv, ps.pclk_v3.ucPpll, ps.pclk_v3.ucTransmitterId, ps.pclk_v3.ucEncoderMode, @@ -2549,7 +2678,7 @@ rhdAtomSetPixelClock(atomBiosHandlePtr handle, enum atomPxclk PCLKId, struct ato xf86DrvMsg(handle->scrnIndex, X_INFO, "Calling SetPixelClock\n"); atomDebugPrintPspace(handle, &data, sizeof(ps)); if (RHDAtomBiosFunc(handle->scrnIndex, handle, - ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { + ATOM_EXEC, &data) == ATOM_SUCCESS) { xf86DrvMsg(handle->scrnIndex, X_INFO, "SetPixelClock Successful\n"); return TRUE; } @@ -2730,7 +2859,7 @@ rhdAtomSelectCrtcSource(atomBiosHandlePtr handle, enum atomCrtc CrtcId, xf86DrvMsg(handle->scrnIndex, X_INFO, "Calling SelectCRTCSource\n"); atomDebugPrintPspace(handle, &data, sizeof(ps)); if (RHDAtomBiosFunc(handle->scrnIndex, handle, - ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { + ATOM_EXEC, &data) == ATOM_SUCCESS) { xf86DrvMsg(handle->scrnIndex, X_INFO, "SelectCRTCSource Successful\n"); return TRUE; } @@ -2885,11 +3014,11 @@ rhdAtomVramInfoQuery(atomBiosHandlePtr handle, AtomBiosRequestID func, atomDataPtr = handle->atomDataPtr; switch (func) { - case GET_FW_FB_START: + case ATOM_GET_FW_FB_START: *val = atomDataPtr->VRAM_UsageByFirmware ->asFirmwareVramReserveInfo[0].ulStartAddrUsedByFirmware; break; - case GET_FW_FB_SIZE: + case ATOM_GET_FW_FB_SIZE: *val = atomDataPtr->VRAM_UsageByFirmware ->asFirmwareVramReserveInfo[0].usFirmwareUseInKb; break; @@ -3085,7 +3214,7 @@ rhdAtomLvdsGetTimings(atomBiosHandlePtr handle, AtomBiosRequestID func, case 1: switch (func) { - case ATOMBIOS_GET_PANEL_MODE: + case ATOM_GET_PANEL_MODE: data->mode = rhdAtomLvdsTimings(handle, &atomDataPtr->LVDS_Info .LVDS_Info->sLCDTiming); @@ -3096,7 +3225,7 @@ rhdAtomLvdsGetTimings(atomBiosHandlePtr handle, AtomBiosRequestID func, } case 2: switch (func) { - case ATOMBIOS_GET_PANEL_MODE: + case ATOM_GET_PANEL_MODE: data->mode = rhdAtomLvdsTimings(handle, &atomDataPtr->LVDS_Info .LVDS_Info_v12->sLCDTiming); @@ -3104,7 +3233,7 @@ rhdAtomLvdsGetTimings(atomBiosHandlePtr handle, AtomBiosRequestID func, return ATOM_SUCCESS; return ATOM_FAILED; - case ATOMBIOS_GET_PANEL_EDID: + case ATOM_GET_PANEL_EDID: offset = (unsigned long)&atomDataPtr->LVDS_Info.base - (unsigned long)handle->BIOSBase + atomDataPtr->LVDS_Info @@ -3640,34 +3769,34 @@ rhdAtomFirmwareInfoQuery(atomBiosHandlePtr handle, switch (crev) { case 1: switch (func) { - case GET_DEFAULT_ENGINE_CLOCK: + case ATOM_GET_DEFAULT_ENGINE_CLOCK: *val = atomDataPtr->FirmwareInfo .FirmwareInfo->ulDefaultEngineClock * 10; break; - case GET_DEFAULT_MEMORY_CLOCK: + case ATOM_GET_DEFAULT_MEMORY_CLOCK: *val = atomDataPtr->FirmwareInfo .FirmwareInfo->ulDefaultMemoryClock * 10; break; - case GET_MAX_PIXEL_CLOCK_PLL_OUTPUT: + case ATOM_GET_MAX_PIXEL_CLOCK_PLL_OUTPUT: *val = atomDataPtr->FirmwareInfo .FirmwareInfo->ulMaxPixelClockPLL_Output * 10; break; - case GET_MIN_PIXEL_CLOCK_PLL_OUTPUT: + case ATOM_GET_MIN_PIXEL_CLOCK_PLL_OUTPUT: *val = atomDataPtr->FirmwareInfo .FirmwareInfo->usMinPixelClockPLL_Output * 10; - case GET_MAX_PIXEL_CLOCK_PLL_INPUT: + case ATOM_GET_MAX_PIXEL_CLOCK_PLL_INPUT: *val = atomDataPtr->FirmwareInfo .FirmwareInfo->usMaxPixelClockPLL_Input * 10; break; - case GET_MIN_PIXEL_CLOCK_PLL_INPUT: + case ATOM_GET_MIN_PIXEL_CLOCK_PLL_INPUT: *val = atomDataPtr->FirmwareInfo .FirmwareInfo->usMinPixelClockPLL_Input * 10; break; - case GET_MAX_PIXEL_CLK: + case ATOM_GET_MAX_PIXEL_CLK: *val = atomDataPtr->FirmwareInfo .FirmwareInfo->usMaxPixelClock * 10; break; - case GET_REF_CLOCK: + case ATOM_GET_REF_CLOCK: *val = atomDataPtr->FirmwareInfo .FirmwareInfo->usReferenceClock * 10; break; @@ -3676,35 +3805,35 @@ rhdAtomFirmwareInfoQuery(atomBiosHandlePtr handle, } case 2: switch (func) { - case GET_DEFAULT_ENGINE_CLOCK: + case ATOM_GET_DEFAULT_ENGINE_CLOCK: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_2->ulDefaultEngineClock * 10; break; - case GET_DEFAULT_MEMORY_CLOCK: + case ATOM_GET_DEFAULT_MEMORY_CLOCK: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_2->ulDefaultMemoryClock * 10; break; - case GET_MAX_PIXEL_CLOCK_PLL_OUTPUT: + case ATOM_GET_MAX_PIXEL_CLOCK_PLL_OUTPUT: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_2->ulMaxPixelClockPLL_Output * 10; break; - case GET_MIN_PIXEL_CLOCK_PLL_OUTPUT: + case ATOM_GET_MIN_PIXEL_CLOCK_PLL_OUTPUT: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_2->usMinPixelClockPLL_Output * 10; break; - case GET_MAX_PIXEL_CLOCK_PLL_INPUT: + case ATOM_GET_MAX_PIXEL_CLOCK_PLL_INPUT: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_2->usMaxPixelClockPLL_Input * 10; break; - case GET_MIN_PIXEL_CLOCK_PLL_INPUT: + case ATOM_GET_MIN_PIXEL_CLOCK_PLL_INPUT: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_2->usMinPixelClockPLL_Input * 10; break; - case GET_MAX_PIXEL_CLK: + case ATOM_GET_MAX_PIXEL_CLK: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_2->usMaxPixelClock * 10; break; - case GET_REF_CLOCK: + case ATOM_GET_REF_CLOCK: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_2->usReferenceClock * 10; break; @@ -3714,35 +3843,35 @@ rhdAtomFirmwareInfoQuery(atomBiosHandlePtr handle, break; case 3: switch (func) { - case GET_DEFAULT_ENGINE_CLOCK: + case ATOM_GET_DEFAULT_ENGINE_CLOCK: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_3->ulDefaultEngineClock * 10; break; - case GET_DEFAULT_MEMORY_CLOCK: + case ATOM_GET_DEFAULT_MEMORY_CLOCK: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_3->ulDefaultMemoryClock * 10; break; - case GET_MAX_PIXEL_CLOCK_PLL_OUTPUT: + case ATOM_GET_MAX_PIXEL_CLOCK_PLL_OUTPUT: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_3->ulMaxPixelClockPLL_Output * 10; break; - case GET_MIN_PIXEL_CLOCK_PLL_OUTPUT: + case ATOM_GET_MIN_PIXEL_CLOCK_PLL_OUTPUT: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_3->usMinPixelClockPLL_Output * 10; break; - case GET_MAX_PIXEL_CLOCK_PLL_INPUT: + case ATOM_GET_MAX_PIXEL_CLOCK_PLL_INPUT: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_3->usMaxPixelClockPLL_Input * 10; break; - case GET_MIN_PIXEL_CLOCK_PLL_INPUT: + case ATOM_GET_MIN_PIXEL_CLOCK_PLL_INPUT: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_3->usMinPixelClockPLL_Input * 10; break; - case GET_MAX_PIXEL_CLK: + case ATOM_GET_MAX_PIXEL_CLK: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_3->usMaxPixelClock * 10; break; - case GET_REF_CLOCK: + case ATOM_GET_REF_CLOCK: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_3->usReferenceClock * 10; break; @@ -3752,35 +3881,35 @@ rhdAtomFirmwareInfoQuery(atomBiosHandlePtr handle, break; case 4: switch (func) { - case GET_DEFAULT_ENGINE_CLOCK: + case ATOM_GET_DEFAULT_ENGINE_CLOCK: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_4->ulDefaultEngineClock * 10; break; - case GET_DEFAULT_MEMORY_CLOCK: + case ATOM_GET_DEFAULT_MEMORY_CLOCK: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_4->ulDefaultMemoryClock * 10; break; - case GET_MAX_PIXEL_CLOCK_PLL_INPUT: + case ATOM_GET_MAX_PIXEL_CLOCK_PLL_INPUT: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_4->usMaxPixelClockPLL_Input * 10; break; - case GET_MIN_PIXEL_CLOCK_PLL_INPUT: + case ATOM_GET_MIN_PIXEL_CLOCK_PLL_INPUT: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_4->usMinPixelClockPLL_Input * 10; break; - case GET_MAX_PIXEL_CLOCK_PLL_OUTPUT: + case ATOM_GET_MAX_PIXEL_CLOCK_PLL_OUTPUT: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_4->ulMaxPixelClockPLL_Output * 10; break; - case GET_MIN_PIXEL_CLOCK_PLL_OUTPUT: + case ATOM_GET_MIN_PIXEL_CLOCK_PLL_OUTPUT: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_4->usMinPixelClockPLL_Output * 10; break; - case GET_MAX_PIXEL_CLK: + case ATOM_GET_MAX_PIXEL_CLK: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_4->usMaxPixelClock * 10; break; - case GET_REF_CLOCK: + case ATOM_GET_REF_CLOCK: *val = atomDataPtr->FirmwareInfo .FirmwareInfo_V_1_4->usReferenceClock * 10; break; @@ -4429,6 +4558,7 @@ rhdAtomConnectorInfoFromObjectHeader(atomBiosHandlePtr handle, } cp[ncon].Type = rhdAtomGetConnectorID(handle, rhd_connector_objs[obj_id].con, num); cp[ncon].Name = RhdAppendString(cp[ncon].Name,name); + cp[ncon].DDC = RHD_DDC_NONE; for (j = 0; ((j < SrcDstTable->ucNumberOfSrc) && (j < MAX_OUTPUTS_PER_CONNECTOR)); j++) { @@ -4704,38 +4834,53 @@ rhdAtomConnectorInfoFromSupportedDevices(atomBiosHandlePtr handle, cp[ncon].Name = xstrdup(devices[n].name); cp[ncon].Name = RhdAppendString(cp[ncon].Name, devices[n].outputName); - if (devices[n].dual) { - if (devices[n].ddc == RHD_DDC_NONE) + if (devices[n].ddc == RHD_DDC_NONE) { + if (devices[n].dual) xf86DrvMsg(handle->scrnIndex, X_ERROR, "No DDC channel for device %s found." " Cannot find matching device.\n",devices[n].name); - else { - for (i = n + 1; i < ATOM_MAX_SUPPORTED_DEVICE; i++) { - - if (!devices[i].dual) - continue; - - if (devices[n].ddc != devices[i].ddc) - continue; - - if (((devices[n].ot == RHD_OUTPUT_DACA - || devices[n].ot == RHD_OUTPUT_DACB) - && (devices[i].ot == RHD_OUTPUT_LVTMA - || devices[i].ot == RHD_OUTPUT_TMDSA)) - || ((devices[i].ot == RHD_OUTPUT_DACA - || devices[i].ot == RHD_OUTPUT_DACB) - && (devices[n].ot == RHD_OUTPUT_LVTMA - || devices[n].ot == RHD_OUTPUT_TMDSA))) { - - cp[ncon].Output[1] = devices[i].ot; - - if (cp[ncon].HPD == RHD_HPD_NONE) - cp[ncon].HPD = devices[i].hpd; - - cp[ncon].Name = RhdAppendString(cp[ncon].Name, - devices[i].outputName); - devices[i].ot = RHD_OUTPUT_NONE; /* zero the device */ - } + } else { + for (i = n + 1; i < ATOM_MAX_SUPPORTED_DEVICE; i++) { + + if (!devices[n].dual && !devices[i].dual) + continue; + + if (devices[n].ddc != devices[i].ddc) + continue; + + if ((devices[n].ot == RHD_OUTPUT_DACA + || devices[n].ot == RHD_OUTPUT_DACB) + && (devices[i].ot == RHD_OUTPUT_LVTMA + || devices[i].ot == RHD_OUTPUT_TMDSA)) { + + /* If VGA is listed before DVI, swap */ + cp[ncon].Output[0] = devices[i].ot; + cp[ncon].Output[1] = devices[n].ot; + cp[ncon].Type = devices[i].con; + + if (cp[ncon].HPD == RHD_HPD_NONE) + cp[ncon].HPD = devices[i].hpd; + + xfree (cp[ncon].Name); + cp[ncon].Name = xstrdup(devices[i].name); + cp[ncon].Name = RhdAppendString(cp[ncon].Name, + devices[i].outputName); + cp[ncon].Name = RhdAppendString(cp[ncon].Name, + devices[n].outputName); + devices[i].ot = RHD_OUTPUT_NONE; /* zero the device */ + } else if ((devices[i].ot == RHD_OUTPUT_DACA + || devices[i].ot == RHD_OUTPUT_DACB) + && (devices[n].ot == RHD_OUTPUT_LVTMA + || devices[n].ot == RHD_OUTPUT_TMDSA)) { + + cp[ncon].Output[1] = devices[i].ot; + + if (cp[ncon].HPD == RHD_HPD_NONE) + cp[ncon].HPD = devices[i].hpd; + + cp[ncon].Name = RhdAppendString(cp[ncon].Name, + devices[i].outputName); + devices[i].ot = RHD_OUTPUT_NONE; /* zero the device */ } } } @@ -4884,6 +5029,7 @@ rhdAtomExec (atomBiosHandlePtr handle, int idx = data->exec.index; void *pspace = data->exec.pspace; pointer *dataSpace = data->exec.dataSpace; + unsigned short offset; RHDFUNCI(handle->scrnIndex); @@ -4901,6 +5047,15 @@ rhdAtomExec (atomBiosHandlePtr handle, } else *dataSpace = (CARD8*)handle->scratchBase; } + + /* OMFG - ParseTable returns CD_SUCCESS if the command table does not exist */ + offset = ((USHORT *)&(((ATOM_MASTER_COMMAND_TABLE *)handle->codeTable) + ->ListOfCommandTables))[idx]; + if (! offset) { + xf86DrvMsg(handle->scrnIndex, X_WARNING, "AtomBIOS command table %d does not exist\n", idx); + return ATOM_NOT_IMPLEMENTED; + } + ret = ParseTableWrapper(pspace, idx, handle, handle->BIOSBase, &msg); @@ -4925,7 +5080,7 @@ RHDAtomBiosFunc(int scrnIndex, atomBiosHandlePtr handle, RHDFUNCI(scrnIndex); - for (i = 0; AtomBiosRequestList[i].id != FUNC_END; i++) { + for (i = 0; AtomBiosRequestList[i].id != ATOM_FUNC_END; i++) { if (id == AtomBiosRequestList[i].id) { req_func = AtomBiosRequestList[i].request; msg = AtomBiosRequestList[i].message; @@ -4939,10 +5094,10 @@ RHDAtomBiosFunc(int scrnIndex, atomBiosHandlePtr handle, return ATOM_NOT_IMPLEMENTED; } /* Hack for now */ - if (id == ATOMBIOS_INIT) + if (id == ATOM_INIT) data->val = scrnIndex; - if (id == ATOMBIOS_INIT || handle) + if (id == ATOM_INIT || handle) ret = req_func(handle, id, data); if (ret == ATOM_SUCCESS) { @@ -5099,6 +5254,356 @@ atomRestoreRegisters(atomBiosHandlePtr handle, AtomBiosRequestID func, AtomBiosA return ATOM_SUCCESS; } +static AtomBiosResult +rhdAtomGetClock(atomBiosHandlePtr handle, AtomBiosRequestID func, AtomBiosArgPtr data) +{ + AtomBiosArgRec idx; + GET_ENGINE_CLOCK_PARAMETERS eng_p; + GET_MEMORY_CLOCK_PARAMETERS mem_p; + + RHDFUNC(handle); + + idx.exec.dataSpace = NULL; + + if (func == ATOM_GET_ENGINE_CLOCK) { + idx.exec.index = GetIndexIntoMasterTable(COMMAND, GetEngineClock); + idx.exec.pspace = &eng_p; + } else if (func == ATOM_GET_MEMORY_CLOCK) { + idx.exec.index = GetIndexIntoMasterTable(COMMAND, GetMemoryClock); + idx.exec.pspace = &mem_p; + } else + return ATOM_NOT_IMPLEMENTED; + + if (RHDAtomBiosFunc(handle->scrnIndex, handle, + ATOM_EXEC, &idx) == ATOM_SUCCESS) { + data->val = (func == ATOM_GET_ENGINE_CLOCK) ? + eng_p.ulReturnEngineClock : + mem_p.ulReturnMemoryClock; + data->val *= 10; + return ATOM_SUCCESS; + } + + return ATOM_FAILED; +} + +static AtomBiosResult +rhdAtomSetClock(atomBiosHandlePtr handle, AtomBiosRequestID func, AtomBiosArgPtr data) +{ + AtomBiosArgRec execData; + SET_ENGINE_CLOCK_PS_ALLOCATION eng_clock_ps; + SET_MEMORY_CLOCK_PS_ALLOCATION mem_clock_ps; + + RHDFUNC(handle); + execData.exec.dataSpace = NULL; + + if (func == ATOM_SET_ENGINE_CLOCK) { + eng_clock_ps.ulTargetEngineClock = data->clockValue / 10; + execData.exec.index = GetIndexIntoMasterTable(COMMAND, SetEngineClock); + execData.exec.pspace = &eng_clock_ps; + xf86DrvMsg(handle->scrnIndex, X_INFO, "Attempting to set Engine Clock to %lu\n", data->clockValue); + } else if (func == ATOM_SET_MEMORY_CLOCK) { + mem_clock_ps.ulTargetMemoryClock = data->clockValue / 10; + execData.exec.index = GetIndexIntoMasterTable(COMMAND, SetMemoryClock); + execData.exec.pspace = &mem_clock_ps; + xf86DrvMsg(handle->scrnIndex, X_INFO, "Attempting to set Memory Clock to %lu\n", data->clockValue); + } else + return ATOM_NOT_IMPLEMENTED; + + if (RHDAtomBiosFunc(handle->scrnIndex, handle, + ATOM_EXEC, &execData) == ATOM_SUCCESS) { + return ATOM_SUCCESS; + } + + xf86DrvMsg(handle->scrnIndex, X_WARNING, "Failed to set %s Clock\n", + (func == ATOM_SET_ENGINE_CLOCK) ? "Engine" : "Memory"); + return ATOM_FAILED; +} + +static AtomBiosResult +rhdAtomPmSetup(atomBiosHandlePtr handle, AtomBiosRequestID func, AtomBiosArgPtr data) +{ + AtomBiosArgRec execData; + ENABLE_ASIC_STATIC_PWR_MGT_PS_ALLOCATION pwrmgt_ps; + DYNAMIC_CLOCK_GATING_PS_ALLOCATION dynclk_ps; + + RHDFUNC(handle); + execData.exec.dataSpace = NULL; + + if (func == ATOM_PM_SETUP) { + pwrmgt_ps.ucEnable = data->val; + execData.exec.index = GetIndexIntoMasterTable(COMMAND, EnableASIC_StaticPwrMgt); + execData.exec.pspace = &pwrmgt_ps; + xf86DrvMsg(handle->scrnIndex, X_INFO, "Attempting to %sable power management\n", data->val ? "en":"dis"); + } else if (func == ATOM_PM_CLOCKGATING_SETUP) { + dynclk_ps.ucEnable = data->val; + execData.exec.index = GetIndexIntoMasterTable(COMMAND, DynamicClockGating); + execData.exec.pspace = &dynclk_ps; + xf86DrvMsg(handle->scrnIndex, X_INFO, "Attempting to %sable clock gating\n", data->val ? "en":"dis"); + } else + return ATOM_NOT_IMPLEMENTED; + + if (RHDAtomBiosFunc(handle->scrnIndex, handle, + ATOM_EXEC, &execData) == ATOM_SUCCESS) { + return ATOM_SUCCESS; + } + + xf86DrvMsg(handle->scrnIndex, X_WARNING, "Failed to set %s\n", + (func == ATOM_PM_SETUP) ? "power management" : "dynamic clock gating"); + return ATOM_FAILED; +} + +static AtomBiosResult +rhdAtomChipLimits(atomBiosHandlePtr handle, AtomBiosRequestID func, AtomBiosArgPtr data) +{ + atomDataTablesPtr atomDataPtr = handle->atomDataPtr; + AtomBiosArgRec execData; + ATOM_VOLTAGE_OBJECT_INFO *voltage; + AtomChipLimits *lim = &data->chipLimits; + CARD8 crev, frev; + uint16_t FirmwareInfoRev = 0; + + RHDFUNC(handle); + memset (lim, 0, sizeof (*lim)); + + if (rhdAtomGetTableRevisionAndSize ( + (ATOM_COMMON_TABLE_HEADER *)(atomDataPtr->FirmwareInfo.base), + &crev,&frev,NULL)) + FirmwareInfoRev = (frev << 8) | crev; + + xf86DrvMsg (handle->scrnIndex, X_INFO, "FirmwareInfo Revision %04x\n", FirmwareInfoRev); + switch (FirmwareInfoRev) { + case 0x104: + { + ATOM_FIRMWARE_INFO_V1_4 *fw = atomDataPtr->FirmwareInfo.FirmwareInfo_V_1_4; + lim->Default.VDDCVoltage = fw->usBootUpVDDCVoltage; + } + case 0x103: /* fall through */ + { + ATOM_FIRMWARE_INFO_V1_3 *fw = atomDataPtr->FirmwareInfo.FirmwareInfo_V_1_3; + xf86DrvMsg (handle->scrnIndex, X_INFO, "Unused attribute: ul3DAccelerationEngineClock %lu\n", + (unsigned long) fw->ul3DAccelerationEngineClock * 10); + } + case 0x102: /* fall through */ + case 0x101: /* fall through */ + { + ATOM_FIRMWARE_INFO *fw = atomDataPtr->FirmwareInfo.FirmwareInfo; + lim->Maximum.EngineClock = fw->ulASICMaxEngineClock * 10; + lim->Maximum.MemoryClock = fw->ulASICMaxMemoryClock * 10; + /* Scary bits: PLL post divider is 2 ?!? Minimum for pixel PLL, so probably here as well */ + lim->Minimum.EngineClock = fw->usMinEngineClockPLL_Output * 5; + lim->Minimum.MemoryClock = fw->usMinMemoryClockPLL_Output * 5; + xf86DrvMsg (handle->scrnIndex, X_INFO, "Unused attribute: ulDriverTargetEngineClock %lu\n", + (unsigned long) fw->ulDriverTargetEngineClock * 10); + xf86DrvMsg (handle->scrnIndex, X_INFO, "Unused attribute: ulDriverTargetMemoryClock %lu\n", + (unsigned long) fw->ulDriverTargetMemoryClock * 10); + xf86DrvMsg (handle->scrnIndex, X_INFO, "Unused attribute: ucASICMaxTemperature %d\n", + (int) fw->ucASICMaxTemperature); + xf86DrvMsg (handle->scrnIndex, X_INFO, "Scary bits: Estimated MinEngineClock %d kHz\n", + (int) fw->usMinEngineClockPLL_Output * 5); + xf86DrvMsg (handle->scrnIndex, X_INFO, "Scary bits: Estimated MinMemoryClock %d kHz\n", + (int) fw->usMinMemoryClockPLL_Output * 5); + break; + } + default: + xf86DrvMsg(handle->scrnIndex, X_ERROR, "Unusupported FirmwareInfo Revision\n"); + return ATOM_NOT_IMPLEMENTED; + } + + if ( (voltage = atomDataPtr->VoltageObjectInfo) ) { + char *last = ((char *) voltage) + voltage->sHeader.usStructureSize; + while ((char *) &voltage->asVoltageObj[0].ucVoltageType < last) { + if (voltage->asVoltageObj[0].ucVoltageType == SET_VOLTAGE_TYPE_ASIC_VDDC) { + lim->Minimum.VDDCVoltage = voltage->asVoltageObj[0].asFormula.usVoltageBaseLevel; + lim->Maximum.VDDCVoltage = lim->Minimum.VDDCVoltage + + voltage->asVoltageObj[0].asFormula.usVoltageStep * + (voltage->asVoltageObj[0].asFormula.ucNumOfVoltageEntries - 1) / + (voltage->asVoltageObj[0].asFormula.ucFlag & 0x01 ? 2 : 1); + break; + } + voltage = (ATOM_VOLTAGE_OBJECT_INFO *) (((char *) voltage) + voltage->asVoltageObj[0].ucSize); + } + } else + xf86DrvMsg (handle->scrnIndex, X_INFO, "No VoltageObjectInfo table\n"); + + if (RHDAtomBiosFunc (handle->scrnIndex, handle, ATOM_GET_DEFAULT_ENGINE_CLOCK, + &execData) == ATOM_SUCCESS) + lim->Default.EngineClock = execData.val; + if (RHDAtomBiosFunc (handle->scrnIndex, handle, ATOM_GET_DEFAULT_MEMORY_CLOCK, + &execData) == ATOM_SUCCESS) + lim->Default.MemoryClock = execData.val; + + return ATOM_SUCCESS; +} + + +static AtomBiosResult +rhdAtomChipConfigs(atomBiosHandlePtr handle, AtomBiosRequestID func, AtomBiosArgPtr data) +{ + atomDataTablesPtr atomDataPtr = handle->atomDataPtr; + AtomChipConfigs *conf = &data->chipConfigs; + CARD8 crev, frev; + uint16_t PowerPlayInfoRev = 0; + + RHDFUNC(handle); + memset (conf, 0, sizeof (*conf)); + + if (rhdAtomGetTableRevisionAndSize ( + (ATOM_COMMON_TABLE_HEADER *)(atomDataPtr->PowerPlayInfo.base), + &crev,&frev,NULL)) + PowerPlayInfoRev = (frev << 8) | crev; + xf86DrvMsg (handle->scrnIndex, X_INFO, "PowerPlayInfo Revision %04x\n", PowerPlayInfoRev); + + switch (PowerPlayInfoRev) { + case 0x101: + case 0x201: + case 0x301: + xf86DrvMsg (handle->scrnIndex, X_WARNING, "PowerPlayInfo Revision not yet implemented\n"); + return ATOM_NOT_IMPLEMENTED; + + case 0x401: + { + ATOM_POWERPLAY_INFO_V4 *pp = atomDataPtr->PowerPlayInfo.PowerPlayInfo_V_4_1; + unsigned char *uc = ((unsigned char *)pp) + _U16 (pp->OffsetPowerIndexEntries); /* ATOM_POWERINDEX_INFO_V4 */ + ATOM_POWERMODE_INFO_V4 *pm = (ATOM_POWERMODE_INFO_V4 *) (((unsigned char *)pp) + _U16 (pp->OffsetPowerModeEntries)); + ATOM_POWERUNKNOWN_INFO_V4 *pu = (ATOM_POWERUNKNOWN_INFO_V4 *) (((unsigned char *)pp) + _U16 (pp->OffsetPowerUnknownEntries)); + int i, j, num = 0; + + for (i = 0; i < pp->NumPowerIndexEntries && uc < (unsigned char *) pm; i++) { + uc++; /* First entry is index */ + for (j = 1; j < pp->SizeOfPowerIndexEntry; j++) { + if (*uc > num) + num = *uc; + uc++; + } + } + conf->num = num; + if (i < pp->NumPowerIndexEntries) + xf86DrvMsg (handle->scrnIndex, X_ERROR, + "Expected %d ATOM_POWERINDEX_INFO_V4 entries, got only %d\n", num, i); + + conf->Settings = xnfcalloc (num, sizeof (struct rhdPowerState)); + for (i = 0; i < num && pm < (ATOM_POWERMODE_INFO_V4 *) pu; i++) { + conf->Settings[i].EngineClock = _U24 (pm->engineClock) * 10; + conf->Settings[i].MemoryClock = _U24 (pm->memoryClock) * 10; + conf->Settings[i].VDDCVoltage = _U16 (pm->voltage); + pm++; + } + if (i < num) + xf86DrvMsg (handle->scrnIndex, X_ERROR, + "Expected %d ATOM_POWERMODE_INFO_V4 entries, got only %d\n", num, i); + + return ATOM_SUCCESS; + } + + default: + xf86DrvMsg (handle->scrnIndex, X_ERROR, "Unusupported PowerPlayInfo Revision\n"); + return ATOM_NOT_IMPLEMENTED; + } +} + +#define SET_VOLTAGE_GET_MAX_VOLTAGE 6 +static AtomBiosResult +rhdAtomGetVoltage (atomBiosHandlePtr handle, AtomBiosRequestID func, AtomBiosArgPtr data) +{ + AtomBiosArgRec execData; + CARD8 crev, frev; + uint16_t SetVoltageRev = 0; + int SetVoltageIdx; + + RHDFUNC(handle); + + SetVoltageIdx = GetIndexIntoMasterTable (COMMAND, SetVoltage); + if (rhdAtomGetCommandTableRevisionSize (handle, SetVoltageIdx, &crev, &frev, NULL)) + SetVoltageRev = (frev << 8) | crev; + + execData.exec.dataSpace = NULL; + + switch (SetVoltageRev) { + case 0x0101: + { + SET_VOLTAGE_PARAMETERS setVolt; + xf86DrvMsg (handle->scrnIndex, X_WARNING, "Not supporting SetVoltage V1 yet\n"); + setVolt.ucVoltageType = SET_VOLTAGE_GET_MAX_VOLTAGE; + setVolt.ucVoltageMode = SET_ASIC_VOLTAGE_MODE_ALL_SOURCE; + setVolt.ucVoltageIndex = 0; + execData.exec.index = SetVoltageIdx; + execData.exec.pspace = &setVolt; + if (RHDAtomBiosFunc (handle->scrnIndex, handle, ATOM_EXEC, &execData) == ATOM_SUCCESS) { + xf86DrvMsg (handle->scrnIndex, X_INFO, + "Unused attribute: SET_VOLTAGE_GET_MAX_VOLTAGE: type %d mode %d index %d\n", + setVolt.ucVoltageType, setVolt.ucVoltageMode, setVolt.ucVoltageIndex); + /* TODO: Map index into voltage */ + } + return ATOM_NOT_IMPLEMENTED; + } + case 0x0102: + { + SET_VOLTAGE_PARAMETERS_V2 setVolt2; + setVolt2.ucVoltageType = SET_VOLTAGE_GET_MAX_VOLTAGE; + setVolt2.ucVoltageMode = SET_ASIC_VOLTAGE_MODE_GET_GPIOVAL; + setVolt2.usVoltageLevel = 0; + execData.exec.index = SetVoltageIdx; + execData.exec.pspace = &setVolt2; + if (RHDAtomBiosFunc (handle->scrnIndex, handle, ATOM_EXEC, &execData) == ATOM_SUCCESS) { + data->val = setVolt2.usVoltageLevel; + return ATOM_SUCCESS; + } + return ATOM_FAILED; + } + default: + xf86DrvMsg(handle->scrnIndex, X_WARNING, "Unusupported SetVoltage Revision\n"); + return ATOM_NOT_IMPLEMENTED; + } +} + +static AtomBiosResult +rhdAtomSetVoltage (atomBiosHandlePtr handle, AtomBiosRequestID func, AtomBiosArgPtr data) +{ + AtomBiosArgRec execData; + CARD8 crev, frev; + uint16_t SetVoltageRev = 0; + int SetVoltageIdx; + + RHDFUNC(handle); + + SetVoltageIdx = GetIndexIntoMasterTable (COMMAND, SetVoltage); + if (rhdAtomGetCommandTableRevisionSize (handle, SetVoltageIdx, &crev, &frev, NULL)) + SetVoltageRev = (frev << 8) | crev; + + execData.exec.dataSpace = NULL; + + switch (SetVoltageRev) { + case 0x0101: + { +#if 0 + SET_VOLTAGE_PARAMETERS setVolt; + setVolt.ucVoltageType = SET_VOLTAGE_TYPE_ASIC_VDDC; + setVolt.ucVoltageMode = SET_ASIC_VOLTAGE_MODE_ALL_SOURCE; + setVolt.ucVoltageIndex = ###INDEX###; + execData.exec.index = SetVoltageIdx; + execData.exec.pspace = &setVolt; + return RHDAtomBiosFunc (handle->scrnIndex, handle, ATOM_EXEC, &execData); +#endif + xf86DrvMsg (handle->scrnIndex, X_WARNING, "Not supporting SetVoltage V1 yet\n"); + return ATOM_NOT_IMPLEMENTED; + } + case 0x0102: + { + SET_VOLTAGE_PARAMETERS_V2 setVolt2; + setVolt2.ucVoltageType = SET_VOLTAGE_TYPE_ASIC_VDDC; + setVolt2.ucVoltageMode = SET_ASIC_VOLTAGE_MODE_ALL_SOURCE; + setVolt2.usVoltageLevel = data->val; + execData.exec.index = SetVoltageIdx; + execData.exec.pspace = &setVolt2; + return RHDAtomBiosFunc (handle->scrnIndex, handle, ATOM_EXEC, &execData); + } + default: + xf86DrvMsg(handle->scrnIndex, X_WARNING, "Unusupported SetVoltage Revision\n"); + return ATOM_NOT_IMPLEMENTED; + } +} + + # ifdef ATOM_BIOS_PARSER #define ALLOC_CNT 25 diff --git a/driver/xf86-video-radeonhd/src/rhd_atombios.h b/driver/xf86-video-radeonhd/src/rhd_atombios.h index 56e4a3936..16c24f592 100644 --- a/driver/xf86-video-radeonhd/src/rhd_atombios.h +++ b/driver/xf86-video-radeonhd/src/rhd_atombios.h @@ -37,27 +37,27 @@ #define RHD_ATOMBIOS_OUTPUT 8 typedef enum _AtomBiosRequestID { - ATOMBIOS_INIT, - ATOMBIOS_TEARDOWN, + ATOM_INIT, + ATOM_TEARDOWN, # ifdef ATOM_BIOS_PARSER - ATOMBIOS_EXEC, + ATOM_EXEC, # endif - ATOMBIOS_ALLOCATE_FB_SCRATCH, - ATOMBIOS_GET_CONNECTORS, - ATOMBIOS_GET_OUTPUT_DEVICE_LIST, - ATOMBIOS_GET_PANEL_MODE, - ATOMBIOS_GET_PANEL_EDID, - ATOMBIOS_GET_CODE_DATA_TABLE, - GET_DEFAULT_ENGINE_CLOCK, - GET_DEFAULT_MEMORY_CLOCK, - GET_MAX_PIXEL_CLOCK_PLL_OUTPUT, - GET_MIN_PIXEL_CLOCK_PLL_OUTPUT, - GET_MAX_PIXEL_CLOCK_PLL_INPUT, - GET_MIN_PIXEL_CLOCK_PLL_INPUT, - GET_MAX_PIXEL_CLK, - GET_REF_CLOCK, - GET_FW_FB_START, - GET_FW_FB_SIZE, + ATOM_ALLOCATE_FB_SCRATCH, + ATOM_GET_CONNECTORS, + ATOM_GET_OUTPUT_DEVICE_LIST, + ATOM_GET_PANEL_MODE, + ATOM_GET_PANEL_EDID, + ATOM_GET_CODE_DATA_TABLE, + ATOM_GET_DEFAULT_ENGINE_CLOCK, + ATOM_GET_DEFAULT_MEMORY_CLOCK, + ATOM_GET_MAX_PIXEL_CLOCK_PLL_OUTPUT, + ATOM_GET_MIN_PIXEL_CLOCK_PLL_OUTPUT, + ATOM_GET_MAX_PIXEL_CLOCK_PLL_INPUT, + ATOM_GET_MIN_PIXEL_CLOCK_PLL_INPUT, + ATOM_GET_MAX_PIXEL_CLK, + ATOM_GET_REF_CLOCK, + ATOM_GET_FW_FB_START, + ATOM_GET_FW_FB_SIZE, ATOM_TMDS_MAX_FREQUENCY, ATOM_TMDS_PLL_CHARGE_PUMP, ATOM_TMDS_PLL_DUTY_CYCLE, @@ -101,7 +101,17 @@ typedef enum _AtomBiosRequestID { ATOM_GET_PCIE_LANES, ATOM_SET_REGISTER_LIST_LOCATION, ATOM_RESTORE_REGISTERS, - FUNC_END + ATOM_GET_ENGINE_CLOCK, + ATOM_GET_MEMORY_CLOCK, + ATOM_SET_ENGINE_CLOCK, + ATOM_SET_MEMORY_CLOCK, + ATOM_PM_SETUP, + ATOM_PM_CLOCKGATING_SETUP, + ATOM_GET_CHIP_LIMITS, + ATOM_GET_VOLTAGE, + ATOM_SET_VOLTAGE, + ATOM_GET_CHIP_CONFIGS, + ATOM_FUNC_END } AtomBiosRequestID; typedef enum _AtomBiosResult { @@ -187,6 +197,20 @@ typedef struct AtomGoldenSettings } AtomGoldenSettings; +typedef struct AtomChipLimits +{ + struct rhdPowerState Minimum; + struct rhdPowerState Maximum; + struct rhdPowerState Default; +} AtomChipLimits; + +typedef struct AtomChipConfigs +{ + int num; + struct rhdPowerState *Settings; +} AtomChipConfigs; + + typedef union AtomBiosArg { CARD32 val; @@ -209,6 +233,9 @@ typedef union AtomBiosArg AtomExecRec exec; AtomFbRec fb; enum RHD_TV_MODE tvMode; + unsigned long clockValue; + AtomChipLimits chipLimits; + AtomChipConfigs chipConfigs; } AtomBiosArgRec, *AtomBiosArgPtr; enum atomCrtc { @@ -485,6 +512,9 @@ struct atomCrtcBlank { unsigned short r, g, b; }; +extern int rhdUpdateAtomBIOSUsage(RHDPtr rhdPtr, char *string); +extern char *rhdReturnAtomBIOSUsage(RHDPtr rhdPtr); + extern AtomBiosResult RHDAtomBiosFunc(int scrnIndex, atomBiosHandlePtr handle, AtomBiosRequestID id, AtomBiosArgPtr data); diff --git a/driver/xf86-video-radeonhd/src/rhd_atomout.c b/driver/xf86-video-radeonhd/src/rhd_atomout.c index 1d1662ac9..9d50ade9f 100644 --- a/driver/xf86-video-radeonhd/src/rhd_atomout.c +++ b/driver/xf86-video-radeonhd/src/rhd_atomout.c @@ -1,7 +1,7 @@ /* - * Copyright 2007, 2008 Luc Verhaegen <libv@exsuse.de> - * Copyright 2007, 2008 Matthias Hopf <mhopf@novell.com> - * Copyright 2007, 2008 Egbert Eich <eich@novell.com> + * Copyright 2007 - 2009 Luc Verhaegen <libv@exsuse.de> + * Copyright 2007 - 2009 Matthias Hopf <mhopf@novell.com> + * Copyright 2007 - 2009 Egbert Eich <eich@novell.com> * Copyright 2007, 2008 Advanced Micro Devices, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -46,6 +46,7 @@ #include "rhd_atomout.h" #include "rhd_biosscratch.h" #include "rhd_hdmi.h" +#include "rhd_acpi.h" #if defined (ATOM_BIOS) && defined (ATOM_BIOS_PARSER) struct rhdAtomOutputPrivate { @@ -81,6 +82,8 @@ struct rhdAtomOutputPrivate { struct rhdHdmi *Hdmi; int BlLevel; + void (*SetBacklight)(struct rhdOutput *Output, int val); + int (*GetBacklight)(struct rhdOutput *Output); }; #define ERROR_MSG(x) xf86DrvMsg(Output->scrnIndex, X_ERROR, "%s: %s failed.\n", __func__, x) @@ -278,14 +281,12 @@ atomSetBacklightFromBIOSScratch(struct rhdOutput *Output) * */ static void -atomSetBacklight(struct rhdOutput *Output) +atomSetBacklight(struct rhdOutput *Output, int val) { RHDPtr rhdPtr = RHDPTRI(Output); - struct rhdAtomOutputPrivate *Private = (struct rhdAtomOutputPrivate *) Output->Private; - RHDFUNC(Output); - RHDAtomBIOSScratchBlLevel(rhdPtr, rhdBIOSScratchBlSet, &Private->BlLevel); + RHDAtomBIOSScratchBlLevel(rhdPtr, rhdBIOSScratchBlSet, &val); atomSetBacklightFromBIOSScratch(Output); } @@ -532,6 +533,7 @@ rhdAtomOutputRestore(struct rhdOutput *Output) data.Address = &Private->Save; RHDAtomBiosFunc(Output->scrnIndex, rhdPtr->atomBIOS, ATOM_RESTORE_REGISTERS, &data); + /* ??? */ if (Output->Connector && Output->Connector->Type == RHD_CONNECTOR_PANEL) atomSetBacklightFromBIOSScratch(Output); RHDHdmiRestore(Private->Hdmi); @@ -566,13 +568,33 @@ rhdAtomOutputModeValid(struct rhdOutput *Output, DisplayModePtr Mode) return MODE_OK; } +/* + * + */ +static int +atomGetBacklight(struct rhdOutput *Output) +{ + RHDPtr rhdPtr = RHDPTRI(Output); + struct rhdAtomOutputPrivate *Private = (struct rhdAtomOutputPrivate *) Output->Private; + int level; + + RHDFUNC(Output); + + if (Private->BlLevel == -1) return -1; + + RHDAtomBIOSScratchBlLevel(rhdPtr, rhdBIOSScratchBlSet, &level); + + return level; +} + /* * */ static Bool -LVDSInfoRetrieve(RHDPtr rhdPtr, struct rhdAtomOutputPrivate *Private) +LVDSInfoRetrieve(struct rhdOutput *Output, struct rhdAtomOutputPrivate *Private) { + RHDPtr rhdPtr = RHDPTRI(Output); AtomBiosArgRec data; if (RHDAtomBiosFunc(rhdPtr->scrnIndex, rhdPtr->atomBIOS, @@ -625,7 +647,14 @@ LVDSInfoRetrieve(RHDPtr rhdPtr, struct rhdAtomOutputPrivate *Private) } Private->Coherent = FALSE; - RHDAtomBIOSScratchBlLevel(rhdPtr, rhdBIOSScratchBlGet, &Private->BlLevel); + if ((Private->BlLevel = RhdACPIGetBacklightControl(Output)) >= 0) { + Private->SetBacklight = RhdACPISetBacklightControl; + Private->GetBacklight = RhdACPIGetBacklightControl; + } else { + RHDAtomBIOSScratchBlLevel(rhdPtr, rhdBIOSScratchBlGet, &Private->BlLevel); + Private->SetBacklight = atomSetBacklight; + Private->GetBacklight = atomGetBacklight; + } return TRUE; } @@ -666,6 +695,7 @@ atomLVDSPropertyControl(struct rhdOutput *Output, return FALSE; } case rhdPropertyGet: + Private->BlLevel = Private->GetBacklight(Output); if (Private->BlLevel < 0) return FALSE; switch (Property) { @@ -690,7 +720,7 @@ atomLVDSPropertyControl(struct rhdOutput *Output, case rhdPropertyCommit: switch (Property) { case RHD_OUTPUT_BACKLIGHT: - atomSetBacklight(Output); + Private->SetBacklight(Output,Private->BlLevel); return TRUE; default: return FALSE; @@ -715,6 +745,7 @@ atomTMDSPropertyControl(struct rhdOutput *Output, switch (Property) { case RHD_OUTPUT_COHERENT: case RHD_OUTPUT_HDMI: + case RHD_OUTPUT_AUDIO_WORKAROUND: return TRUE; default: return FALSE; @@ -727,6 +758,9 @@ atomTMDSPropertyControl(struct rhdOutput *Output, case RHD_OUTPUT_HDMI: val->Bool = atomIsHdmiEnabled(Output); return TRUE; + case RHD_OUTPUT_AUDIO_WORKAROUND: + val->Bool = RHDHdmiGetAudioWorkaround(Private->Hdmi); + return TRUE; default: return FALSE; } @@ -739,6 +773,9 @@ atomTMDSPropertyControl(struct rhdOutput *Output, case RHD_OUTPUT_HDMI: atomSetHdmiEnabled(Output, val->Bool); break; + case RHD_OUTPUT_AUDIO_WORKAROUND: + RHDHdmiSetAudioWorkaround(Private->Hdmi, val->Bool); + break; default: return FALSE; } @@ -750,6 +787,9 @@ atomTMDSPropertyControl(struct rhdOutput *Output, Output->Mode(Output, Private->Mode); Output->Power(Output, RHD_POWER_ON); break; + case RHD_OUTPUT_AUDIO_WORKAROUND: + RHDHdmiCommitAudioWorkaround(Private->Hdmi); + break; default: return FALSE; } @@ -946,7 +986,7 @@ RHDAtomOutputInit(RHDPtr rhdPtr, rhdConnectorType ConnectorType, if (OutputType == RHD_OUTPUT_LVTMA) { if (ConnectorType == RHD_CONNECTOR_PANEL) { Private->OutputControlId = atomLCDOutput; - LVDSInfoRetrieve(rhdPtr, Private); + LVDSInfoRetrieve(Output, Private); Private->RunDualLink = Private->DualLink; Private->EncoderId = atomEncoderLVDS; } else { @@ -1051,7 +1091,7 @@ RHDAtomOutputInit(RHDPtr rhdPtr, rhdConnectorType ConnectorType, if (ConnectorType == RHD_CONNECTOR_PANEL) { TransmitterConfig->Mode = EncoderConfig->u.dig.EncoderMode = atomLVDS; - LVDSInfoRetrieve(rhdPtr, Private); + LVDSInfoRetrieve(Output, Private); Private->Hdmi = NULL; } else { TransmitterConfig->Mode = EncoderConfig->u.dig.EncoderMode = atomDVI; @@ -1125,7 +1165,7 @@ RHDAtomOutputInit(RHDPtr rhdPtr, rhdConnectorType ConnectorType, } if (ConnectorType == RHD_CONNECTOR_PANEL) - LVDSInfoRetrieve(rhdPtr, Private); + LVDSInfoRetrieve(Output, Private); else TMDSInfoRetrieve(rhdPtr, Private); @@ -1163,7 +1203,7 @@ RHDAtomOutputInit(RHDPtr rhdPtr, rhdConnectorType ConnectorType, } if (ConnectorType == RHD_CONNECTOR_PANEL) { Output->Property = atomLVDSPropertyControl; - LVDSInfoRetrieve(rhdPtr, Private); + LVDSInfoRetrieve(Output, Private); } else { Output->Property = atomTMDSPropertyControl; TMDSInfoRetrieve(rhdPtr, Private); @@ -1200,13 +1240,13 @@ RhdAtomSetupBacklightControlProperty(struct rhdOutput *Output, RHDFUNC(Output); Private = xnfcalloc(sizeof(struct rhdAtomOutputPrivate), 1); + TransmitterConfig = &Private->TransmitterConfig; switch (Output->Id) { case RHD_OUTPUT_KLDSKP_LVTMA: case RHD_OUTPUT_UNIPHYE: case RHD_OUTPUT_UNIPHYF: /* We set up a those parameters although they may never be needed for BL control */ - TransmitterConfig = &Private->TransmitterConfig; switch (Output->Id) { case RHD_OUTPUT_KLDSKP_LVTMA: Private->TransmitterId = atomTransmitterLVTMA; @@ -1222,7 +1262,6 @@ RhdAtomSetupBacklightControlProperty(struct rhdOutput *Output, default: return 0; /* never get here */ } - TransmitterConfig = &Private->TransmitterConfig; TransmitterConfig->Mode = atomLVDS; if (rhdPtr->DigEncoderOutput[0] == Output) TransmitterConfig->Encoder = Private->EncoderId = atomEncoderDIG1; @@ -1230,7 +1269,7 @@ RhdAtomSetupBacklightControlProperty(struct rhdOutput *Output, TransmitterConfig->Encoder = Private->EncoderId = atomEncoderDIG2; else TransmitterConfig->Encoder = Private->EncoderId = atomEncoderNone; - LVDSInfoRetrieve(rhdPtr, Private); + LVDSInfoRetrieve(Output, Private); Private->PixelClock = 0; Private->Hdmi = NULL; break; @@ -1244,6 +1283,8 @@ RhdAtomSetupBacklightControlProperty(struct rhdOutput *Output, *PropertyFunc = atomLVDSPropertyControl; *PrivatePtr = Private; RHDAtomBIOSScratchBlLevel(rhdPtr, rhdBIOSScratchBlGet, &BlLevel); + Private->SetBacklight = atomSetBacklight; + Private->GetBacklight = atomGetBacklight; return BlLevel; } diff --git a/driver/xf86-video-radeonhd/src/rhd_audio.c b/driver/xf86-video-radeonhd/src/rhd_audio.c index 8d8a7d14e..5e3c4e240 100644 --- a/driver/xf86-video-radeonhd/src/rhd_audio.c +++ b/driver/xf86-video-radeonhd/src/rhd_audio.c @@ -90,14 +90,16 @@ AudioRate(struct rhdAudio* Audio) return result; } +#if 0 /* - * something playing ? + * something playing ? (not used anymore) */ static Bool AudioPlaying(struct rhdAudio* Audio) { return (RHDRegRead(Audio, AUDIO_PLAYING) >> 4) & 1; } +#endif /* * iec 60958 status bits @@ -124,35 +126,36 @@ static CARD32 AudioUpdateHdmi(OsTimerPtr timer, CARD32 time, pointer ptr) { struct rhdAudio *Audio = (struct rhdAudio*)ptr; - Bool playing = AudioPlaying(Audio); int channels = AudioChannels(Audio); int rate = AudioRate(Audio); int bps = AudioBitsPerSample(Audio); CARD8 status_bits = AudioStatusBits(Audio); CARD8 category_code = AudioCategoryCode(Audio); + Bool changes = FALSE; + struct rhdHdmi* hdmi; - if(playing != Audio->SavedPlaying || - channels != Audio->SavedChannels || - rate != Audio->SavedRate || - bps != Audio->SavedBitsPerSample || - status_bits != Audio->SavedStatusBits || - category_code != Audio->SavedCategoryCode) { + changes |= channels != Audio->SavedChannels; + changes |= rate != Audio->SavedRate; + changes |= bps != Audio->SavedBitsPerSample; + changes |= status_bits != Audio->SavedStatusBits; + changes |= category_code != Audio->SavedCategoryCode; - Audio->SavedPlaying = playing; + if(changes) { Audio->SavedChannels = channels; Audio->SavedRate = rate; Audio->SavedBitsPerSample = bps; Audio->SavedStatusBits = status_bits; Audio->SavedCategoryCode = category_code; + } - for(hdmi=Audio->Registered; hdmi != NULL; hdmi=hdmi->Next) + for(hdmi=Audio->Registered; hdmi != NULL; hdmi=hdmi->Next) + if(changes || RHDHdmiBufferStatusChanged(hdmi)) RHDHdmiUpdateAudioSettings( - hdmi, playing, channels, + hdmi, channels, rate, bps, status_bits, category_code); - } return AUDIO_TIMER_INTERVALL; } @@ -188,7 +191,7 @@ RHDAudioSetEnable(RHDPtr rhdPtr, Bool Enable) if (!Audio) return; RHDFUNC(Audio); - RHDRegMask(Audio, AUDIO_ENABLE, Enable ? 0x80000000 : 0x0, 0x80000000); + RHDRegMask(Audio, AUDIO_ENABLE, Enable ? 0x81000000 : 0x0, 0x81000000); if(Enable) { /* the hardware generates an interrupt if audio starts/stops playing, * but since drm doesn't support this interrupt, we check @@ -241,28 +244,22 @@ RHDAudioSetClock(RHDPtr rhdPtr, struct rhdOutput* Output, CARD32 Clock) break; default: + xf86DrvMsg(Audio->scrnIndex, X_ERROR, "%s: unsupported output type\n", __func__); break; } - switch(Output->Id) { - case RHD_OUTPUT_TMDSA: - case RHD_OUTPUT_UNIPHYA: + switch(RHDOutputTmdsIndex(Output)) { + case 0: RHDRegWrite(Audio, AUDIO_PLL1_MUL, Rate*50); RHDRegWrite(Audio, AUDIO_PLL1_DIV, Clock*100); RHDRegWrite(Audio, AUDIO_CLK_SRCSEL, 0); break; - case RHD_OUTPUT_LVTMA: - case RHD_OUTPUT_UNIPHYB: - case RHD_OUTPUT_KLDSKP_LVTMA: + case 1: RHDRegWrite(Audio, AUDIO_PLL2_MUL, Rate*50); RHDRegWrite(Audio, AUDIO_PLL2_DIV, Clock*100); RHDRegWrite(Audio, AUDIO_CLK_SRCSEL, 1); break; - - default: - xf86DrvMsg(Audio->scrnIndex, X_ERROR, "%s: unsupported output type\n", __func__); - break; } } @@ -309,6 +306,9 @@ RHDAudioRegisterHdmi(RHDPtr rhdPtr, struct rhdHdmi* rhdHdmi) if(!rhdHdmi) return; + /* make shure the HDMI interface is not registered */ + RHDAudioUnregisterHdmi(rhdPtr, rhdHdmi); + rhdHdmi->Next = Audio->Registered; Audio->Registered = rhdHdmi; } @@ -324,7 +324,7 @@ void RHDAudioUnregisterHdmi(RHDPtr rhdPtr, struct rhdHdmi* rhdHdmi) if (!Audio) return; RHDFUNC(Audio); - for(hdmiPtr=&Audio->Registered; hdmiPtr!=NULL;hdmiPtr=&(*hdmiPtr)->Next) + for(hdmiPtr=&Audio->Registered; *hdmiPtr!=NULL;hdmiPtr=&(*hdmiPtr)->Next) if(*hdmiPtr == rhdHdmi) { *hdmiPtr = rhdHdmi->Next; rhdHdmi->Next = NULL; @@ -375,7 +375,9 @@ RHDAudioRestore(RHDPtr rhdPtr) return; } - /* shoutdown the audio engine before doing anything else */ + /* + * Shutdown the audio engine before doing anything else. + */ RHDAudioSetEnable(rhdPtr, FALSE); RHDRegWrite(Audio, AUDIO_TIMING, Audio->StoreTiming); diff --git a/driver/xf86-video-radeonhd/src/rhd_audio.h b/driver/xf86-video-radeonhd/src/rhd_audio.h index d74016c4e..82932e981 100644 --- a/driver/xf86-video-radeonhd/src/rhd_audio.h +++ b/driver/xf86-video-radeonhd/src/rhd_audio.h @@ -34,7 +34,6 @@ struct rhdAudio { struct rhdHdmi* Registered; OsTimerPtr Timer; - Bool SavedPlaying; int SavedChannels; int SavedRate; int SavedBitsPerSample; diff --git a/driver/xf86-video-radeonhd/src/rhd_biosscratch.c b/driver/xf86-video-radeonhd/src/rhd_biosscratch.c index d2a905c32..d075e47ca 100644 --- a/driver/xf86-video-radeonhd/src/rhd_biosscratch.c +++ b/driver/xf86-video-radeonhd/src/rhd_biosscratch.c @@ -43,8 +43,13 @@ # include <stdio.h> # endif +#ifdef HAVE_XEXTPROTO_71 +# include "X11/extensions/dpmsconst.h" +#else # define DPMS_SERVER # include "X11/extensions/dpms.h" +#endif + # include "rhd.h" @@ -670,7 +675,7 @@ rhdBIOSScratchUpdateBIOSScratchForOutput(struct rhdOutput *Output) /* connected - enable */ Device = rhdBIOSScratchSetDeviceForOutput(Output); - if (Device == atomNone && rhdPtr->Card->ConnectorInfo[0].Type != RHD_CONNECTOR_NONE) { + if (Device == atomNone && (!rhdPtr->Card || rhdPtr->Card->ConnectorInfo[0].Type != RHD_CONNECTOR_NONE)) { xf86DrvMsg(Output->scrnIndex, X_WARNING, "%s: AtomBIOS DeviceID unknown\n",__func__); return Device; } diff --git a/driver/xf86-video-radeonhd/src/rhd_connector.c b/driver/xf86-video-radeonhd/src/rhd_connector.c index 27ecdafbf..45f1fe654 100644 --- a/driver/xf86-video-radeonhd/src/rhd_connector.c +++ b/driver/xf86-video-radeonhd/src/rhd_connector.c @@ -231,7 +231,7 @@ RHDConnectorsInit(RHDPtr rhdPtr, struct rhdCard *Card) data.chipset = rhdPtr->ChipSet; result = RHDAtomBiosFunc(rhdPtr->scrnIndex, rhdPtr->atomBIOS, - ATOMBIOS_GET_CONNECTORS, &data); + ATOM_GET_CONNECTORS, &data); if (result == ATOM_SUCCESS) { ConnectorInfo = data.ConnectorInfo; InfoAllocated = TRUE; diff --git a/driver/xf86-video-radeonhd/src/rhd_cs.c b/driver/xf86-video-radeonhd/src/rhd_cs.c index 5e9fa0237..14cbe684c 100644 --- a/driver/xf86-video-radeonhd/src/rhd_cs.c +++ b/driver/xf86-video-radeonhd/src/rhd_cs.c @@ -643,7 +643,7 @@ RHDCSInit(ScrnInfoPtr pScrn) if (rhdPtr->ChipSet >= RHD_R600) { xf86DrvMsg(pScrn->scrnIndex, X_WARNING, - "%s: No CS for R600 and up yet.\n", __func__); + "%s: CS for R600 requires DRI.\n", __func__); xfree(CS); rhdPtr->CS = NULL; return; diff --git a/driver/xf86-video-radeonhd/src/rhd_cursor.c b/driver/xf86-video-radeonhd/src/rhd_cursor.c index eff990bba..af5c2ef60 100644 --- a/driver/xf86-video-radeonhd/src/rhd_cursor.c +++ b/driver/xf86-video-radeonhd/src/rhd_cursor.c @@ -62,13 +62,16 @@ static void lockCursor(struct rhdCursor *Cursor, Bool Lock) { - /* Double Buffering: Set _UPDATE_LOCK bit */ + /* Locking disables double buffering of HW cursor registers. + * Set D*CURSOR_UPDATE_LOCK bit to 1 to lock. + * We want *_DISABLE_MULTIPLE_UPDATE to always be 0, and since all other + * meaningful bits are read-only for D*CUR_UPDATE registers, it is safe + * to use RHDRegWrite() instead of RHDRegMask(); the latter is slower. + */ if (Lock) - RHDRegMask(Cursor, Cursor->RegOffset + D1CUR_UPDATE, - 0x00010000, 0x00010000); + RHDRegWrite(Cursor, Cursor->RegOffset + D1CUR_UPDATE, 0x00010000); else - RHDRegMask(Cursor, Cursor->RegOffset + D1CUR_UPDATE, - 0x00000000, 0x00010000); + RHDRegWrite(Cursor, Cursor->RegOffset + D1CUR_UPDATE, 0x00000000); } /* RadeonHD has hardware support for hotspots, but doesn't allow negative @@ -89,13 +92,23 @@ setCursorPos(struct rhdCursor *Cursor, CARD32 x, CARD32 y, } static void +setCursorSize(struct rhdCursor *Cursor, CARD32 width, CARD32 height) +{ + ASSERT ((width > 0) && (width <= MAX_CURSOR_WIDTH)); + ASSERT ((height > 0) && (height <= MAX_CURSOR_HEIGHT)); + RHDRegWrite(Cursor, Cursor->RegOffset + D1CUR_SIZE, + (width - 1) << 16 | (height - 1)); +} + +static void enableCursor(struct rhdCursor *Cursor, Bool Enable) { + /* Make sure mode stays the same even when disabled; bug #13405 */ if (Enable) /* pre-multiplied ARGB, Enable */ RHDRegWrite(Cursor, Cursor->RegOffset + D1CUR_CONTROL, 0x00000201); else - RHDRegWrite(Cursor, Cursor->RegOffset + D1CUR_CONTROL, 0); + RHDRegWrite(Cursor, Cursor->RegOffset + D1CUR_CONTROL, 0x00000200); } /* Activate already uploaded cursor image. */ @@ -106,10 +119,6 @@ setCursorImage(struct rhdCursor *Cursor) RHDRegWrite(Cursor, Cursor->RegOffset + D1CUR_SURFACE_ADDRESS, rhdPtr->FbIntAddress + Cursor->Base); - ASSERT ((Cursor->Width > 0) && (Cursor->Width <= MAX_CURSOR_WIDTH)); - ASSERT ((Cursor->Height > 0) && (Cursor->Height <= MAX_CURSOR_HEIGHT)); - RHDRegWrite(Cursor, Cursor->RegOffset + D1CUR_SIZE, - (Cursor->Width - 1) << 16 | (Cursor->Height - 1)); } /* Upload image. @@ -121,7 +130,7 @@ uploadCursorImage(struct rhdCursor *Cursor, CARD32 *img) RHDPtr rhdPtr = RHDPTRI(Cursor); memcpy(((CARD8 *) rhdPtr->FbBase + Cursor->Base), img, - MAX_CURSOR_WIDTH * Cursor->Height * 4); + MAX_CURSOR_WIDTH * MAX_CURSOR_HEIGHT * 4); } static void @@ -192,6 +201,8 @@ convertBitsToARGB(struct rhd_Cursor_Bits *bits, CARD32 *dest, CARD8 *mask = src + srcPitch * bits->height; int x, y; + memset(dest, 0, MAX_CURSOR_WIDTH * MAX_CURSOR_HEIGHT * 4); + for (y = 0; y < bits->height; y++) { CARD8 *s = src, *m = mask; CARD32 *d = dest; @@ -210,45 +221,27 @@ convertBitsToARGB(struct rhd_Cursor_Bits *bits, CARD32 *dest, } } -/* Enable/disable cursor according to visibility, and set cursor pos */ -static void -displayCursor(struct rhdCrtc *Crtc) +/* + * Returns if CRTC has a visible cursor + */ +static Bool +hasVisibleCursor(struct rhdCrtc *Crtc, int X, int Y) { - struct rhdCursor *Cursor = Crtc->Cursor; + if (((X + MAX_CURSOR_WIDTH) < Crtc->X) && + ((Y + MAX_CURSOR_HEIGHT) < Crtc->Y)) + return FALSE; - /* Hardware doesn't allow negative cursor pos. Use hardware - * hotspot support for that. Cannot exceed width, but cursor is - * not visible in this case. */ - - /* xorg bug#13405: Cursor corruptions - * With both CRTC enabled but HW cursor active only on one, the reported - * corruption is seen. If HW cursor for both CRTC is forced to stay on, then no - * corruption occurs. */ -#if 0 - if (Cursor->X >= Crtc->X - Cursor->Width && - Cursor->X < Crtc->X + Crtc->Width && - Cursor->Y >= Crtc->Y - Cursor->Height && - Cursor->Y < Crtc->Y + Crtc->Height) { -#endif - int X, Y, HotX, HotY; - - X = Cursor->X >= 0 ? Cursor->X : 0; - Y = Cursor->Y >= 0 ? Cursor->Y : 0; - HotX = Cursor->X >= 0 ? 0 : -Cursor->X; - HotY = Cursor->Y >= 0 ? 0 : -Cursor->Y; - - enableCursor(Cursor, TRUE); - setCursorPos(Cursor, X, Y, HotX, HotY); -#if 0 - } else - enableCursor(Cursor, FALSE); -#endif + if ((X >= (Crtc->X + Crtc->Width)) && + (Y >= (Crtc->Y + Crtc->Height))) + return FALSE; + + return TRUE; } + /* * Internal Driver + Xorg Interface */ - void rhdShowCursor(ScrnInfoPtr pScrn) { @@ -258,13 +251,9 @@ rhdShowCursor(ScrnInfoPtr pScrn) for (i = 0; i < 2; i++) { struct rhdCrtc *Crtc = rhdPtr->Crtc[i]; - if (Crtc->Active && Crtc->scrnIndex == pScrn->scrnIndex) { - struct rhdCursor *Cursor = Crtc->Cursor; - - lockCursor (Cursor, TRUE); - displayCursor(Crtc); - lockCursor (Cursor, FALSE); - } + if (Crtc->Active && (Crtc->scrnIndex == pScrn->scrnIndex) && + hasVisibleCursor(Crtc, Crtc->Cursor->X, Crtc->Cursor->Y)) + rhdCrtcShowCursor(Crtc); } } @@ -278,11 +267,7 @@ rhdHideCursor(ScrnInfoPtr pScrn) struct rhdCrtc *Crtc = rhdPtr->Crtc[i]; if (Crtc->Active && Crtc->scrnIndex == pScrn->scrnIndex) { - struct rhdCursor *Cursor = Crtc->Cursor; - - lockCursor (Cursor, TRUE); - enableCursor(Cursor, FALSE); - lockCursor (Cursor, FALSE); + rhdCrtcHideCursor(Crtc); } } } @@ -339,14 +324,7 @@ rhdReloadCursor(ScrnInfoPtr pScrn) struct rhdCrtc *Crtc = rhdPtr->Crtc[i]; if (Crtc->scrnIndex == pScrn->scrnIndex) { - struct rhdCursor *Cursor = Crtc->Cursor; - - lockCursor (Cursor, TRUE); - uploadCursorImage(Cursor, rhdPtr->CursorImage); - setCursorImage (Cursor); - if (Crtc->Active) - displayCursor(Crtc); - lockCursor (Cursor, FALSE); + rhdCrtcLoadCursorARGB(Crtc, rhdPtr->CursorImage); } } } @@ -363,17 +341,10 @@ rhdSetCursorPosition(ScrnInfoPtr pScrn, int x, int y) for (i = 0; i < 2; i++) { struct rhdCrtc *Crtc = rhdPtr->Crtc[i]; - if (Crtc->Active && Crtc->scrnIndex == pScrn->scrnIndex) { - struct rhdCursor *Cursor = Crtc->Cursor; - - /* Given cursor pos is always relative to frame - make absolute */ - Cursor->X = x + pScrn->frameX0; - Cursor->Y = y + pScrn->frameY0; - - lockCursor (Cursor, TRUE); - displayCursor(Crtc); - lockCursor (Cursor, FALSE); - } + /* Cursor here is relative to frame. */ + if (Crtc->Active && (Crtc->scrnIndex == pScrn->scrnIndex) && + hasVisibleCursor(Crtc, x + pScrn->frameX0, y + pScrn->frameY0)) + rhdCrtcSetCursorPosition(Crtc, x + pScrn->frameX0, y + pScrn->frameY0); } } @@ -397,12 +368,7 @@ rhdSetCursorColors(ScrnInfoPtr pScrn, int bg, int fg) struct rhdCrtc *Crtc = rhdPtr->Crtc[i]; if (Crtc->scrnIndex == pScrn->scrnIndex) { - struct rhdCursor *Cursor = Crtc->Cursor; - - lockCursor (Cursor, TRUE); - uploadCursorImage(Cursor, rhdPtr->CursorImage); - setCursorImage (Cursor); - lockCursor (Cursor, FALSE); + rhdCrtcLoadCursorARGB(Crtc, rhdPtr->CursorImage); } } } @@ -422,15 +388,7 @@ rhdLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *src) struct rhdCrtc *Crtc = rhdPtr->Crtc[i]; if (Crtc->scrnIndex == pScrn->scrnIndex) { - struct rhdCursor *Cursor = Crtc->Cursor; - - Cursor->Width = bits->width; - Cursor->Height = bits->height; - - lockCursor (Cursor, TRUE); - uploadCursorImage(Cursor, rhdPtr->CursorImage); - setCursorImage (Cursor); - lockCursor (Cursor, FALSE); + rhdCrtcLoadCursorARGB(Crtc, rhdPtr->CursorImage); } } } @@ -455,24 +413,19 @@ rhdLoadCursorARGB(ScrnInfoPtr pScrn, CursorPtr cur) rhdPtr->CursorBits = NULL; /* Hardware only supports 64-wide cursor images. */ - for (i = 0; i < cur->bits->height; i++) - memcpy(rhdPtr->CursorImage + MAX_CURSOR_WIDTH*i, + memset(rhdPtr->CursorImage, 0, MAX_CURSOR_WIDTH * MAX_CURSOR_HEIGHT * 4); + for (i = 0; i < cur->bits->height; i++) { + CARD32 *img = rhdPtr->CursorImage + MAX_CURSOR_WIDTH*i; + memcpy(img, cur->bits->argb + cur->bits->width*i, cur->bits->width*4); + } for (i = 0; i < 2; i++) { struct rhdCrtc *Crtc = rhdPtr->Crtc[i]; if (Crtc->scrnIndex == pScrn->scrnIndex) { - struct rhdCursor *Cursor = Crtc->Cursor; - - Cursor->Width = cur->bits->width; - Cursor->Height = cur->bits->height; - - lockCursor (Cursor, TRUE); - uploadCursorImage(Cursor, rhdPtr->CursorImage); - setCursorImage (Cursor); - lockCursor (Cursor, FALSE); + rhdCrtcLoadCursorARGB(Crtc, rhdPtr->CursorImage); } } } @@ -588,10 +541,9 @@ void rhdCrtcShowCursor(struct rhdCrtc *Crtc) { struct rhdCursor *Cursor = Crtc->Cursor; - - lockCursor (Cursor, TRUE); - displayCursor(Crtc); - lockCursor (Cursor, FALSE); + lockCursor (Cursor, TRUE); + enableCursor(Cursor, TRUE); + lockCursor (Cursor, FALSE); } /* @@ -613,12 +565,58 @@ rhdCrtcHideCursor(struct rhdCrtc *Crtc) void rhdCrtcSetCursorPosition(struct rhdCrtc *Crtc, int x, int y) { + RHDPtr rhdPtr = RHDPTRI(Crtc); struct rhdCursor *Cursor = Crtc->Cursor; + int hotx, hoty, width, cursor_end, frame_end; + Cursor->X = x; Cursor->Y = y; + hotx = 0; + hoty = 0; + + /* Hardware doesn't allow negative cursor pos; compensate using hotspot */ + if (x < 0) { + hotx = -x; + x = 0; + } + if (y < 0) { + hoty = -y; + y = 0; + } + lockCursor (Cursor, TRUE); - displayCursor(Crtc); + + /* Work around rare corruption cases by adjusting cursor size; + * related to bug #13405 + * For dual-screen: + * - Cursor's right-edge must not end on multiples of 128px. + * - For panning, cursor image cannot horizontally extend past end of viewport. + */ + if (rhdPtr->Crtc[0]->Active && rhdPtr->Crtc[1]->Active) { + width = MAX_CURSOR_WIDTH; + cursor_end = x + width; + frame_end = Crtc->X + Crtc->Width; + + if (cursor_end > frame_end) { + width -= cursor_end - frame_end; + cursor_end = x + width; + } + if (! (cursor_end & 0x7f)) { + width--; + } + /* If the cursor is effectively invisible, move it out of visible area */ + if (width <= 0) { + width = 1; + x = 0; + y = Crtc->Y + Crtc->Height; + hotx = 0; + hoty = 0; + } + setCursorSize(Cursor, width, MAX_CURSOR_HEIGHT); + } + + setCursorPos (Cursor, x, y, hotx, hoty); lockCursor (Cursor, FALSE); } @@ -642,12 +640,10 @@ rhdCrtcLoadCursorARGB(struct rhdCrtc *Crtc, CARD32 *Image) { struct rhdCursor *Cursor = Crtc->Cursor; - Cursor->Width = MAX_CURSOR_WIDTH; - Cursor->Height = MAX_CURSOR_HEIGHT; - lockCursor (Cursor, TRUE); uploadCursorImage(Cursor, Image); setCursorImage (Cursor); + setCursorSize (Cursor, MAX_CURSOR_WIDTH, MAX_CURSOR_HEIGHT); lockCursor (Cursor, FALSE); } diff --git a/driver/xf86-video-radeonhd/src/rhd_cursor.h b/driver/xf86-video-radeonhd/src/rhd_cursor.h index a2347d753..d6970d892 100644 --- a/driver/xf86-video-radeonhd/src/rhd_cursor.h +++ b/driver/xf86-video-radeonhd/src/rhd_cursor.h @@ -38,8 +38,6 @@ struct rhdCursor int RegOffset; - int Width; - int Height; int Base; int X; diff --git a/driver/xf86-video-radeonhd/src/rhd_dac.c b/driver/xf86-video-radeonhd/src/rhd_dac.c index 30e699fab..8d05fe50c 100644 --- a/driver/xf86-video-radeonhd/src/rhd_dac.c +++ b/driver/xf86-video-radeonhd/src/rhd_dac.c @@ -290,7 +290,7 @@ DACGetElectrical(RHDPtr rhdPtr, enum outputType type, int dac, CARD8 *bandgap, C if (atomBiosArg.val = 0x18, RHDAtomBiosFunc(rhdPtr->scrnIndex, rhdPtr->atomBIOS, - ATOMBIOS_GET_CODE_DATA_TABLE, + ATOM_GET_CODE_DATA_TABLE, &atomBiosArg) == ATOM_SUCCESS) { struct AtomDacCodeTableData *data = (struct AtomDacCodeTableData *)atomBiosArg.CommandDataTable.loc; @@ -648,7 +648,7 @@ DACSenseRV620(struct rhdOutput *Output, CARD32 offset, Bool TV) /* enable comparators for R/G/B, disable DDET and SDET reference */ RHDRegMask(Output, offset + RV620_DACA_COMPARATOR_ENABLE, 0x70000, 0x070101); RHDRegMask(Output, offset + RV620_DACA_AUTODETECT_CONTROL, 0x01, 0xff); - usleep(32); + usleep(50); ret = RHDRegRead(Output, offset + RV620_DACA_AUTODETECT_STATUS); RHDRegWrite(Output, offset + RV620_DACA_AUTODETECT_CONTROL, DetectControl); RHDRegWrite(Output, offset + RV620_DACA_MACRO_CNTL, Control1); diff --git a/driver/xf86-video-radeonhd/src/rhd_dig.c b/driver/xf86-video-radeonhd/src/rhd_dig.c index 6cc5521fa..782c8db3a 100644 --- a/driver/xf86-video-radeonhd/src/rhd_dig.c +++ b/driver/xf86-video-radeonhd/src/rhd_dig.c @@ -42,6 +42,7 @@ #include "rhd_output.h" #include "rhd_regs.h" #include "rhd_hdmi.h" +#include "rhd_acpi.h" #ifdef ATOM_BIOS #include "rhd_atombios.h" #include "rhd_atomout.h" @@ -65,11 +66,9 @@ struct transmitter { void (*Destroy) (struct rhdOutput *Output); Bool (*Property) (struct rhdOutput *Output, enum rhdPropertyAction Action, enum rhdOutputProperty Property, union rhdPropertyData *val); -#ifdef NOT_YET Bool (*WrappedPropertyCallback) (struct rhdOutput *Output, enum rhdPropertyAction Action, enum rhdOutputProperty Property, union rhdPropertyData *val); void *PropertyPrivate; -#endif void *Private; }; @@ -121,6 +120,10 @@ struct DIGPrivate CARD32 OffDelay; struct rhdFMTDither FMTDither; int BlLevel; + + void (*SetBacklight)(struct rhdOutput *Output, int val); + int (*GetBacklight)(struct rhdOutput *Output); + }; /* @@ -159,11 +162,8 @@ LVTMATransmitterModeValid(struct rhdOutput *Output, DisplayModePtr Mode) } static void -LVDSSetBacklight(struct rhdOutput *Output) +LVDSSetBacklight(struct rhdOutput *Output, int level) { - struct DIGPrivate *Private = (struct DIGPrivate *) Output->Private; - int level = Private->BlLevel; - RHDFUNC(Output); RHDRegMask(Output, RV620_LVTMA_PWRSEQ_REF_DIV, @@ -178,6 +178,20 @@ LVDSSetBacklight(struct rhdOutput *Output) /* * */ +static int +LVDSGetBacklight(struct rhdOutput *Output) +{ + CARD32 level; + + level = RHDRegRead(Output, RV620_LVTMA_BL_MOD_CNTL); + if ((level & 0x01) != 0x01) return -1; + + return (level >> LVTMA_BL_MOD_LEVEL_SHIFT) & 0xFF; +} + +/* + * + */ static Bool LVDSTransmitterPropertyControl(struct rhdOutput *Output, enum rhdPropertyAction Action, enum rhdOutputProperty Property, union rhdPropertyData *val) @@ -187,19 +201,20 @@ LVDSTransmitterPropertyControl(struct rhdOutput *Output, RHDFUNC(Output); switch (Action) { case rhdPropertyCheck: - if (Private->BlLevel < 0) - return FALSE; switch (Property) { case RHD_OUTPUT_BACKLIGHT: - return TRUE; + if (Private->BlLevel < 0) + return FALSE; + return TRUE; default: return FALSE; } case rhdPropertyGet: - if (Private->BlLevel < 0) - return FALSE; switch (Property) { case RHD_OUTPUT_BACKLIGHT: + Private->BlLevel = Private->GetBacklight(Output); + if (Private->BlLevel < 0) + return FALSE; val->integer = Private->BlLevel; return TRUE; default: @@ -207,10 +222,10 @@ LVDSTransmitterPropertyControl(struct rhdOutput *Output, } break; case rhdPropertySet: - if (Private->BlLevel < 0) - return FALSE; switch (Property) { case RHD_OUTPUT_BACKLIGHT: + if (Private->BlLevel < 0) + return FALSE; Private->BlLevel = val->integer; return TRUE; default: @@ -220,7 +235,9 @@ LVDSTransmitterPropertyControl(struct rhdOutput *Output, case rhdPropertyCommit: switch (Property) { case RHD_OUTPUT_BACKLIGHT: - LVDSSetBacklight(Output); + if (Private->BlLevel < 0) + return FALSE; + Private->SetBacklight(Output, Private->BlLevel); return TRUE; default: return FALSE; @@ -245,6 +262,7 @@ TMDSTransmitterPropertyControl(struct rhdOutput *Output, switch (Property) { case RHD_OUTPUT_COHERENT: case RHD_OUTPUT_HDMI: + case RHD_OUTPUT_AUDIO_WORKAROUND: return TRUE; default: return FALSE; @@ -257,6 +275,9 @@ TMDSTransmitterPropertyControl(struct rhdOutput *Output, case RHD_OUTPUT_HDMI: val->Bool = Private->EncoderMode == TMDS_HDMI; return TRUE; + case RHD_OUTPUT_AUDIO_WORKAROUND: + val->Bool = RHDHdmiGetAudioWorkaround(Private->Hdmi); + return TRUE; default: return FALSE; } @@ -269,6 +290,9 @@ TMDSTransmitterPropertyControl(struct rhdOutput *Output, case RHD_OUTPUT_HDMI: Private->EncoderMode = val->Bool ? TMDS_HDMI : TMDS_DVI; break; + case RHD_OUTPUT_AUDIO_WORKAROUND: + RHDHdmiSetAudioWorkaround(Private->Hdmi, val->Bool); + break; default: return FALSE; } @@ -280,6 +304,9 @@ TMDSTransmitterPropertyControl(struct rhdOutput *Output, Output->Mode(Output, Private->Mode); Output->Power(Output, RHD_POWER_ON); break; + case RHD_OUTPUT_AUDIO_WORKAROUND: + RHDHdmiCommitAudioWorkaround(Private->Hdmi); + break; default: return FALSE; } @@ -308,7 +335,6 @@ LVTMATransmitterSet(struct rhdOutput *Output, struct rhdCrtc *Crtc, DisplayModeP RHDRegMask(Output, RV620_LVTMA_TRANSMITTER_CONTROL, doCoherent ? 0 : RV62_LVTMA_BYPASS_PLL, RV62_LVTMA_BYPASS_PLL); - Private->Mode = Mode; #ifdef ATOM_BIOS RHDDebug(Output->scrnIndex, "%s: SynthClock: %i Hex: %x EncoderMode: %x\n",__func__, (Mode->SynthClock),(Mode->SynthClock / 10), Private->EncoderMode); @@ -322,7 +348,7 @@ LVTMATransmitterSet(struct rhdOutput *Output, struct rhdCrtc *Crtc, DisplayModeP /* Get data from DIG2TransmitterControl table */ data.val = 0x4d; - if (RHDAtomBiosFunc(rhdPtr->scrnIndex, rhdPtr->atomBIOS, ATOMBIOS_GET_CODE_DATA_TABLE, + if (RHDAtomBiosFunc(rhdPtr->scrnIndex, rhdPtr->atomBIOS, ATOM_GET_CODE_DATA_TABLE, &data) == ATOM_SUCCESS) { AtomBiosArgRec data1; CARD32 *d_p = NULL; @@ -1313,7 +1339,7 @@ GetLVDSInfo(RHDPtr rhdPtr, struct DIGPrivate *Private) & RV62_LVDS_24BIT_ENABLE) != 0); tmp = RHDRegRead(rhdPtr, RV620_LVTMA_BL_MOD_CNTL); - if (tmp & 0x1) + if (tmp & LVTMA_BL_MOD_EN) Private->BlLevel = ( tmp >> LVTMA_BL_MOD_LEVEL_SHIFT ) & 0xff; else Private->BlLevel = -1; @@ -1456,11 +1482,11 @@ DigPropertyControl(struct rhdOutput *Output, case RHD_OUTPUT_COHERENT: case RHD_OUTPUT_BACKLIGHT: case RHD_OUTPUT_HDMI: + case RHD_OUTPUT_AUDIO_WORKAROUND: { if (!Private->Transmitter.Property) return FALSE; - Private->Transmitter.Property(Output, Action, Property, val); - break; + return Private->Transmitter.Property(Output, Action, Property, val); } default: return FALSE; @@ -1482,6 +1508,8 @@ DigMode(struct rhdOutput *Output, DisplayModePtr Mode) RHDFUNC(Output); + Private->Mode = Mode; + /* * For dual link capable DVI we need to decide from the pix clock if we are dual link. * Do it here as it is convenient. @@ -1543,10 +1571,8 @@ DigDestroy(struct rhdOutput *Output) Encoder->Destroy(Output); Transmitter->Destroy(Output); RHDHdmiDestroy(Private->Hdmi); -#ifdef NOT_YET if (Transmitter->PropertyPrivate) RhdAtomDestroyBacklightControlProperty(Output, Transmitter->PropertyPrivate); -#endif xfree(Private); Output->Private = NULL; } @@ -1641,7 +1667,6 @@ DigAllocFree(struct rhdOutput *Output, enum rhdOutputAllocation Alloc) /* * */ -#ifdef NOT_YET static Bool digTransmitterPropertyWrapper(struct rhdOutput *Output, enum rhdPropertyAction Action, @@ -1660,7 +1685,6 @@ digTransmitterPropertyWrapper(struct rhdOutput *Output, return ret; } -#endif /* * @@ -1830,17 +1854,31 @@ RHDDIGInit(RHDPtr rhdPtr, enum rhdOutputType outputType, CARD8 ConnectorType) case RHD_CONNECTOR_PANEL: Private->EncoderMode = LVDS; GetLVDSInfo(rhdPtr, Private); + if (Private->BlLevel >= 0) { + Private->SetBacklight = LVDSSetBacklight; + Private->GetBacklight = LVDSGetBacklight; + xf86DrvMsg(Output->scrnIndex,X_INFO, "Native Backlight Control found.\n"); + } else { + Private->BlLevel = RhdACPIGetBacklightControl(Output); + if (Private->BlLevel >= 0) { + xf86DrvMsg(Output->scrnIndex,X_INFO, "ACPI Backlight Control found.\n"); + Private->SetBacklight = RhdACPISetBacklightControl; + Private->GetBacklight = RhdACPIGetBacklightControl; + } #ifdef ATOM_BIOS -#ifdef NOT_YET - if (Private->BlLevel < 0) { - Private->BlLevel = RhdAtomSetupBacklightControlProperty(Output, - &Private->Transmitter.WrappedPropertyCallback, - &Private->Transmitter.PropertyPrivate); - if (Private->Transmitter.PropertyPrivate) - Private->Transmitter.Property = digTransmitterPropertyWrapper; - } -#endif + else { + Private->BlLevel = RhdAtomSetupBacklightControlProperty( + Output, + &Private->Transmitter.WrappedPropertyCallback, + &Private->Transmitter.PropertyPrivate); + if (Private->Transmitter.PropertyPrivate) + Private->Transmitter.Property = digTransmitterPropertyWrapper; + xf86DrvMsg(Output->scrnIndex,X_INFO, + "Falling back to AtomBIOS controlled Backlight.\n"); + } #endif + } + Private->Hdmi = NULL; break; case RHD_CONNECTOR_DVI: diff --git a/driver/xf86-video-radeonhd/src/rhd_dri.c b/driver/xf86-video-radeonhd/src/rhd_dri.c index d06ba4330..27d328b68 100644 --- a/driver/xf86-video-radeonhd/src/rhd_dri.c +++ b/driver/xf86-video-radeonhd/src/rhd_dri.c @@ -87,7 +87,7 @@ #define IS_RADEONHD_DRIVER 1 #include "radeon_dri.h" -#ifdef RANDR_12_SUPPORT // FIXME check / move to rhd_randr.c +#ifdef RANDR_12_SUPPORT /* FIXME check / move to rhd_randr.c */ # include "xf86i2c.h" /* this is complete BS, stop using unnamed structs! */ # include "xf86Crtc.h" #endif @@ -158,7 +158,7 @@ struct rhdDri { drmAddress ring; /* Map */ int ringSizeLog2QW; - // TODO: what is r/o ring space for (1 page) + /* TODO: what is r/o ring space for (1 page) */ unsigned long ringReadOffset; /* Offset into GART space */ drm_handle_t ringReadPtrHandle; /* Handle from drmAddMap */ drmSize ringReadMapSize; /* Size of map */ @@ -527,10 +527,9 @@ static void RHDDRIInitGARTValues(struct rhdDri * rhdDRI) } /* Set AGP transfer mode according to requests and constraints */ -static Bool RHDSetAgpMode(struct rhdDri * rhdDRI, ScreenPtr pScreen) +static Bool RHDSetAgpMode(struct rhdDri * rhdDRI) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; - RHDPtr rhdPtr = RHDPTR(pScrn); + RHDPtr rhdPtr = RHDPTRI(rhdDRI); unsigned long mode = drmAgpGetMode(rhdDRI->drmFD); /* Default mode */ unsigned int vendor = drmAgpVendorId(rhdDRI->drmFD); unsigned int device = drmAgpDeviceId(rhdDRI->drmFD); @@ -553,7 +552,7 @@ static Bool RHDSetAgpMode(struct rhdDri * rhdDRI, ScreenPtr pScreen) else rhdDRI->agpMode = 1; } - xf86DrvMsg(pScreen->myNum, X_DEFAULT, "Using AGP %dx\n", rhdDRI->agpMode); + xf86DrvMsg(rhdDRI->scrnIndex, X_DEFAULT, "Using AGP %dx\n", rhdDRI->agpMode); mode &= ~AGP_MODE_MASK; if (is_v3) { @@ -572,12 +571,12 @@ static Bool RHDSetAgpMode(struct rhdDri * rhdDRI, ScreenPtr pScreen) } else rhdDRI->agpMode = 8; /* doesn't matter at this point */ - xf86DrvMsg(pScreen->myNum, X_INFO, + xf86DrvMsg(rhdDRI->scrnIndex, X_INFO, "[agp] Mode 0x%08lx [AGP 0x%04x/0x%04x]\n", mode, vendor, device); if (drmAgpEnable(rhdDRI->drmFD, mode) < 0) { - xf86DrvMsg(pScreen->myNum, X_ERROR, "[agp] AGP not enabled\n"); + xf86DrvMsg(rhdDRI->scrnIndex, X_ERROR, "[agp] AGP not enabled\n"); drmAgpRelease(rhdDRI->drmFD); return FALSE; } @@ -586,10 +585,9 @@ static Bool RHDSetAgpMode(struct rhdDri * rhdDRI, ScreenPtr pScreen) } /* Initialize Radeon's AGP registers */ -static void RHDSetAgpBase(struct rhdDri * rhdDRI, ScreenPtr pScreen) +static void RHDSetAgpBase(struct rhdDri * rhdDRI) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; - RHDPtr rhdPtr = RHDPTR(pScrn); + RHDPtr rhdPtr = RHDPTRI(rhdDRI); if (rhdPtr->ChipSet < RHD_R600) RHDRegWrite (rhdDRI, AGP_BASE, drmAgpBase(rhdDRI->drmFD)); @@ -608,7 +606,7 @@ static Bool RHDDRIAgpInit(struct rhdDri * rhdDRI, ScreenPtr pScreen) return FALSE; } - if (!RHDSetAgpMode(rhdDRI, pScreen)) + if (!RHDSetAgpMode(rhdDRI)) return FALSE; RHDDRIInitGARTValues(rhdDRI); @@ -709,7 +707,7 @@ static Bool RHDDRIAgpInit(struct rhdDri * rhdDRI, ScreenPtr pScreen) "[agp] GART Texture map mapped at 0x%08lx\n", (unsigned long)rhdDRI->gartTex); - RHDSetAgpBase(rhdDRI, pScreen); + RHDSetAgpBase(rhdDRI); return TRUE; } @@ -892,11 +890,11 @@ static int RHDDRIKernelInit(RHDPtr rhdPtr, ScreenPtr pScreen) return FALSE; } - // FIXME: this is to be moved to rhd_cp - /* DRM_RADEON_CP_INIT does an engine reset, which resets some engine - * registers back to their default values, so we need to restore - * those engine register here. */ -// R5xx2DSetup(pScrn); + /* - FIXME: this is to be moved to rhd_cp + * - DRM_RADEON_CP_INIT does an engine reset, which resets some engine + * registers back to their default values, so we need to restore + * those engine register here. + * - R5xx2DSetup(pScrn); */ return TRUE; } @@ -980,8 +978,8 @@ static void RHDDRIIrqInit(RHDPtr rhdPtr, ScreenPtr pScreen) "[drm] falling back to irq-free operation\n"); rhdDRI->irq = 0; } else { -// FIXME -// rhdDRI->ModeReg->gen_int_cntl = RHDRegRead (rhdDRI, RADEON_GEN_INT_CNTL ); +/* FIXME + rhdDRI->ModeReg->gen_int_cntl = RHDRegRead (rhdDRI, RADEON_GEN_INT_CNTL ); */ } } @@ -1118,13 +1116,15 @@ static Bool RHDDRISetVBlankInterrupt(ScrnInfoPtr pScrn, Bool on) if (rhdDRI->irq) { if (on) { -#ifdef RANDR_12_SUPPORT // FIXME check / move to rhd_randr.c - xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); - if (xf86_config->num_crtc > 1 && xf86_config->crtc[1]->enabled) - value = DRM_RADEON_VBLANK_CRTC1 | DRM_RADEON_VBLANK_CRTC2; - else + value = DRM_RADEON_VBLANK_CRTC1; + +#ifdef RANDR_12_SUPPORT /* FIXME check / move to rhd_randr.c */ + if (RHDPTR(pScrn)->randr) { + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); + if (xf86_config->num_crtc > 1 && xf86_config->crtc[1]->enabled) + value |= DRM_RADEON_VBLANK_CRTC2; + } #endif - value = DRM_RADEON_VBLANK_CRTC1; } if (RHDDRISetParam(pScrn, RADEON_SETPARAM_VBLANK_CRTC, value)) { @@ -1163,19 +1163,6 @@ Bool RHDDRIPreInit(ScrnInfoPtr pScrn) return FALSE; } - if (rhdPtr->ChipSet >= RHD_R600) { - if (rhdPtr->useDRI.set && rhdPtr->useDRI.val.bool) { - xf86DrvMsg(pScrn->scrnIndex, X_WARNING, - "Direct rendering for R600 and up forced on - " - "This is NOT officially supported yet " - "and may cause instability or lockups\n"); - } else { - xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Direct rendering not officially supported on R600 and up\n"); - return FALSE; - } - } - if (!RHDDRIVersionCheck(rhdPtr)) { xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "%s: Version check failed. Disabling DRI.\n", __func__); @@ -1624,9 +1611,9 @@ void RHDDRIEnterVT(ScreenPtr pScreen) return; if (rhdPtr->cardType == RHD_CARD_AGP) { - if (!RHDSetAgpMode(rhdDRI, pScreen)) + if (!RHDSetAgpMode(rhdDRI)) return; - RHDSetAgpBase(rhdDRI, pScreen); + RHDSetAgpBase(rhdDRI); } /* TODO: maybe using CP_INIT instead of CP_RESUME is enough, so we wouldn't @@ -1684,7 +1671,7 @@ Bool RHDDRICloseScreen(ScreenPtr pScreen) ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; RHDPtr rhdPtr = RHDPTR(pScrn); struct rhdDri *rhdDRI = rhdPtr->dri; - //drm_radeon_init_t drmInfo; + /* drm_radeon_init_t drmInfo; */ drm_radeon_init_t drmInfo; RHDFUNC(pScrn); @@ -1693,7 +1680,7 @@ Bool RHDDRICloseScreen(ScreenPtr pScreen) RHDDRISetVBlankInterrupt (pScrn, FALSE); drmCtlUninstHandler(rhdDRI->drmFD); rhdDRI->irq = 0; -// rhdDRI->ModeReg->gen_int_cntl = 0; +/* rhdDRI->ModeReg->gen_int_cntl = 0; */ } /* invalidate GART location for EXA */ @@ -1784,8 +1771,8 @@ static void RHDDRITransitionSingleToMulti3d(ScreenPtr pScreen) static void RHDDRITransitionMultiToSingle3d(ScreenPtr pScreen) { - /* Let the remaining 3d app start page flipping again */ -// RHDEnablePageFlip(pScreen); + /* Let the remaining 3d app start page flipping again + * RHDEnablePageFlip(pScreen); */ } static void RHDDRITransitionTo3d(ScreenPtr pScreen) @@ -1794,8 +1781,8 @@ static void RHDDRITransitionTo3d(ScreenPtr pScreen) struct rhdDri *rhdDRI = RHDPTR(pScrn)->dri; rhdDRI->have3Dwindows = TRUE; -// RHDChangeSurfaces(pScrn); // FIXME needed for tiling -// RHDEnablePageFlip(pScreen); +/* RHDChangeSurfaces(pScrn); *//* FIXME needed for tiling */ +/* RHDEnablePageFlip(pScreen); */ RHDDRISetVBlankInterrupt(pScrn, TRUE); } @@ -1820,7 +1807,7 @@ static void RHDDRITransitionTo2d(ScreenPtr pScreen) "[dri] RHDDRITransitionTo2d: " "kernel failed to unflip buffers.\n"); } -// RHDChangeSurfaces(pScrn); +/* RHDChangeSurfaces(pScrn); */ RHDDRISetVBlankInterrupt(pScrn, FALSE); } @@ -1927,7 +1914,7 @@ RHDDRMCPBuffer(int scrnIndex) int ret = drmDMA(Dri->drmFD, &dma); if (!ret) { buf = &Dri->buffers->list[indx]; - //xf86DrvMsg(scrnIndex, X_INFO, "%s: index %d, addr %p\n", __func__, buf->idx, buf->address); + /* xf86DrvMsg(scrnIndex, X_INFO, "%s: index %d, addr %p\n", __func__, buf->idx, buf->address); */ buf->used = 0; return buf; } else if (ret != -16) diff --git a/driver/xf86-video-radeonhd/src/rhd_driver.c b/driver/xf86-video-radeonhd/src/rhd_driver.c index f849faa4a..e502c5f76 100644 --- a/driver/xf86-video-radeonhd/src/rhd_driver.c +++ b/driver/xf86-video-radeonhd/src/rhd_driver.c @@ -38,7 +38,11 @@ /* For PIO/MMIO */ #include "compiler.h" +#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6 #include "xf86Resources.h" +/* Needed by Resources Access Control (RAC) */ +#include "xf86RAC.h" +#endif #include "xf86PciInfo.h" /* do we need to access PCI config space directly? */ @@ -63,11 +67,13 @@ #include "fb.h" -/* Needed by Resources Access Control (RAC) */ -#include "xf86RAC.h" - +#ifdef HAVE_XEXTPROTO_71 +#include "X11/extensions/dpmsconst.h" +#else #define DPMS_SERVER #include "X11/extensions/dpms.h" +#endif + /* int10 - for now at least */ #include "xf86int10.h" @@ -117,6 +123,7 @@ #include "rhd_randr.h" #include "rhd_cs.h" #include "rhd_audio.h" +#include "rhd_pm.h" #include "r5xx_accel.h" #include "rhd_video.h" @@ -191,6 +198,8 @@ static int pix24bpp = 0; # define FGLRX_SYS_PATH "/sys/module/fglrx" #endif +#if XORG_VERSION_CURRENT >= 6 * 10000000 + static const char *xaaSymbols[] = { "XAACreateInfoRec", "XAADestroyInfoRec", @@ -198,7 +207,7 @@ static const char *xaaSymbols[] = { NULL }; -#ifdef USE_EXA +# ifdef USE_EXA static const char *exaSymbols[] = { "exaDriverAlloc", "exaDriverFini", @@ -209,7 +218,8 @@ static const char *exaSymbols[] = { "exaWaitSync", NULL }; -#endif /* USE_EXA */ +# endif /* USE_EXA */ +#endif _X_EXPORT DriverRec RADEONHD = { RHD_VERSION, @@ -251,8 +261,11 @@ typedef enum { #endif OPTION_UNVERIFIED_FEAT, OPTION_AUDIO, + OPTION_AUDIO_WORKAROUND, OPTION_HDMI, - OPTION_COHERENT + OPTION_COHERENT, + OPTION_FORCE_LOW_POWER, + OPTION_LOW_POWER_CLOCK } RHDOpts; static const OptionInfoRec RHDOptions[] = { @@ -280,8 +293,11 @@ static const OptionInfoRec RHDOptions[] = { #endif { OPTION_UNVERIFIED_FEAT, "UnverifiedFeatures", OPTV_BOOLEAN, {0}, FALSE }, { OPTION_AUDIO, "Audio", OPTV_BOOLEAN, {0}, FALSE }, + { OPTION_AUDIO_WORKAROUND, "AudioStreamSilence", OPTV_ANYSTR, {0}, FALSE }, { OPTION_HDMI, "HDMI", OPTV_ANYSTR, {0}, FALSE }, { OPTION_COHERENT, "COHERENT", OPTV_ANYSTR, {0}, FALSE }, + { OPTION_FORCE_LOW_POWER, "ForceLowPowerMode", OPTV_BOOLEAN, {0}, FALSE }, + { OPTION_LOW_POWER_CLOCK, "LowPowerModeEngineClock", OPTV_INTEGER, {0}, FALSE }, { -1, NULL, OPTV_NONE, {0}, FALSE } }; @@ -362,7 +378,7 @@ RHDFreeRec(ScrnInfoPtr pScrn) RHDI2CFunc(pScrn->scrnIndex, rhdPtr->I2C, RHD_I2C_TEARDOWN, NULL); #ifdef ATOM_BIOS RHDAtomBiosFunc(pScrn->scrnIndex, rhdPtr->atomBIOS, - ATOMBIOS_TEARDOWN, NULL); + ATOM_TEARDOWN, NULL); #endif RHDShadowDestroy(rhdPtr); if (rhdPtr->CursorInfo) @@ -527,10 +543,12 @@ RHDPreInit(ScrnInfoPtr pScrn, int flags) goto error0; } +#ifndef XSERVER_LIBPCIACCESS if (rhdPtr->pEnt->resources) { xfree(rhdPtr->pEnt); goto error0; } +#endif pScrn->videoRam = rhdPtr->pEnt->device->videoRam; rhdPtr->entityIndex = rhdPtr->pEnt->index; @@ -549,10 +567,12 @@ RHDPreInit(ScrnInfoPtr pScrn, int flags) pScrn->chipset = (char *)xf86TokenToString(RHDChipsets, rhdPtr->ChipSet); +#ifndef XSERVER_LIBPCIACCESS /* We will disable access to VGA legacy resources emulation and save/restore VGA thru MMIO when necessary */ if (xf86RegisterResources(rhdPtr->entityIndex, NULL, ResNone)) goto error0; +#endif #ifndef ATOM_ASIC_INIT if (xf86LoadSubModule(pScrn, "int10")) { @@ -631,7 +651,7 @@ RHDPreInit(ScrnInfoPtr pScrn, int flags) { AtomBiosArgRec atomBiosArg; - if (RHDAtomBiosFunc(pScrn->scrnIndex, NULL, ATOMBIOS_INIT, &atomBiosArg) + if (RHDAtomBiosFunc(pScrn->scrnIndex, NULL, ATOM_INIT, &atomBiosArg) == ATOM_SUCCESS) { rhdPtr->atomBIOS = atomBiosArg.atomhandle; } else { @@ -735,36 +755,49 @@ RHDPreInit(ScrnInfoPtr pScrn, int flags) atomBiosArg.fb.start = rhdPtr->FbFreeStart; atomBiosArg.fb.size = rhdPtr->FbFreeSize; - if (RHDAtomBiosFunc(pScrn->scrnIndex, rhdPtr->atomBIOS, ATOMBIOS_ALLOCATE_FB_SCRATCH, + if (RHDAtomBiosFunc(pScrn->scrnIndex, rhdPtr->atomBIOS, ATOM_ALLOCATE_FB_SCRATCH, &atomBiosArg) == ATOM_SUCCESS) { rhdPtr->FbFreeStart = atomBiosArg.fb.start; rhdPtr->FbFreeSize = atomBiosArg.fb.size; } - RHDAtomBiosFunc(pScrn->scrnIndex, rhdPtr->atomBIOS, GET_DEFAULT_ENGINE_CLOCK, + RHDAtomBiosFunc(pScrn->scrnIndex, rhdPtr->atomBIOS, ATOM_GET_DEFAULT_ENGINE_CLOCK, &atomBiosArg); - RHDAtomBiosFunc(pScrn->scrnIndex, rhdPtr->atomBIOS, GET_DEFAULT_MEMORY_CLOCK, + RHDAtomBiosFunc(pScrn->scrnIndex, rhdPtr->atomBIOS, ATOM_GET_DEFAULT_MEMORY_CLOCK, &atomBiosArg); RHDAtomBiosFunc(pScrn->scrnIndex, rhdPtr->atomBIOS, - GET_MAX_PIXEL_CLOCK_PLL_OUTPUT, &atomBiosArg); + ATOM_GET_MAX_PIXEL_CLOCK_PLL_OUTPUT, &atomBiosArg); RHDAtomBiosFunc(pScrn->scrnIndex, rhdPtr->atomBIOS, - GET_MIN_PIXEL_CLOCK_PLL_OUTPUT, &atomBiosArg); + ATOM_GET_MIN_PIXEL_CLOCK_PLL_OUTPUT, &atomBiosArg); RHDAtomBiosFunc(pScrn->scrnIndex, rhdPtr->atomBIOS, - GET_MAX_PIXEL_CLOCK_PLL_INPUT, &atomBiosArg); + ATOM_GET_MAX_PIXEL_CLOCK_PLL_INPUT, &atomBiosArg); RHDAtomBiosFunc(pScrn->scrnIndex, rhdPtr->atomBIOS, - GET_MIN_PIXEL_CLOCK_PLL_INPUT, &atomBiosArg); + ATOM_GET_MIN_PIXEL_CLOCK_PLL_INPUT, &atomBiosArg); RHDAtomBiosFunc(pScrn->scrnIndex, rhdPtr->atomBIOS, - GET_MAX_PIXEL_CLK, &atomBiosArg); + ATOM_GET_MAX_PIXEL_CLK, &atomBiosArg); RHDAtomBiosFunc(pScrn->scrnIndex, rhdPtr->atomBIOS, - GET_REF_CLOCK, &atomBiosArg); + ATOM_GET_REF_CLOCK, &atomBiosArg); } #endif + if (rhdPtr->ChipSet >= RHD_R600 && rhdPtr->AccelMethod == RHD_ACCEL_XAA) { + rhdPtr->AccelMethod = RHD_ACCEL_EXA; + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Accel Method XAA not supported on this chipset generation." + " Defaulting to EXA\n"); + } #ifdef USE_DRI - RHDDRIPreInit(pScrn); + ret = RHDDRIPreInit(pScrn); + if (!ret && rhdPtr->ChipSet >= RHD_R600 && rhdPtr->AccelMethod > RHD_ACCEL_SHADOWFB) { + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Falling back to ShadowFB acceleration\n"); + rhdPtr->AccelMethod = RHD_ACCEL_SHADOWFB; + } #else xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "DRI support has been disabled at compile time\n"); + if (rhdPtr->ChipSet >= RHD_R600 && rhdPtr->AccelMethod == RHD_ACCEL_EXA) { + rhdPtr->AccelMethod = RHD_ACCEL_SHADOWFB; + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Accel Method EXA requires DRI on this chip. Falling back to SHADOW_FB.\n"); + } #endif if (rhdPtr->AccelMethod == RHD_ACCEL_FORCE_SHADOWFB) rhdPtr->AccelMethod = RHD_ACCEL_SHADOWFB; @@ -799,6 +832,7 @@ RHDPreInit(ScrnInfoPtr pScrn, int flags) RHDAudioInit(rhdPtr); RHDLUTsInit(rhdPtr); RHDCursorsInit(rhdPtr); /* do this irrespective of hw/sw cursor setting */ + RHDPmInit(rhdPtr); if (!RHDConnectorsInit(rhdPtr, rhdPtr->Card)) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, @@ -839,7 +873,7 @@ RHDPreInit(ScrnInfoPtr pScrn, int flags) data.chipset = rhdPtr->ChipSet; if (RHDAtomBiosFunc(rhdPtr->scrnIndex, rhdPtr->atomBIOS, - ATOMBIOS_GET_OUTPUT_DEVICE_LIST, &data) == ATOM_SUCCESS) + ATOM_GET_OUTPUT_DEVICE_LIST, &data) == ATOM_SUCCESS) OutputDeviceList = data.OutputDeviceList; } @@ -983,8 +1017,14 @@ RHDPreInit(ScrnInfoPtr pScrn, int flags) xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Failed to load XAA module." " Falling back to ShadowFB.\n"); rhdPtr->AccelMethod = RHD_ACCEL_SHADOWFB; - } else + } + /* This is functionally void since 7.0 (old version scheme, + * and removed since 1.6.99.1 (new version scheme) */ + /* Assume anything >= 6.* is old version scheme */ +#if XORG_VERSION_CURRENT >= 6 * 10000000 + else xf86LoaderReqSymLists(xaaSymbols, NULL); +#endif } #ifdef USE_EXA @@ -994,9 +1034,14 @@ RHDPreInit(ScrnInfoPtr pScrn, int flags) xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Failed to load EXA module." " Falling back to ShadowFB.\n"); rhdPtr->AccelMethod = RHD_ACCEL_SHADOWFB; - } else { - xf86LoaderReqSymLists(exaSymbols, NULL); } + /* This is functionally void since 7.0 (old version scheme, + * and removed since 1.6.99.1 (new version scheme) */ + /* Assume anything >= 6.* is old version scheme */ +#if XORG_VERSION_CURRENT >= 6 * 10000000 + else + xf86LoaderReqSymLists(exaSymbols, NULL); +#endif } #endif /* USE_EXA */ @@ -1034,7 +1079,9 @@ RHDScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) ScrnInfoPtr pScrn; RHDPtr rhdPtr; VisualPtr visual; +#ifndef XSERVER_LIBPCIACCESS unsigned int racflag = 0; +#endif #ifdef USE_DRI Bool DriScreenInited = FALSE; #endif @@ -1126,6 +1173,10 @@ RHDScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) fbPictureInit(pScreen, 0, 0); xf86SetBlackWhitePixels(pScreen); + /* Static power management */ + if (rhdPtr->Pm) + rhdPtr->Pm->SelectState (rhdPtr, RHD_PM_IDLE); + #ifdef USE_DRI if (DriScreenInited) rhdPtr->directRenderingEnabled = RHDDRIFinishScreenInit(pScreen); @@ -1145,19 +1196,31 @@ RHDScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) break; case RHD_ACCEL_XAA: if (rhdPtr->ChipSet < RHD_R600) { - if (!R5xxXAAInit(pScrn, pScreen)) + if (!R5xxXAAInit(pScrn, pScreen)) { rhdPtr->AccelMethod = RHD_ACCEL_NONE; - } else + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "Failed to initalize XAA; disabling acceleration.\n"); + } + } else { rhdPtr->AccelMethod = RHD_ACCEL_NONE; + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "XAA is not supported on R600 and above; disabling acceleration.\n"); + } break; #ifdef USE_DRI case RHD_ACCEL_EXA: if (rhdPtr->ChipSet < RHD_R600) { - if (!R5xxEXAInit(pScrn, pScreen)) + if (!R5xxEXAInit(pScrn, pScreen)) { rhdPtr->AccelMethod = RHD_ACCEL_NONE; + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "Failed to initalize EXA; disabling acceleration.\n"); + } } else { - if (!R6xxEXAInit(pScrn, pScreen)) + if (!R6xxEXAInit(pScrn, pScreen)) { rhdPtr->AccelMethod = RHD_ACCEL_NONE; + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "Failed to initalize EXA; disabling acceleration.\n"); + } } break; #endif /* USE_DRI */ @@ -1224,7 +1287,9 @@ RHDScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) CMAP_PALETTED_TRUECOLOR | CMAP_RELOAD_ON_MODE_SWITCH)) return FALSE; +#ifndef XSERVER_LIBPCIACCESS pScrn->racIoFlags = pScrn->racMemFlags = racflag; +#endif /* Function to unblank, so that we don't show an uninitialised FB */ pScreen->SaveScreen = RHDSaveScreen; @@ -1410,6 +1475,10 @@ RHDEnterVT(int scrnIndex, int flags) /* enable/disable audio */ RHDAudioSetEnable(rhdPtr, rhdPtr->audio.val.bool); + /* Static power management */ + if (rhdPtr->Pm) + rhdPtr->Pm->SelectState (rhdPtr, RHD_PM_IDLE); + #ifdef USE_DRI if (rhdPtr->dri) RHDDRIEnterVT(pScrn->pScreen); @@ -1619,13 +1688,70 @@ RHDLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors, RHDPtr rhdPtr = RHDPTR(pScrn); struct rhdCrtc *Crtc; - Crtc = rhdPtr->Crtc[0]; - if ((pScrn->scrnIndex == Crtc->scrnIndex) && Crtc->Active) - Crtc->LUT->Set(Crtc->LUT, numColors, indices, colors); + CARD16 red[256], green[256], blue[256]; + int i, index, j, n; + Bool partial_table = FALSE; + + switch (pScrn->depth) { + case 8: + case 24: + case 32: + if (numColors < 256) { + partial_table = TRUE; + break; + } + for (i = 0; i < numColors; i++) { + index = indices[i]; + red[index] = colors[index].red << 6; + green[index] = colors[index].green << 6; + blue[index] = colors[index].blue << 6; + } + break; + case 16: + if (numColors < 64) { + partial_table = TRUE; + break; + } + /* 6 bits of green, 5 bits of red and blue each */ + for (i = 0; i < numColors; i++) { + index = indices[i]; + n = index * 4; + for (j = 0; j < 4; j++) { + red[n + j] = colors[index/2].red << 6; + green[n + j] = colors[index].green << 6; + blue[n + j] = colors[index/2].blue << 6; + } + } + break; + case 15: + if (numColors < 32) { + partial_table = TRUE; + break; + } + /* 5 bits each */ + for (i = 0; i < numColors; i++) { + int j, n; + + index = indices[i]; + n = index * 8; + for (j = 0; j < 8; j++) { + red[n + j] = colors[index].red << 6; + green[n + j] = colors[index].green << 6; + blue[n+ j] = colors[index].blue << 6; + } + } + break; + } - Crtc = rhdPtr->Crtc[1]; - if ((pScrn->scrnIndex == Crtc->scrnIndex) && Crtc->Active) - Crtc->LUT->Set(Crtc->LUT, numColors, indices, colors); + for (i = 0; i < 2; i++) { + Crtc = rhdPtr->Crtc[i]; + if ((pScrn->scrnIndex == Crtc->scrnIndex) && Crtc->Active) { + if (!partial_table) + Crtc->LUT->Set(Crtc->LUT, red, green, blue); + else + Crtc->LUT->SetRows(Crtc->LUT, numColors, indices, colors); + } + } } /* @@ -1808,7 +1934,7 @@ rhdMapFB(RHDPtr rhdPtr) option = X_CONFIG; SetIGPMemory = rhdPtr->unverifiedFeatures.val.bool; } - if (SetIGPMemory && RHD_MC_IGP_SideportMemoryPresent(rhdPtr)) { + if (SetIGPMemory && ! RHD_MC_IGP_SideportMemoryPresent(rhdPtr)) { SetIGPMemory = FALSE; option = X_DEFAULT; } @@ -1899,21 +2025,13 @@ rhdUnmapFB(RHDPtr rhdPtr) if (!rhdPtr->FbBase) return; - switch (rhdPtr->ChipSet) { - case RHD_RS690: - case RHD_RS740: - xf86UnMapVidMem(rhdPtr->scrnIndex, (pointer)rhdPtr->FbBase, - rhdPtr->FbMapSize); - break; - default: #ifdef XSERVER_LIBPCIACCESS - pci_device_unmap_range(rhdPtr->PciInfo, (pointer)rhdPtr->FbBase, - rhdPtr->FbMapSize); + pci_device_unmap_range(rhdPtr->PciInfo, (pointer)rhdPtr->FbBase, + rhdPtr->FbMapSize); #else - xf86UnMapVidMem(rhdPtr->scrnIndex, (pointer)rhdPtr->FbBase, - rhdPtr->FbMapSize); + xf86UnMapVidMem(rhdPtr->scrnIndex, (pointer)rhdPtr->FbBase, + rhdPtr->FbMapSize); #endif - } rhdPtr->FbBase = NULL; } @@ -2446,6 +2564,8 @@ rhdSave(RHDPtr rhdPtr) RHDCrtcSave(rhdPtr->Crtc[0]); RHDCrtcSave(rhdPtr->Crtc[1]); rhdSaveCursor(pScrn); + + RHDPmSave(rhdPtr); } /* @@ -2472,6 +2592,8 @@ rhdRestore(RHDPtr rhdPtr) RHDCrtcRestore(rhdPtr->Crtc[0]); RHDCrtcRestore(rhdPtr->Crtc[1]); + RHDPmRestore(rhdPtr); + RHDOutputsRestore(rhdPtr); #ifdef ATOM_BIOS RHDRestoreBiosScratchRegisters(rhdPtr, rhdPtr->BIOSScratch); @@ -2520,32 +2642,23 @@ CARD32 _RHDReadMC(int scrnIndex, CARD32 addr) { RHDPtr rhdPtr = RHDPTR(xf86Screens[scrnIndex]); - CARD32 ret; + CARD32 ret = 0; if (rhdPtr->ChipSet < RHD_RS600) { RHDRegWrite(rhdPtr, MC_IND_INDEX, addr); ret = RHDRegRead(rhdPtr, MC_IND_DATA); } else if (rhdPtr->ChipSet == RHD_RS600) { - RHDRegWrite(rhdPtr, RS60_MC_NB_MC_INDEX, addr); - ret = RHDRegRead(rhdPtr, RS60_MC_NB_MC_DATA); + RHDRegWrite(rhdPtr, RS600_MC_INDEX, ((addr & RS600_MC_INDEX_ADDR_MASK) | RS600_MC_INDEX_CITF_ARB0)); + ret = RHDRegRead(rhdPtr, RS600_MC_DATA); } else if (rhdPtr->ChipSet == RHD_RS690 || rhdPtr->ChipSet == RHD_RS740) { -#ifdef XSERVER_LIBPCIACCESS - CARD32 data = addr & ~RS69_MC_IND_WR_EN; - pci_device_cfg_write(rhdPtr->NBPciInfo, &(data), RS69_MC_INDEX, 4, NULL); - pci_device_cfg_read(rhdPtr->NBPciInfo, &ret, RS69_MC_DATA, 4, NULL); -#else - pciWriteLong(rhdPtr->NBPciTag, RS69_MC_INDEX, addr & ~RS69_MC_IND_WR_EN); - ret = pciReadLong(rhdPtr->NBPciTag, RS69_MC_DATA); -#endif + RHDRegWrite(rhdPtr, RS690_MC_INDEX, (addr & RS690_MC_INDEX_ADDR_MASK)); + ret = RHDRegRead(rhdPtr, RS690_MC_DATA); + } else if (rhdPtr->ChipSet == RHD_RS780 || rhdPtr->ChipSet == RHD_RS880) { + RHDRegWrite(rhdPtr, RS780_MC_INDEX, (addr & RS780_MC_INDEX_ADDR_MASK)); + ret = RHDRegRead(rhdPtr, RS780_MC_DATA); } else { -#ifdef XSERVER_LIBPCIACCESS - CARD32 data = addr & ~RS78_MC_IND_WR_EN; - pci_device_cfg_write(rhdPtr->NBPciInfo, &(data), RS78_NB_MC_IND_INDEX, 4, NULL); - pci_device_cfg_read(rhdPtr->NBPciInfo, &ret, RS78_NB_MC_IND_DATA, 4, NULL); -#else - pciWriteLong(rhdPtr->NBPciTag, RS78_NB_MC_IND_INDEX, (addr & ~RS78_MC_IND_WR_EN)); - ret = pciReadLong(rhdPtr->NBPciTag, RS78_NB_MC_IND_DATA); -#endif + xf86DrvMsg(rhdPtr->scrnIndex, X_ERROR, + "%s: shouldn't be here\n", __func__); } #ifdef RHD_DEBUG RHDDebug(scrnIndex,"%s(0x%08X) = 0x%08X\n",__func__,(unsigned int)addr, @@ -2568,28 +2681,18 @@ _RHDWriteMC(int scrnIndex, CARD32 addr, CARD32 data) RHDRegWrite(rhdPtr, MC_IND_INDEX, addr | MC_IND_WR_EN); RHDRegWrite(rhdPtr, MC_IND_DATA, data); } else if (rhdPtr->ChipSet == RHD_RS600) { - RHDRegWrite(rhdPtr, RS60_MC_NB_MC_INDEX, addr | RS60_NB_MC_IND_WR_EN); - RHDRegWrite(rhdPtr, RS60_MC_NB_MC_DATA, data); + RHDRegWrite(rhdPtr, RS600_MC_INDEX, ((addr & RS600_MC_INDEX_ADDR_MASK) | RS600_MC_INDEX_CITF_ARB0 | RS600_MC_INDEX_WR_EN)); + RHDRegWrite(rhdPtr, RS600_MC_DATA, data); } else if (rhdPtr->ChipSet == RHD_RS690 || rhdPtr->ChipSet == RHD_RS740) { -#ifdef XSERVER_LIBPCIACCESS - CARD32 tmp = addr | RS69_MC_IND_WR_EN; - pci_device_cfg_write(rhdPtr->NBPciInfo, &tmp, RS69_MC_INDEX, 4, NULL); - pci_device_cfg_write(rhdPtr->NBPciInfo, &data, RS69_MC_DATA, 4, NULL); -#else - pciWriteLong(rhdPtr->NBPciTag, RS69_MC_INDEX, addr | RS69_MC_IND_WR_EN); - pciWriteLong(rhdPtr->NBPciTag, RS69_MC_DATA, data); -#endif - - } else { -#ifdef XSERVER_LIBPCIACCESS - CARD32 tmp = addr | RS78_MC_IND_WR_EN; - pci_device_cfg_write(rhdPtr->NBPciInfo, &tmp, RS78_NB_MC_IND_INDEX, 4, NULL); - pci_device_cfg_write(rhdPtr->NBPciInfo, &data, RS78_NB_MC_IND_DATA, 4, NULL); -#else - pciWriteLong(rhdPtr->NBPciTag, RS78_NB_MC_IND_INDEX, addr | RS78_MC_IND_WR_EN); - pciWriteLong(rhdPtr->NBPciTag, RS78_NB_MC_IND_DATA, data); -#endif - + RHDRegWrite(rhdPtr, RS690_MC_INDEX, ((addr & RS690_MC_INDEX_ADDR_MASK) | RS690_MC_INDEX_WR_EN)); + RHDRegWrite(rhdPtr, RS690_MC_DATA, data); + RHDRegWrite(rhdPtr, RS690_MC_INDEX, RS690_MC_INDEX_WR_ACK); + } else if (rhdPtr->ChipSet == RHD_RS780 || rhdPtr->ChipSet == RHD_RS880) { + RHDRegWrite(rhdPtr, RS780_MC_INDEX, ((addr & RS780_MC_INDEX_ADDR_MASK) | RS780_MC_INDEX_WR_EN)); + RHDRegWrite(rhdPtr, RS780_MC_DATA, data); + } else { + xf86DrvMsg(rhdPtr->scrnIndex, X_ERROR, + "%s: shouldn't be here\n", __func__); } } @@ -2609,94 +2712,6 @@ _RHDWritePLL(int scrnIndex, CARD16 offset, CARD32 data) RHDRegWrite(rhdPtr, CLOCK_CNTL_DATA, data); } -#ifdef ATOM_BIOS - -/* - * - */ -static int -rhdGetArg(ScrnInfoPtr pScrn, CARD32 *val, char *ptr) -{ - int cnt = 0; - if (isspace(*ptr) || *ptr == '=') { - ptr++; - cnt++; - } - if (!strncasecmp("off",ptr,3)) { - *val = RHD_ATOMBIOS_OFF; - return cnt + 3; - } else if (!strncasecmp("on",ptr,2)) { - *val = RHD_ATOMBIOS_ON; - return cnt + 2; - } else if (!strncasecmp("force_off",ptr,9)) { - *val = RHD_ATOMBIOS_OFF | RHD_ATOMBIOS_FORCE; - return cnt + 9; - } else if (!strncasecmp("force_on",ptr,8)) { - *val = RHD_ATOMBIOS_ON | RHD_ATOMBIOS_FORCE; - return cnt + 8; - } else - return 0; -} - -/* - * - */ -static void -rhdParseAtomBIOSUsage(ScrnInfoPtr pScrn) -{ - RHDPtr rhdPtr = RHDPTR(pScrn); - RHDOpt atombios; - - RhdGetOptValString(rhdPtr->Options, OPTION_ATOMBIOS, - &atombios, NULL); - if (atombios.set) { - if (atombios.val.string) { - char *ptr = atombios.val.string; - CARD32 val; - - while (*ptr != '\0') { - int c; - while (isspace(*ptr)) - ptr++; - if (*ptr == '\0') - break; - - if (!strncasecmp("crtc",ptr,4)) { - ptr += 4; - if (!(c = rhdGetArg(pScrn,&val,ptr))) - goto parse_error; - ptr += c; - rhdPtr->UseAtomFlags &= ~((RHD_ATOMBIOS_FORCE | RHD_ATOMBIOS_ON | RHD_ATOMBIOS_OFF) << RHD_ATOMBIOS_CRTC); - rhdPtr->UseAtomFlags |= (val << RHD_ATOMBIOS_CRTC); - } - else if (!strncasecmp("output",ptr,6)) { - ptr += 6; - if (!(c = rhdGetArg(pScrn,&val,ptr))) - goto parse_error; - ptr += c; - rhdPtr->UseAtomFlags &= ~((RHD_ATOMBIOS_FORCE | RHD_ATOMBIOS_ON | RHD_ATOMBIOS_OFF) << RHD_ATOMBIOS_OUTPUT); - rhdPtr->UseAtomFlags |= (val << RHD_ATOMBIOS_OUTPUT); - } - else if (!strncasecmp("pll",ptr,3)) { - ptr += 3; - if (!(c = rhdGetArg(pScrn,&val,ptr))) - goto parse_error; - ptr += c; - rhdPtr->UseAtomFlags &= ~((RHD_ATOMBIOS_FORCE | RHD_ATOMBIOS_ON | RHD_ATOMBIOS_OFF) << RHD_ATOMBIOS_PLL); - rhdPtr->UseAtomFlags |= (val << RHD_ATOMBIOS_PLL); - } else goto parse_error; - } - } - } - return; - -parse_error: - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Cannot parse AtomBIOS usage string: %s\n",atombios.val.string); - rhdPtr->UseAtomFlags = 0; -} - -#endif /* ATOM_BIOS */ - /* * Apart from handling the respective option, this also tries to map out * what method is supported on which chips. @@ -2737,10 +2752,18 @@ rhdAccelOptionsHandle(ScrnInfoPtr pScrn) rhdPtr->AccelMethod = RHD_ACCEL_DEFAULT; if (rhdPtr->AccelMethod == RHD_ACCEL_DEFAULT) { +#ifdef USE_EXA + rhdPtr->AccelMethod = RHD_ACCEL_EXA; +#else if (rhdPtr->ChipSet < RHD_R600) rhdPtr->AccelMethod = RHD_ACCEL_XAA; else rhdPtr->AccelMethod = RHD_ACCEL_SHADOWFB; +#endif /* USE_EXA */ + /* RV740: EXA is extremely slow due to DFS breaking for <32x32 images + * and Composite breaking with partial DFS */ + if (rhdPtr->ChipSet == RHD_RV740) + rhdPtr->AccelMethod = RHD_ACCEL_SHADOWFB; } if (noAccel.set && noAccel.val.bool && @@ -2749,15 +2772,6 @@ rhdAccelOptionsHandle(ScrnInfoPtr pScrn) rhdPtr->AccelMethod = RHD_ACCEL_SHADOWFB; } -#if 0 - if (rhdPtr->ChipSet >= RHD_R600) { - if (rhdPtr->AccelMethod > RHD_ACCEL_SHADOWFB) { - xf86DrvMsg(rhdPtr->scrnIndex, X_WARNING, "%s: HW 2D acceleration is" - " not implemented yet.\n", pScrn->chipset); - rhdPtr->AccelMethod = RHD_ACCEL_SHADOWFB; - } - } -#endif /* Now for some pretty print */ switch (rhdPtr->AccelMethod) { #ifdef USE_EXA @@ -2780,6 +2794,14 @@ rhdAccelOptionsHandle(ScrnInfoPtr pScrn) "All methods of acceleration have been disabled.\n"); break; } + + /* If shadowfb is explicitely selected AND dri is not explicitely asked + * for, disable dri as they don't go along */ + if (rhdPtr->AccelMethod == RHD_ACCEL_SHADOWFB && ! rhdPtr->useDRI.set) { + xf86DrvMsg(rhdPtr->scrnIndex, X_CONFIG, + "Disabling DRI by default with AccelMethod shadowfb.\n"); + rhdPtr->useDRI.val.bool = FALSE; + } } /* @@ -2790,6 +2812,10 @@ rhdProcessOptions(ScrnInfoPtr pScrn) { RHDPtr rhdPtr = RHDPTR(pScrn); RHDOpt hpd; +#ifdef ATOM_BIOS + RHDOpt atombios; +#endif + /* Collect all of the relevant option flags (fill in pScrn->options) */ xf86CollectOptions(pScrn, NULL); rhdPtr->Options = xnfcalloc(sizeof(RHDOptions), 1); @@ -2818,19 +2844,31 @@ rhdProcessOptions(ScrnInfoPtr pScrn) &rhdPtr->scaleTypeOpt, "default"); RhdGetOptValBool (rhdPtr->Options, OPTION_UNVERIFIED_FEAT, &rhdPtr->unverifiedFeatures, FALSE); -#ifdef ATOM_BIOS - RhdGetOptValBool (rhdPtr->Options, OPTION_USE_ATOMBIOS, - &rhdPtr->UseAtomBIOS, FALSE); -#endif RhdGetOptValBool (rhdPtr->Options, OPTION_AUDIO, &rhdPtr->audio, TRUE); + RhdGetOptValString (rhdPtr->Options, OPTION_AUDIO_WORKAROUND, + &rhdPtr->audioWorkaround, "none"); RhdGetOptValString (rhdPtr->Options, OPTION_HDMI, &rhdPtr->hdmi, "none"); RhdGetOptValString(rhdPtr->Options, OPTION_COHERENT, &rhdPtr->coherent, NULL); + RhdGetOptValBool (rhdPtr->Options, OPTION_FORCE_LOW_POWER, + &rhdPtr->lowPowerMode, FALSE); + RhdGetOptValInteger(rhdPtr->Options, OPTION_LOW_POWER_CLOCK, + &rhdPtr->lowPowerModeEngineClock, 0); + #ifdef ATOM_BIOS - rhdParseAtomBIOSUsage(pScrn); + RhdGetOptValBool (rhdPtr->Options, OPTION_USE_ATOMBIOS, + &rhdPtr->UseAtomBIOS, FALSE); + RhdGetOptValString (rhdPtr->Options, OPTION_ATOMBIOS, + &atombios, NULL); + if (atombios.set && atombios.val.string) { + if (! rhdUpdateAtomBIOSUsage (rhdPtr, atombios.val.string)) + xf86DrvMsg(rhdPtr->scrnIndex, X_ERROR, "Cannot parse AtomBIOS usage string: %s\n", + atombios.val.string); + } #endif + rhdAccelOptionsHandle(pScrn); rhdPtr->hpdUsage = RHD_HPD_USAGE_AUTO; diff --git a/driver/xf86-video-radeonhd/src/rhd_hdmi.c b/driver/xf86-video-radeonhd/src/rhd_hdmi.c index 9a525367c..c786fcd96 100644 --- a/driver/xf86-video-radeonhd/src/rhd_hdmi.c +++ b/driver/xf86-video-radeonhd/src/rhd_hdmi.c @@ -229,22 +229,16 @@ HdmiAudioInfoFrame( } /* - * it's unknown what these bits do excatly, but it's indeed quite usefull for debugging + * test if audio buffer is filled enough to start playing */ -static void -HdmiAudioDebugWorkaround(struct rhdHdmi* hdmi, Bool Enable) +static Bool +IsAudioBufferFilled(struct rhdHdmi *hdmi) { - if(Enable) { - RHDRegMask(hdmi, hdmi->Offset+HDMI_CNTL, 0x1000, 0x1000); - RHDRegWrite(hdmi, hdmi->Offset+HDMI_AUDIO_DEBUG, 0xffffff); - } else { - RHDRegMask(hdmi, hdmi->Offset+HDMI_CNTL, 0, 0x1000); - } + return (RHDRegRead(hdmi, hdmi->Offset+HDMI_STATUS) & 0x10) != 0; } /* * allocate/initialize the HDMI structure - * and register with audio engine * output selects which engine is used */ struct rhdHdmi* @@ -253,17 +247,21 @@ RHDHdmiInit(RHDPtr rhdPtr, struct rhdOutput* Output) struct rhdHdmi *hdmi; RHDFUNC(rhdPtr); - if(rhdPtr->ChipSet >= RHD_R600) { + if(rhdPtr->ChipSet >= RHD_RS600) { hdmi = (struct rhdHdmi *) xnfcalloc(sizeof(struct rhdHdmi), 1); hdmi->scrnIndex = rhdPtr->scrnIndex; hdmi->Output = Output; + switch(Output->Id) { case RHD_OUTPUT_TMDSA: hdmi->Offset = HDMI_TMDS; break; case RHD_OUTPUT_LVTMA: - hdmi->Offset = HDMI_LVTMA; + if(RHDOutputTmdsIndex(Output) == 0) + hdmi->Offset = HDMI_TMDS; + else + hdmi->Offset = HDMI_LVTMA; break; case RHD_OUTPUT_UNIPHYA: @@ -283,7 +281,6 @@ RHDHdmiInit(RHDPtr rhdPtr, struct rhdOutput* Output) break; } hdmi->Stored = FALSE; - RHDAudioRegisterHdmi(rhdPtr, hdmi); return hdmi; } else return NULL; @@ -300,8 +297,6 @@ RHDHdmiSetMode(struct rhdHdmi *hdmi, DisplayModePtr Mode) RHDAudioSetClock(RHDPTRI(hdmi), hdmi->Output, Mode->Clock); - HdmiAudioDebugWorkaround(hdmi, FALSE); - RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_0, 0x1000); RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_1, 0x0); RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_2, 0x1000); @@ -309,25 +304,51 @@ RHDHdmiSetMode(struct rhdHdmi *hdmi, DisplayModePtr Mode) HdmiAudioClockRegeneration(hdmi, Mode->Clock); RHDRegWrite(hdmi, hdmi->Offset+HDMI_VIDEOCNTL, 0x13); + RHDRegWrite(hdmi, hdmi->Offset+HDMI_VERSION, 0x202); HdmiVideoInfoFrame(hdmi, RGB, FALSE, 0, 0, 0, 0, 0, FALSE, 0, 0, 0, 0, 0, 0, 0, 0, 0); + /* it's unknown what these bits do excatly, but it's indeed quite usefull for debugging */ + RHDRegWrite(hdmi, hdmi->Offset+HDMI_AUDIO_DEBUG_0, 0x00FFFFFF); + RHDRegWrite(hdmi, hdmi->Offset+HDMI_AUDIO_DEBUG_1, 0x007FFFFF); + RHDRegWrite(hdmi, hdmi->Offset+HDMI_AUDIO_DEBUG_2, 0x00000001); + RHDRegWrite(hdmi, hdmi->Offset+HDMI_AUDIO_DEBUG_3, 0x00000001); + + RHDHdmiCommitAudioWorkaround(hdmi); + /* audio packets per line, does anyone know how to calc this ? */ - RHDRegMask(hdmi, hdmi->Offset+HDMI_CNTL, 0x020000, 0x1F0000); + RHDRegMask(hdmi, hdmi->Offset+HDMI_CNTL, 0x00040000, 0x001F0000); /* update? reset? don't realy know */ RHDRegMask(hdmi, hdmi->Offset+HDMI_CNTL, 0x14000000, 0x14000000); } /* - * update settings whith current parameters from audio engine + * have buffer status changed since last call? + */ +Bool +RHDHdmiBufferStatusChanged(struct rhdHdmi* hdmi) +{ + Bool status, result; + + if(!hdmi) return FALSE; + RHDFUNC(hdmi); + + status = IsAudioBufferFilled(hdmi); + result = hdmi->SavedBufferStatus != status; + hdmi->SavedBufferStatus = status; + + return result; +} + +/* + * update settings with current parameters from audio engine */ void RHDHdmiUpdateAudioSettings( struct rhdHdmi* hdmi, - Bool playing, int channels, int rate, int bps, @@ -342,13 +363,11 @@ RHDHdmiUpdateAudioSettings( xf86DrvMsg(hdmi->scrnIndex, X_INFO, "%s: %s with " "%d channels, %d Hz sampling rate, %d bits per sample,\n", - __func__, playing ? "playing" : "stoped", channels, rate, bps); + __func__, IsAudioBufferFilled(hdmi) ? "playing" : "stopped", + channels, rate, bps); xf86DrvMsg(hdmi->scrnIndex, X_INFO, "%s: " "0x%02x IEC60958 status bits and 0x%02x category code\n", - __func__, (int)status_bits, (int)category_code); - - /* start delivering audio frames */ - RHDRegMask(hdmi, hdmi->Offset+HDMI_CNTL, playing ? 1 : 0, 0x1); + __func__, (int)status_bits, (int)category_code); iec = 0; if(status_bits & AUDIO_STATUS_PROFESSIONAL) iec |= 1 << 0; @@ -382,14 +401,19 @@ RHDHdmiUpdateAudioSettings( RHDRegMask(hdmi, hdmi->Offset+HDMI_IEC60958_2, iec, 0x5000f); + /* 0x021 or 0x031 sets the audio frame length */ RHDRegWrite(hdmi, hdmi->Offset+HDMI_AUDIOCNTL, 0x31); HdmiAudioInfoFrame(hdmi, channels-1, 0, 0, 0, 0, 0, 0, FALSE); - RHDRegMask(hdmi, hdmi->Offset+HDMI_CNTL, 0x400000, 0x400000); + RHDHdmiCommitAudioWorkaround(hdmi); + + /* update? reset? don't realy know */ + RHDRegMask(hdmi, hdmi->Offset+HDMI_CNTL, 0x04000000, 0x04000000); } /* * enable/disable the HDMI engine + * and register with audio engine */ void RHDHdmiEnable(struct rhdHdmi *hdmi, Bool Enable) @@ -401,18 +425,19 @@ RHDHdmiEnable(struct rhdHdmi *hdmi, Bool Enable) * so enabling/disabling HDMI was moved here for TMDSA and LVTMA */ switch(hdmi->Output->Id) { case RHD_OUTPUT_TMDSA: - RHDRegMask(hdmi, TMDSA_CNTL, Enable ? 0x4 : 0x0, 0x4); - RHDRegWrite(hdmi, hdmi->Offset+HDMI_ENABLE, Enable ? 0x101 : 0x0); - break; + RHDRegMask(hdmi, TMDSA_CNTL, Enable ? 0x4 : 0x0, 0x4); + RHDRegWrite(hdmi, hdmi->Offset+HDMI_ENABLE, Enable ? 0x101 : 0x0); + break; case RHD_OUTPUT_LVTMA: - RHDRegMask(hdmi, LVTMA_CNTL, Enable ? 0x4 : 0x0, 0x4); - RHDRegWrite(hdmi, hdmi->Offset+HDMI_ENABLE, Enable ? 0x105 : 0x0); - break; + RHDRegMask(hdmi, LVTMA_CNTL, Enable ? 0x4 : 0x0, 0x4); + RHDRegWrite(hdmi, hdmi->Offset+HDMI_ENABLE, Enable ? 0x105 : 0x0); + break; case RHD_OUTPUT_UNIPHYA: case RHD_OUTPUT_UNIPHYB: case RHD_OUTPUT_KLDSKP_LVTMA: + /* This part is doubtfull in my opinion */ RHDRegWrite(hdmi, hdmi->Offset+HDMI_ENABLE, Enable ? 0x110 : 0x0); break; @@ -420,6 +445,57 @@ RHDHdmiEnable(struct rhdHdmi *hdmi, Bool Enable) xf86DrvMsg(hdmi->scrnIndex, X_ERROR, "%s: unknown HDMI output type\n", __func__); break; } + if(Enable) + RHDAudioRegisterHdmi(RHDPTRI(hdmi), hdmi); + else + RHDAudioUnregisterHdmi(RHDPTRI(hdmi), hdmi); +} + +/* + * enable/disable the audio workaround function + */ +void +RHDHdmiSetAudioWorkaround(struct rhdHdmi* hdmi, Bool Enable) +{ + if(!hdmi) return; + RHDFUNC(hdmi); + + hdmi->AudioDebugWorkaround = Enable; +} + +/* + * get status of the audio workaround function + */ +Bool +RHDHdmiGetAudioWorkaround(struct rhdHdmi* hdmi) +{ + if(!hdmi) return FALSE; + RHDFUNC(hdmi); + + return hdmi->AudioDebugWorkaround; +} + +/* + * commit the audio workaround status to the hardware + */ +void +RHDHdmiCommitAudioWorkaround(struct rhdHdmi* hdmi) +{ + if(!hdmi) return; + RHDFUNC(hdmi); + + if(IsAudioBufferFilled(hdmi)) { + /* disable audio workaround and start delivering of audio frames */ + RHDRegMask(hdmi, hdmi->Offset+HDMI_CNTL, 0x00000001, 0x00001001); + + } else if(hdmi->AudioDebugWorkaround) { + /* enable audio workaround and start delivering of audio frames */ + RHDRegMask(hdmi, hdmi->Offset+HDMI_CNTL, 0x00001001, 0x00001001); + + } else { + /* disable audio workaround and stop delivering of audio frames */ + RHDRegMask(hdmi, hdmi->Offset+HDMI_CNTL, 0x00000000, 0x00001001); + } } /* @@ -433,7 +509,10 @@ RHDHdmiSave(struct rhdHdmi *hdmi) hdmi->StoreEnable = RHDRegRead(hdmi, hdmi->Offset+HDMI_ENABLE); hdmi->StoreControl = RHDRegRead(hdmi, hdmi->Offset+HDMI_CNTL); - hdmi->StoredAudioDebugWorkaround = RHDRegRead(hdmi, hdmi->Offset+HDMI_AUDIO_DEBUG); + hdmi->StoredAudioDebugWorkaround[0x0] = RHDRegRead(hdmi, hdmi->Offset+HDMI_AUDIO_DEBUG_0); + hdmi->StoredAudioDebugWorkaround[0x1] = RHDRegRead(hdmi, hdmi->Offset+HDMI_AUDIO_DEBUG_1); + hdmi->StoredAudioDebugWorkaround[0x2] = RHDRegRead(hdmi, hdmi->Offset+HDMI_AUDIO_DEBUG_2); + hdmi->StoredAudioDebugWorkaround[0x3] = RHDRegRead(hdmi, hdmi->Offset+HDMI_AUDIO_DEBUG_3); hdmi->StoredFrameVersion = RHDRegRead(hdmi, hdmi->Offset+HDMI_VERSION); @@ -483,7 +562,10 @@ RHDHdmiRestore(struct rhdHdmi *hdmi) RHDRegWrite(hdmi, hdmi->Offset+HDMI_ENABLE, hdmi->StoreEnable); RHDRegWrite(hdmi, hdmi->Offset+HDMI_CNTL, hdmi->StoreControl); - RHDRegWrite(hdmi, hdmi->Offset+HDMI_AUDIO_DEBUG, hdmi->StoredAudioDebugWorkaround); + RHDRegWrite(hdmi, hdmi->Offset+HDMI_AUDIO_DEBUG_0, hdmi->StoredAudioDebugWorkaround[0x0]); + RHDRegWrite(hdmi, hdmi->Offset+HDMI_AUDIO_DEBUG_1, hdmi->StoredAudioDebugWorkaround[0x1]); + RHDRegWrite(hdmi, hdmi->Offset+HDMI_AUDIO_DEBUG_2, hdmi->StoredAudioDebugWorkaround[0x2]); + RHDRegWrite(hdmi, hdmi->Offset+HDMI_AUDIO_DEBUG_3, hdmi->StoredAudioDebugWorkaround[0x3]); RHDRegWrite(hdmi, hdmi->Offset+HDMI_VERSION, hdmi->StoredFrameVersion); diff --git a/driver/xf86-video-radeonhd/src/rhd_hdmi.h b/driver/xf86-video-radeonhd/src/rhd_hdmi.h index 42294172b..e86b5e2a9 100644 --- a/driver/xf86-video-radeonhd/src/rhd_hdmi.h +++ b/driver/xf86-video-radeonhd/src/rhd_hdmi.h @@ -35,11 +35,14 @@ struct rhdHdmi { struct rhdOutput* Output; CARD16 Offset; + Bool SavedBufferStatus; + Bool AudioDebugWorkaround; + Bool Stored; CARD32 StoreEnable; CARD32 StoreControl; CARD32 StoreUnknown[0x3]; - CARD32 StoredAudioDebugWorkaround; + CARD32 StoredAudioDebugWorkaround[0x4]; CARD32 StoredFrameVersion; CARD32 StoredVideoControl; @@ -63,9 +66,10 @@ struct rhdHdmi* RHDHdmiInit(RHDPtr rhdPtr, struct rhdOutput* Output); void RHDHdmiSetMode(struct rhdHdmi* rhdHdmi, DisplayModePtr Mode); void RHDHdmiEnable(struct rhdHdmi* rhdHdmi, Bool Enable); + +Bool RHDHdmiBufferStatusChanged(struct rhdHdmi* hdmi); void RHDHdmiUpdateAudioSettings( struct rhdHdmi* rhdHdmi, - Bool playing, int channels, int rate, int bps, @@ -73,6 +77,10 @@ void RHDHdmiUpdateAudioSettings( CARD8 catgory_code ); +void RHDHdmiSetAudioWorkaround(struct rhdHdmi* rhdHdmi, Bool Enabled); +Bool RHDHdmiGetAudioWorkaround(struct rhdHdmi* rhdHdmi); +void RHDHdmiCommitAudioWorkaround(struct rhdHdmi* rhdHdmi); + void RHDHdmiSave(struct rhdHdmi* rhdHdmi); void RHDHdmiRestore(struct rhdHdmi* rhdHdmi); diff --git a/driver/xf86-video-radeonhd/src/rhd_i2c.c b/driver/xf86-video-radeonhd/src/rhd_i2c.c index 3a45f8c76..d5b698a03 100644 --- a/driver/xf86-video-radeonhd/src/rhd_i2c.c +++ b/driver/xf86-video-radeonhd/src/rhd_i2c.c @@ -462,6 +462,7 @@ rhd5xxWriteReadChunk(I2CDevPtr i2cDevPtr, int line, I2CByte *WriteBuffer, I2CBusPtr I2CPtr = i2cDevPtr->pI2CBus; rhdI2CPtr I2C = (rhdI2CPtr)(I2CPtr->DriverPrivate.ptr); int prescale = I2C->prescale; + int i; CARD32 save_I2C_CONTROL1, save_494; CARD32 tmp32; Bool ret = TRUE; @@ -476,8 +477,13 @@ rhd5xxWriteReadChunk(I2CDevPtr i2cDevPtr, int line, I2CByte *WriteBuffer, R5_DC_I2C_SW_WANTS_TO_USE_I2C, R5_DC_I2C_SW_WANTS_TO_USE_I2C); - if (!RHDRegRead(I2CPtr, R5_DC_I2C_ARBITRATION) & R5_DC_I2C_SW_CAN_USE_I2C) { - RHDDebug(I2CPtr->scrnIndex, "%s SW cannot use I2C line %i\n",__func__,line); + for (i = 0; i < 50; i++) { + if (RHDRegRead(I2CPtr, R5_DC_I2C_ARBITRATION) & R5_DC_I2C_SW_CAN_USE_I2C) + break; + usleep(1); + } + if (i >= 50) { + xf86DrvMsg(I2CPtr->scrnIndex,X_ERROR, "%s: SW cannot use I2C line %i\n",__func__,line); ret = FALSE; } else { @@ -1157,7 +1163,7 @@ rhdGetI2CPrescale(RHDPtr rhdPtr) if (rhdPtr->ChipSet < RHD_R600) { if (RHDAtomBiosFunc(rhdPtr->scrnIndex, rhdPtr->atomBIOS, - GET_DEFAULT_ENGINE_CLOCK, &atomBiosArg) + ATOM_GET_DEFAULT_ENGINE_CLOCK, &atomBiosArg) == ATOM_SUCCESS) return (0x7f << 8) + (atomBiosArg.val / (4 * 0x7f * TARGET_HW_I2C_CLOCK)); @@ -1166,13 +1172,13 @@ rhdGetI2CPrescale(RHDPtr rhdPtr) + (DEFAULT_ENGINE_CLOCK / (4 * 0x7f * TARGET_HW_I2C_CLOCK)); } else if (rhdPtr->ChipSet < RHD_RV620) { if (RHDAtomBiosFunc(rhdPtr->scrnIndex, rhdPtr->atomBIOS, - GET_REF_CLOCK, &atomBiosArg) == ATOM_SUCCESS) + ATOM_GET_REF_CLOCK, &atomBiosArg) == ATOM_SUCCESS) return (atomBiosArg.val / TARGET_HW_I2C_CLOCK); else return (DEFAULT_REF_CLOCK / TARGET_HW_I2C_CLOCK); } else { if (RHDAtomBiosFunc(rhdPtr->scrnIndex, rhdPtr->atomBIOS, - GET_REF_CLOCK, &atomBiosArg) == ATOM_SUCCESS) + ATOM_GET_REF_CLOCK, &atomBiosArg) == ATOM_SUCCESS) return (atomBiosArg.val / (4 * TARGET_HW_I2C_CLOCK)); else return (DEFAULT_REF_CLOCK / (4 * TARGET_HW_I2C_CLOCK)); diff --git a/driver/xf86-video-radeonhd/src/rhd_id.c b/driver/xf86-video-radeonhd/src/rhd_id.c index 4a162c37b..6dfaa295d 100644 --- a/driver/xf86-video-radeonhd/src/rhd_id.c +++ b/driver/xf86-video-radeonhd/src/rhd_id.c @@ -29,7 +29,9 @@ #include "git_version.h" #include "xf86.h" +#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6 #include "xf86Resources.h" +#endif #include "rhd.h" #ifdef ATOM_BIOS @@ -73,23 +75,34 @@ SymTabRec RHDChipsets[] = { { RHD_M72, "M72" }, { RHD_M74, "M74" }, { RHD_M76, "M76" }, - /* RV670 came into existence after RV6x0 and M7x */ - { RHD_RV670, "RV670" }, - { RHD_M88, "M88" }, - { RHD_R680, "R680" }, + /* R600 second batch */ { RHD_RV620, "RV620" }, - { RHD_M82, "M82" }, { RHD_RV635, "RV635" }, - { RHD_M86, "M86" }, + { RHD_RV670, "RV670" }, + { RHD_R680, "R680" }, + /* R700 Mobility */ + { RHD_M82, "M82" }, + { RHD_M88, "M88" }, + { RHD_M86, "M86" }, + /* R600 integrated */ { RHD_RS780, "RS780" }, { RHD_RS880, "RS880" }, - { RHD_RV770, "RV770" }, - { RHD_RV730, "RV730" }, + /* R700 */ + { RHD_R700, "R700" }, { RHD_RV710, "RV710" }, + { RHD_RV730, "RV730" }, + { RHD_RV740, "RV740" }, + { RHD_RV770, "RV770" }, + { RHD_RV790, "RV790" }, + /* R700 Mobility */ + { RHD_M92, "M92" }, + { RHD_M93, "M93" }, + { RHD_M96, "M96" }, + { RHD_M97, "M97" }, + { RHD_M98, "M98" }, { -1, NULL } }; -resRange res_none[] = { _END }; /* * This is what people would refer to as "Petite". @@ -101,6 +114,8 @@ resRange res_none[] = { _END }; # define PCI_ID_LIST struct pci_id_match RHDDeviceMatch[] # define LIST_END { 0, 0, (~0), (~0), 0, 0, 0 } #else +resRange res_none[] = { _END }; + # define RHD_DEVICE_ENTRY(d, i, r) \ { (i), (d), r } # define RHD_DEVICE_MATCH(d, i) \ @@ -225,34 +240,46 @@ const PCI_ID_LIST = { RHD_DEVICE_MATCH( 0x9440, RHD_RV770 ), /* ATI Radeon 4800 Series */ RHD_DEVICE_MATCH( 0x9441, RHD_RV770 ), /* ATI Radeon 4870 X2 */ RHD_DEVICE_MATCH( 0x9442, RHD_RV770 ), /* ATI Radeon 4800 Series */ -// RHD_DEVICE_MATCH( 0x9443, RHD_R700 ), /* ATI Radeon 4800 Series */ + RHD_DEVICE_MATCH( 0x9443, RHD_RV770 ), /* ATI Radeon 4850 X2 */ RHD_DEVICE_MATCH( 0x9444, RHD_RV770 ), /* Everest ATI FirePro Graphics Accelerator */ RHD_DEVICE_MATCH( 0x9446, RHD_RV770 ), /* K2 ATI FirePro Graphics Accelerator */ -// RHD_DEVICE_MATCH( 0x9447, RHD_R700 ), /* K2 ATI FirePro Graphics Accelerator */ - RHD_DEVICE_MATCH( 0x944A, RHD_M98 ), /* M98 */ - RHD_DEVICE_MATCH( 0x944B, RHD_M98 ), /* M98 */ - RHD_DEVICE_MATCH( 0x944C, RHD_RV770 ), /* RV770 */ + RHD_DEVICE_MATCH( 0x9447, RHD_R700 ), /* ATI FirePro V8700 Duo */ + RHD_DEVICE_MATCH( 0x944A, RHD_M98 ), /* ATI MOBILITY RADEON HD 4850 */ + RHD_DEVICE_MATCH( 0x944B, RHD_M98 ), /* ATI MOBILITY RADEON HD 4850 X2 */ + RHD_DEVICE_MATCH( 0x944C, RHD_RV770 ), /* ATI RADEON HD 4800 Series */ RHD_DEVICE_MATCH( 0x944E, RHD_RV770 ), /* RV770 */ -// RHD_DEVICE_MATCH( 0x944F, RHD_R700 ), /* R700 */ +/* RHD_DEVICE_MATCH( 0x944F, RHD_R700 ), *//* R700 */ + RHD_DEVICE_MATCH( 0x9450, RHD_RV770 ), /* AMD FireStream 9270 */ + RHD_DEVICE_MATCH( 0x9452, RHD_RV770 ), /* AMD FireStream 9250 */ RHD_DEVICE_MATCH( 0x9456, RHD_RV770 ), /* Denali ATI FirePro Graphics Accelerator */ - RHD_DEVICE_MATCH( 0x945A, RHD_M98 ), /* M98 */ - RHD_DEVICE_MATCH( 0x945B, RHD_M98 ), /* M98 */ - RHD_DEVICE_MATCH( 0x9460, RHD_RV770 ), /* RV790 */ - RHD_DEVICE_MATCH( 0x9462, RHD_RV770 ), /* RV790 */ - RHD_DEVICE_MATCH( 0x946A, RHD_M98 ), /* M98 */ - RHD_DEVICE_MATCH( 0x946B, RHD_M98 ), /* M98 */ - RHD_DEVICE_MATCH( 0x947A, RHD_M98 ), /* M98 */ - RHD_DEVICE_MATCH( 0x947B, RHD_M98 ), /* M96 */ - RHD_DEVICE_MATCH( 0x9480, RHD_M96 ), /* M98 */ + RHD_DEVICE_MATCH( 0x945A, RHD_M98 ), /* ATI MOBILITY RADEON HD 4870 */ + RHD_DEVICE_MATCH( 0x945B, RHD_M98 ), /* M98 */ + RHD_DEVICE_MATCH( 0x9460, RHD_RV790 ), /* RV790 */ + RHD_DEVICE_MATCH( 0x9462, RHD_RV790 ), /* RV790 */ + RHD_DEVICE_MATCH( 0x946A, RHD_M98 ), /* M98 */ + RHD_DEVICE_MATCH( 0x946B, RHD_M98 ), /* M98 */ + RHD_DEVICE_MATCH( 0x947A, RHD_M98 ), /* M98 */ + RHD_DEVICE_MATCH( 0x947B, RHD_M98 ), /* M98 */ + RHD_DEVICE_MATCH( 0x9480, RHD_M96 ), /* ATI MOBILITY RADEON HD 4650 */ RHD_DEVICE_MATCH( 0x9487, RHD_RV730 ), /* RV730 */ - RHD_DEVICE_MATCH( 0x9488, RHD_M96 ), /* M96 */ - RHD_DEVICE_MATCH( 0x9489, RHD_M96 ), /* M96M GL */ + RHD_DEVICE_MATCH( 0x9488, RHD_M96 ), /* ATI MOBILITY RADEON HD 4670 */ + RHD_DEVICE_MATCH( 0x9489, RHD_M96 ), /* M96M GL */ RHD_DEVICE_MATCH( 0x948F, RHD_RV730 ), /* RV730 */ - RHD_DEVICE_MATCH( 0x9487, RHD_RV730 ), /* RV730 */ - RHD_DEVICE_MATCH( 0x9490, RHD_RV730 ), /* RV730 */ - RHD_DEVICE_MATCH( 0x9498, RHD_RV730 ), /* RV730 */ - RHD_DEVICE_MATCH( 0x949E, RHD_RV730 ), /* RV730 */ - RHD_DEVICE_MATCH( 0x949F, RHD_RV730 ), /* RV730 */ + RHD_DEVICE_MATCH( 0x9490, RHD_RV730 ), /* ATI RADEON HD 4670 */ + RHD_DEVICE_MATCH( 0x9491, RHD_RV730 ), /* ATI RADEON E4600 */ + RHD_DEVICE_MATCH( 0x9495, RHD_RV730 ), /* ATI Radeon HD 4600 Series */ + RHD_DEVICE_MATCH( 0x9498, RHD_RV730 ), /* ATI RADEON HD 4650 */ + RHD_DEVICE_MATCH( 0x949C, RHD_RV730 ), /* ATI FirePro V7750 */ + RHD_DEVICE_MATCH( 0x949E, RHD_RV730 ), /* ATI FirePro V5700 */ + RHD_DEVICE_MATCH( 0x949F, RHD_RV730 ), /* ATI FirePro V3750 */ + RHD_DEVICE_MATCH( 0x94A0, RHD_M97 ), /* Mobility Radeon HD 4830 */ + RHD_DEVICE_MATCH( 0x94A1, RHD_M97 ), /* Mobility Radeon HD 4850 */ + RHD_DEVICE_MATCH( 0x94A3, RHD_M97 ), /* ATI FirePro M7740 */ + RHD_DEVICE_MATCH( 0x94B1, RHD_RV740 ), /* RV740 */ + RHD_DEVICE_MATCH( 0x94B3, RHD_RV740 ), /* Radeon HD 4770 */ + RHD_DEVICE_MATCH( 0x94B4, RHD_RV740 ), /* Radeon HD 4700 Series */ + RHD_DEVICE_MATCH( 0x94B5, RHD_RV740 ), /* Radeon HD 4770 */ + RHD_DEVICE_MATCH( 0x94B9, RHD_M97 ), /* ATI FirePro M5750 */ RHD_DEVICE_MATCH( 0x94C0, RHD_RV610 ), /* RV610 */ RHD_DEVICE_MATCH( 0x94C1, RHD_RV610 ), /* Radeon HD 2400 XT */ RHD_DEVICE_MATCH( 0x94C3, RHD_RV610 ), /* Radeon HD 2400 Pro */ @@ -264,24 +291,30 @@ const PCI_ID_LIST = { RHD_DEVICE_MATCH( 0x94C9, RHD_M72 ), /* Mobility Radeon HD 2400 */ RHD_DEVICE_MATCH( 0x94CB, RHD_M72 ), /* ATI RADEON E2400 */ RHD_DEVICE_MATCH( 0x94CC, RHD_RV610 ), /* ATI Radeon HD 2400 */ + RHD_DEVICE_MATCH( 0x94CD, RHD_RV610 ), /* ATI FireMV 2260 */ RHD_DEVICE_MATCH( 0x9500, RHD_RV670 ), /* RV670 */ RHD_DEVICE_MATCH( 0x9501, RHD_RV670 ), /* ATI Radeon HD3870 */ - RHD_DEVICE_MATCH( 0x9504, RHD_M88 ), /* ATI Mobility Radeon HD 3850 */ + RHD_DEVICE_MATCH( 0x9504, RHD_M88 ), /* ATI Mobility Radeon HD 3850 */ RHD_DEVICE_MATCH( 0x9505, RHD_RV670 ), /* ATI Radeon HD3850 */ - RHD_DEVICE_MATCH( 0x9506, RHD_M88 ), /* ATI Mobility Radeon HD 3850 X2 */ - RHD_DEVICE_MATCH( 0x9507, RHD_RV670 ), /* RV670 */ - RHD_DEVICE_MATCH( 0x9508, RHD_M88 ), /* ATI Mobility Radeon HD 3870 */ - RHD_DEVICE_MATCH( 0x9509, RHD_M88 ), /* ATI Mobility Radeon HD 3870 X2 */ + RHD_DEVICE_MATCH( 0x9506, RHD_M88 ), /* ATI Mobility Radeon HD 3850 X2 */ + RHD_DEVICE_MATCH( 0x9507, RHD_RV670 ), /* ATI RADEON HD 3830 */ + RHD_DEVICE_MATCH( 0x9508, RHD_M88 ), /* ATI Mobility Radeon HD 3870 */ + RHD_DEVICE_MATCH( 0x9509, RHD_M88 ), /* ATI Mobility Radeon HD 3870 X2 */ RHD_DEVICE_MATCH( 0x950F, RHD_R680 ), /* ATI Radeon HD3870 X2 */ RHD_DEVICE_MATCH( 0x9511, RHD_RV670 ), /* ATI FireGL V7700 */ + RHD_DEVICE_MATCH( 0x9513, RHD_R680 ), /* ATI RADEON HD 3850 X2 */ RHD_DEVICE_MATCH( 0x9515, RHD_RV670 ), /* ATI Radeon HD 3850 AGP */ RHD_DEVICE_MATCH( 0x9517, RHD_RV670 ), /* ATI Radeon HD 3960 */ RHD_DEVICE_MATCH( 0x9519, RHD_RV670 ), /* FireStream 9170 */ - RHD_DEVICE_MATCH( 0x9540, RHD_RV710 ), /* */ + RHD_DEVICE_MATCH( 0x9540, RHD_RV710 ), /* ATI RADEON HD 4550 */ RHD_DEVICE_MATCH( 0x9541, RHD_RV710 ), /* */ RHD_DEVICE_MATCH( 0x9542, RHD_RV710 ), /* */ RHD_DEVICE_MATCH( 0x954E, RHD_RV710 ), /* */ - RHD_DEVICE_MATCH( 0x954f, RHD_RV710 ), /* */ + RHD_DEVICE_MATCH( 0x954F, RHD_RV710 ), /* ATI RADEON HD 4350 */ + RHD_DEVICE_MATCH( 0x9552, RHD_M92 ), /* Mobility Radeon HD 4300 Series */ + RHD_DEVICE_MATCH( 0x9553, RHD_M92 ), /* Mobility Radeon HD 4500 Series */ + RHD_DEVICE_MATCH( 0x9555, RHD_M93 ), /* Mobility Radeon M93 */ + RHD_DEVICE_MATCH( 0x9557, RHD_M93 ), /* ATI FirePro RG220 */ RHD_DEVICE_MATCH( 0x9580, RHD_RV630 ), /* RV630 */ RHD_DEVICE_MATCH( 0x9581, RHD_M76 ), /* Mobility Radeon HD 2600 */ RHD_DEVICE_MATCH( 0x9583, RHD_M76 ), /* Mobility Radeon HD 2600 XT */ @@ -297,26 +330,28 @@ const PCI_ID_LIST = { RHD_DEVICE_MATCH( 0x958F, RHD_M76 ), /* ATI Mobility FireGL Graphics Processor */ RHD_DEVICE_MATCH( 0x9590, RHD_RV635 ), /* ATI Radeon HD 3600 Series */ RHD_DEVICE_MATCH( 0x9591, RHD_M86 ), /* Mobility Radeon HD 3650 */ + RHD_DEVICE_MATCH( 0x9592, RHD_RV710 ), /* */ RHD_DEVICE_MATCH( 0x9593, RHD_M86 ), /* Mobility Radeon HD 3670 */ RHD_DEVICE_MATCH( 0x9595, RHD_M86 ), /* Mobility FireGL V5700 */ RHD_DEVICE_MATCH( 0x9596, RHD_RV635 ), /* ATI Radeon HD 3650 AGP */ RHD_DEVICE_MATCH( 0x9597, RHD_RV635 ), /* ATI Radeon HD 3600 Series */ RHD_DEVICE_MATCH( 0x9598, RHD_RV635 ), /* ATI Radeon HD 3670 */ RHD_DEVICE_MATCH( 0x9599, RHD_RV635 ), /* ATI Radeon HD 3600 Series */ - RHD_DEVICE_MATCH( 0x959B, RHD_M86 ), /* Mobility FireGL Graphics Processor */ + RHD_DEVICE_MATCH( 0x959B, RHD_M86 ), /* ATI Mobility FireGL V5725 */ RHD_DEVICE_MATCH( 0x95C0, RHD_RV620 ), /* ATI Radeon HD 3470 */ RHD_DEVICE_MATCH( 0x95C2, RHD_M82 ), /* ATI Mobility Radeon HD 3430 (M82) */ RHD_DEVICE_MATCH( 0x95C4, RHD_M82 ), /* Mobility Radeon HD 3400 Series (M82) */ RHD_DEVICE_MATCH( 0x95C5, RHD_RV620 ), /* ATI Radeon HD 3450 */ RHD_DEVICE_MATCH( 0x95C6, RHD_RV620 ), /* ATI Radeon HD 3450 */ RHD_DEVICE_MATCH( 0x95C7, RHD_RV620 ), /* ATI Radeon HD 3430 */ + RHD_DEVICE_MATCH( 0x95C9, RHD_RV620 ), /* ATI Radeon HD 3450 */ RHD_DEVICE_MATCH( 0x95CC, RHD_RV620 ), /* Fire PRO Professional Graphics ASIC */ RHD_DEVICE_MATCH( 0x95CD, RHD_RV620 ), /* ATI FireMV 2450 */ RHD_DEVICE_MATCH( 0x95CE, RHD_RV620 ), /* ATI FireMV 2260 */ RHD_DEVICE_MATCH( 0x95CF, RHD_RV620 ), /* ATI FireMV 2260 */ RHD_DEVICE_MATCH( 0x9610, RHD_RS780 ), /* ATI Radeon HD 3200 Graphics */ RHD_DEVICE_MATCH( 0x9611, RHD_RS780 ), /* ATI Radeon 3100 Graphics */ - RHD_DEVICE_MATCH( 0x9612, RHD_RS780 ), /* ATI Radeon HD 3200 Graphics */ + RHD_DEVICE_MATCH( 0x9612, RHD_RS780 ), /* ATI Radeon HD 3200 Graphics */ RHD_DEVICE_MATCH( 0x9613, RHD_RS780 ), /* ATI Radeon 3100 Graphics */ RHD_DEVICE_MATCH( 0x9614, RHD_RS780 ), /* ATI Radeon HD 3300 Graphics */ RHD_DEVICE_MATCH( 0x9615, RHD_RS780 ), /* ATI Radeon HD 3200 Graphics */ @@ -380,22 +415,29 @@ RHDIdentify(int flags) "\tM72 : Mobility Radeon HD 2400; Radeon E2400.\n" "\tM74 : Mobility Radeon HD 2400 XT.\n" "\tM76 : Mobility Radeon HD 2600;\n" - "\t\t(Gemini ATI) Mobility Radeon HD 2600 XT.\n" - "\tM82 : Mobility Radeon HD 3400.\n"); + "\t\t(Gemini ATI) Mobility Radeon HD 2600 XT.\n"); xf86Msg(X_NONE, + "\tM82 : Mobility Radeon HD 3400.\n" "\tM86 : Mobility Radeon HD 3650, HD 3670, Mobility FireGL V5700.\n" - "\tM88 : Mobility Radeon HD 3850, HD 3850 X2, HD 3870, HD3870 X2.\n" + "\tM88 : Mobility Radeon HD 3850, HD 3850 X2, HD 3870, HD3870 X2.\n"); + xf86Msg(X_NONE, "\tRS600 : Radeon Xpress 1200, Xpress 1250.\n" "\tRS690 : Radeon X1200, X1250, X1270.\n" "\tRS740 : RS740, RS740M.\n" - "\tRS780 : Radeon HD 3100/3200/3300 Series.\n" - "\tRV770 : Radeon HD 4800 Series; Everest, K2, Denali ATI FirePro.\n"); + "\tRS780 : Radeon HD 3100/3200/3300 Series.\n"); xf86Msg(X_NONE, "\tR700 : Radeon R700.\n" - "\tM98 : Radeon M98 Mobility.\n" + "\tRV710 : Radeon HD4570, HD4350.\n" "\tRV730 : Radeon HD4670, HD4650.\n" - "\tM96 : Radeon M96 Mobility.\n" - "\tRV710 : Radeon HD4570, HD4350.\n"); + "\tRV740 : Radeon HD4770. EXPERIMENTAL AND UNTESTED.\n" + "\tRV770 : Radeon HD 4800 Series; Everest, K2, Denali ATI FirePro.\n" + "\tRV790 : Radeon HD 4890.\n"); + xf86Msg(X_NONE, + "\tM92 : Mobility Radeon HD4330, HD4530, HD4570. EXPERIMENTAL.\n" + "\tM93 : Mobility Radeon M93. EXPERIMENTAL AND UNTESTED.\n" + "\tM96 : Mobility Radeon HD4600.\n" + "\tM97 : Mobility Radeon HD4860. EXPERIMENTAL AND UNTESTED.\n" + "\tM98 : Mobility Radeon HD4850, HD4870.\n"); /* END_DEVICE_LIST marker - do not delete */ xf86Msg(X_NONE, "\n"); @@ -531,6 +573,23 @@ RHDIsIGP(enum RHD_CHIPSETS chipset) {RHD_CONNECTOR_DVI, "DVI-I", RHD_DDC_1, RHD_HPD_0, \ { RHD_OUTPUT_TMDSA, RHD_OUTPUT_DACB } } } +/* Wyse R-Class broke connector table info (DDC) in later BIOSes */ +#define DVI_AB2_DVI_C3 \ + { {RHD_CONNECTOR_DVI, "DVI-I DFP3 CRT1", RHD_DDC_2, RHD_HPD_NONE, \ + { RHD_OUTPUT_LVTMA, RHD_OUTPUT_DACA }}, \ + {RHD_CONNECTOR_DVI, "DVI-D DFP2", RHD_DDC_3, RHD_HPD_NONE, \ + { RHD_OUTPUT_DVO, RHD_OUTPUT_NONE }}} + +/* HIS Excalibur Radeon XT1650 Pro IceQ 256 */ +#define VGA_A0_DVI_AB1 \ +{ {RHD_CONNECTOR_DVI, "DVI-I DFP3 CRT1", RHD_DDC_0, RHD_HPD_NONE, \ + { RHD_OUTPUT_NONE, RHD_OUTPUT_DACA }}, \ + {RHD_CONNECTOR_TV, "COMPOSITE TV1", RHD_DDC_NONE, RHD_HPD_NONE, \ + {RHD_OUTPUT_DACB, RHD_OUTPUT_NONE }}, \ + {RHD_CONNECTOR_DVI, "VGA DFP1 CRT2", RHD_DDC_1, RHD_HPD_NONE, \ + { RHD_OUTPUT_TMDSA, RHD_OUTPUT_DACB }} } + + #if defined(USE_ID_CONNECTORS) || !defined(ATOM_BIOS) @@ -672,6 +731,7 @@ rhdCards[] = { 0x7140, 0x1787, 0x3000, "PowerColor X1550", RHD_CARD_FLAG_HPDSWAP, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, /* 0x7141 : RV505 : RV505 */ /* 0x7142 : RV515 : Radeon X1300/X1550 */ + { 0x7142, 0x1787, 0x3000, "ATI Radeon X1550", RHD_CARD_FLAG_HPDOFF, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, /* 0x7143 : RV505 : Radeon X1550 */ { 0x7143, 0x17AF, 0x204E, "HIS Radeon X1550 PCI", RHD_CARD_FLAG_NONE, VGA_A0_TV_B_DVI_BA10, DEVINFO_EMPTY }, /* 0x7144 : M54 : M54-GL */ @@ -686,6 +746,7 @@ rhdCards[] = /* 0x7146 : RV515 : Radeon X1300/X1550 */ { 0x7146, 0x174B, 0x0470, "Sapphire X1300", RHD_CARD_FLAG_NONE, VGA_B1_DVI_AB01, DEVINFO_EMPTY }, { 0x7146, 0x174B, 0x0920, "Sapphire X1300", RHD_CARD_FLAG_HPDSWAP, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, + { 0x7146, 0x174B, 0x0940, "X1300 HM", RHD_CARD_FLAG_HPDSWAP, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, { 0x7146, 0x1545, 0x2350, "Visiontek C1550", RHD_CARD_FLAG_NONE, VGA_A0_TV_B_DVI_BB10, DEVINFO_EMPTY }, /* 0x7147 : RV505 : Radeon X1550 64-bit */ { 0x7147, 0x174B, 0x0840, "Sapphire X1550", RHD_CARD_FLAG_HPDSWAP, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, @@ -716,6 +777,7 @@ rhdCards[] = { 0x7187, 0x1545, 0x1930, "RV516 : Radeon X1300", RHD_CARD_FLAG_NONE, VGA_A0_TV_B_DVI_XB11, DEVINFO_EMPTY }, /* 0x7188 : M64 : Mobility Radeon X2300 */ /* 0x718A : M64 : Mobility Radeon X2300 */ + { 0x718A, 0x1043, 0x1449, "Asus F3JR", RHD_CARD_FLAG_HPDOFF, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, /* 0x718B : M62 : Mobility Radeon X1350 */ /* 0x718C : M62 : Mobility Radeon X1350 */ /* 0x718D : M64 : Mobility Radeon X1450 */ @@ -742,6 +804,7 @@ rhdCards[] = /* 0x71C6 : RV530 : Radeon X1650 */ { 0x71C6, 0x174B, 0x0850, "Sapphire X1650 Pro AGP", RHD_CARD_FLAG_NONE, VGA_A0_DVI_BA10, DEVINFO_EMPTY }, { 0x71C6, 0x1462, 0x0400, "MSI RX1650 Pro", RHD_CARD_FLAG_NONE, DVI_BA10_DVI_AB01, DEVINFO_EMPTY }, + { 0x71C6, 0x17AF, 0x206A, "HIS Excalibur Radeon XT1650 Pro IceQ 256M", RHD_CARD_FLAG_NONE, VGA_A0_DVI_AB1, DEVINFO_EMPTY }, /* 0x71C7 : RV535 : Radeon X1650 */ { 0x71C7, 0x1043, 0x01B6, "Asus EAX1650 Silent", RHD_CARD_FLAG_NONE, VGA_A0_DVI_BB10, DEVINFO_EMPTY }, { 0x71C7, 0x1787, 0x2227, "Diamond Viper X1650 Pro", RHD_CARD_FLAG_HPDSWAP, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, @@ -796,6 +859,7 @@ rhdCards[] = /* 0x791E : RS690 : Radeon X1200 */ { 0x791E, 0x1043, 0x826D, "Asus M2A-VM", RHD_CARD_FLAG_NONE, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, /* 0x791F : RS690 : Radeon X1200 */ + { 0x791F, 0x1002, 0x053A, "Wyse R-Class", RHD_CARD_FLAG_NONE, DVI_AB2_DVI_C3, DEVINFO_EMPTY }, { 0x791F, 0x103C, 0x30C2, "HP/Compaq 6715b", RHD_CARD_FLAG_NONE, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, /* 0x793F : RS600 : Radeon Xpress 1200 */ /* 0x7941 : RS600 : Radeon Xpress 1200 */ @@ -851,7 +915,8 @@ rhdCards[] = /* 0x958C : RV630 : ATI FireGL V5600 */ /* 0x958D : RV630 : ATI FireGL V3600 */ /* 0x958E : RV630 : ATI Radeon HD 2600 LE */ - { 0x95c5, 0x1787, 0x2252, "PowerColor HD 3450", RHD_CARD_FLAG_HPDOFF, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, + { 0x95C5, 0x1043, 0x01F4, "ASUS EAH3450", RHD_CARD_FLAG_HPDOFF, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, + { 0x95C5, 0x1787, 0x2252, "PowerColor HD 3450", RHD_CARD_FLAG_HPDOFF, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, { 0x9610, 0x105B, 0x0E0F, "Foxconn A7GM-S (RS780)", RHD_CARD_FLAG_HPDOFF, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, { 0, 0, 0, NULL, 0, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY } /* KEEP THIS: End marker. */ }; @@ -884,10 +949,10 @@ RHDCardIdentify(ScrnInfoPtr pScrn) (rhdCards[i].card_device == subDeviceID)) return rhdCards + i; +#ifdef ATOM_BIOS xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Unknown card detected: 0x%04X:0x%04X:0x%04X.\n", + "Card not in database: 0x%04X:0x%04X:0x%04X; using generic modesetting.\n", deviceID, subVendorID, subDeviceID); -#ifdef ATOM_BIOS xf86Msg(X_NONE, "\t" "If - and only if - your card does not work or does not work optimally\n\t" "please contact radeonhd@opensuse.org to help rectify this.\n\t" @@ -896,6 +961,9 @@ RHDCardIdentify(ScrnInfoPtr pScrn) "in your message.\n", deviceID, subVendorID, subDeviceID); #else + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Unknown card detected: 0x%04X:0x%04X:0x%04X.\n", + deviceID, subVendorID, subDeviceID); xf86Msg(X_NONE, "\t" "Your card might not work or might not work optimally.\n\t" "To rectify this, please contact radeonhd@opensuse.org.\n\t" diff --git a/driver/xf86-video-radeonhd/src/rhd_lut.c b/driver/xf86-video-radeonhd/src/rhd_lut.c index 848ec137c..ea5596201 100644 --- a/driver/xf86-video-radeonhd/src/rhd_lut.c +++ b/driver/xf86-video-radeonhd/src/rhd_lut.c @@ -69,8 +69,8 @@ LUTxSave(struct rhdLUT *LUT) RHDRegWrite(LUT, DC_LUT_READ_PIPE_SELECT, 1); RHDRegWrite(LUT, DC_LUT_RW_INDEX, 0); - for (i = 0; i < 0x300; i++) - LUT->StoreEntry[i] = RHDRegRead(LUT, DC_LUT_SEQ_COLOR); + for (i = 0; i < 256; i++) + LUT->StoreEntry[i] = RHDRegRead(LUT, DC_LUT_30_COLOR); LUT->Stored = TRUE; } @@ -112,21 +112,23 @@ LUTxRestore(struct rhdLUT *LUT) RHDRegWrite(LUT, DC_LUT_RW_MODE, 0); /* Table */ RHDRegWrite(LUT, DC_LUT_WRITE_EN_MASK, 0x0000003F); RHDRegWrite(LUT, DC_LUT_RW_INDEX, 0); - for (i = 0; i < 0x300; i++) - RHDRegWrite(LUT, DC_LUT_SEQ_COLOR, LUT->StoreEntry[i]); + for (i = 0; i < 256; i++) + RHDRegWrite(LUT, DC_LUT_30_COLOR, LUT->StoreEntry[i]); RHDRegWrite(LUT, RegOff + DC_LUTA_CONTROL, LUT->StoreControl); } /* + * Load a new LUT * + * Assumes 256 rows of input. It's up to the caller to ensure there are exactly + * 256 rows of data, as that's what the hardware exepcts. */ static void -LUTxSet(struct rhdLUT *LUT, int numColors, int *indices, LOCO *colors) +rhdLUTSet(struct rhdLUT *LUT, CARD16 *red, CARD16 *green, CARD16 *blue) { - ScrnInfoPtr pScrn = xf86Screens[LUT->scrnIndex]; CARD16 RegOff; - int i, index, hw_index; + int i; LUT->Initialised = TRUE; /* thank you RandR */ @@ -153,66 +155,43 @@ LUTxSet(struct rhdLUT *LUT, int numColors, int *indices, LOCO *colors) RHDRegWrite(LUT, DC_LUT_RW_MODE, 0); /* table */ RHDRegWrite(LUT, DC_LUT_WRITE_EN_MASK, 0x0000003F); - /* DC_LUT_RW_INDEX is incremented automatically when DC_LUT_30_COLOR - * is accessed; hw_index is used to track the value of DC_LUT_RW_INDEX - * so that we can properly handle the very unlikely case that the input - * table indexes are not monotonically increasing - */ - switch (pScrn->depth) { - case 8: - case 24: - case 32: - RHDRegWrite(LUT, DC_LUT_RW_INDEX, 0); - hw_index = 0; - for (i = 0; i < numColors; i++) { - index = indices[i]; - if (hw_index != index) { - RHDRegWrite(LUT, DC_LUT_RW_INDEX, index); - hw_index = index; - } - RHDRegWrite(LUT, DC_LUT_30_COLOR, (colors[index].red << 20) | - (colors[index].green << 10) | (colors[index].blue)); - hw_index++; - } - break; - case 16: - RHDRegWrite(LUT, DC_LUT_RW_INDEX, 0); - hw_index = 0; - for (i = 0; i < numColors; i++) { - int j; - - index = indices[i]; - if (hw_index != 4 * index) { - RHDRegWrite(LUT, DC_LUT_RW_INDEX, 4 * index); - hw_index = 4 * index; - } - - for (j = 0; j < 4; j++) { - RHDRegWrite(LUT, DC_LUT_30_COLOR, (colors[index/2].red << 20) | - (colors[index].green << 10) | (colors[index/2].blue)); - hw_index++; - } - } - break; - case 15: - RHDRegWrite(LUT, DC_LUT_RW_INDEX, 0); - hw_index = 0; - for (i = 0; i < numColors; i++) { - int j; - - index = indices[i]; - if (hw_index != 8 * index) { - RHDRegWrite(LUT, DC_LUT_RW_INDEX, 8 * index); - hw_index = 8 * index; - } - - for (j = 0; j < 8; j++) { - RHDRegWrite(LUT, DC_LUT_30_COLOR, (colors[index].red << 20) | - (colors[index].green << 10) | (colors[index].blue)); - hw_index++; - } - } - break; + RHDRegWrite(LUT, DC_LUT_RW_INDEX, 0); + for (i = 0; i < 256; i++) { + RHDRegWrite(LUT, DC_LUT_30_COLOR, + ((red[i] & 0xFFC0) << 14) | ((green[i] & 0xFFC0) << 4) | (blue[i] >> 6)); + } +} + +/* + * Set specific rows of the LUT + * + * Assumes LUTs are already initialized to a sane state, and will only update + * specific rows. Use ONLY when just specific rows need to be updated. + */ +static void +rhdLUTSetRows(struct rhdLUT *LUT, int numColors, int *indices, LOCO *colors) +{ + CARD16 RegOff; + int i, index; + + if (LUT->Id == RHD_LUT_A) + RegOff = RHD_REGOFFSET_LUTA; + else + RegOff = RHD_REGOFFSET_LUTB; + + if (LUT->Id == RHD_LUT_A) + RHDRegWrite(LUT, DC_LUT_RW_SELECT, 0); + else + RHDRegWrite(LUT, DC_LUT_RW_SELECT, 1); + + RHDRegWrite(LUT, DC_LUT_RW_MODE, 0); /* table */ + RHDRegWrite(LUT, DC_LUT_WRITE_EN_MASK, 0x0000003F); + + for (i = 0; i < numColors; i++) { + index = indices[i]; + RHDRegWrite(LUT, DC_LUT_RW_INDEX, index); + RHDRegWrite(LUT, DC_LUT_30_COLOR, + (colors[index].red << 20) | (colors[index].green << 10) | (colors[index].blue)); } } @@ -234,7 +213,8 @@ RHDLUTsInit(RHDPtr rhdPtr) LUT->Save = LUTxSave; LUT->Restore = LUTxRestore; - LUT->Set = LUTxSet; + LUT->Set = rhdLUTSet; + LUT->SetRows = rhdLUTSetRows; rhdPtr->LUT[0] = LUT; @@ -246,7 +226,8 @@ RHDLUTsInit(RHDPtr rhdPtr) LUT->Save = LUTxSave; LUT->Restore = LUTxRestore; - LUT->Set = LUTxSet; + LUT->Set = rhdLUTSet; + LUT->SetRows = rhdLUTSetRows; rhdPtr->LUT[1] = LUT; } @@ -335,8 +316,7 @@ RHDLUTsDestroy(RHDPtr rhdPtr) void RHDLUTCopyForRR(struct rhdLUT *LUT) { - int indices[0x100]; - LOCO colors[0x100]; + CARD16 red[256], green[256], blue[256]; CARD32 entry; int i; @@ -349,50 +329,12 @@ RHDLUTCopyForRR(struct rhdLUT *LUT) else RHDRegWrite(LUT, DC_LUT_READ_PIPE_SELECT, 0); - switch (xf86Screens[LUT->scrnIndex]->depth) { - case 8: - case 24: - case 32: - RHDRegWrite(LUT, DC_LUT_RW_INDEX, 0); - - for (i = 0; i < 0x100; i++) { - indices[i] = i; - - entry = RHDRegRead(LUT, DC_LUT_30_COLOR); - - colors[i].red = (entry >> 20) & 0x3FF; - colors[i].green = (entry >> 10) & 0x3FF; - colors[i].blue = (entry) & 0x3FF; - } - LUT->Set(LUT, 0x100, indices, colors); - break; - case 16: - for (i = 0; i < 0x40; i++) { - indices[i] = i; - - RHDRegWrite(LUT, DC_LUT_RW_INDEX, 4 * i); - - entry = RHDRegRead(LUT, DC_LUT_30_COLOR); - - colors[i / 2].red = (entry >> 20) & 0x3FF; - colors[i].green = (entry >> 10) & 0x3FF; - colors[i / 2].blue = (entry) & 0x3FF; - } - LUT->Set(LUT, 0x40, indices, colors); - break; - case 15: - for (i = 0; i < 0x20; i++) { - indices[i] = i; - - RHDRegWrite(LUT, DC_LUT_RW_INDEX, 8 * i); - - entry = RHDRegRead(LUT, DC_LUT_30_COLOR); - - colors[i].red = (entry >> 20) & 0x3FF; - colors[i].green = (entry >> 10) & 0x3FF; - colors[i].blue = (entry) & 0x3FF; - } - LUT->Set(LUT, 0x20, indices, colors); - break; + for (i = 0; i < 256; i++) { + entry = RHDRegRead(LUT, DC_LUT_30_COLOR); + red[i] = (entry >> 14) & 0xFFC0; + green[i] = (entry >> 4) & 0xFFC0; + blue[i] = (entry << 6) & 0xFFC0; } + + rhdLUTSet(LUT, red, green, blue); } diff --git a/driver/xf86-video-radeonhd/src/rhd_lut.h b/driver/xf86-video-radeonhd/src/rhd_lut.h index 6684210d7..640ee6321 100644 --- a/driver/xf86-video-radeonhd/src/rhd_lut.h +++ b/driver/xf86-video-radeonhd/src/rhd_lut.h @@ -36,7 +36,8 @@ struct rhdLUT { void (*Save) (struct rhdLUT *LUT); void (*Restore) (struct rhdLUT *LUT); - void (*Set) (struct rhdLUT *LUT, int numColors, int *indices, LOCO *colors); + void (*Set) (struct rhdLUT *LUT, CARD16 *red, CARD16 *green, CARD16 *blue); + void (*SetRows) (struct rhdLUT *LUT, int numColors, int *indices, LOCO *colors); /* because RandR does not specifically initialise a gamma ramp when setting up a CRTC */ @@ -54,7 +55,7 @@ struct rhdLUT { CARD32 StoreWhiteGreen; CARD32 StoreWhiteBlue; - CARD16 StoreEntry[0x300]; + CARD32 StoreEntry[256]; }; void RHDLUTsInit(RHDPtr rhdPtr); diff --git a/driver/xf86-video-radeonhd/src/rhd_lvtma.c b/driver/xf86-video-radeonhd/src/rhd_lvtma.c index 6603b05e2..a4aeb9e41 100644 --- a/driver/xf86-video-radeonhd/src/rhd_lvtma.c +++ b/driver/xf86-video-radeonhd/src/rhd_lvtma.c @@ -48,6 +48,7 @@ #include "rhd_output.h" #include "rhd_regs.h" #include "rhd_hdmi.h" +#include "rhd_acpi.h" #ifdef ATOM_BIOS #include "rhd_atombios.h" #include "rhd_atomout.h" @@ -138,12 +139,13 @@ struct LVDSPrivate { CARD32 StoreMacroControl; CARD32 StoreTXControl; CARD32 StoreBlModCntl; -#ifdef NOT_YET + + void (*SetBacklight)(struct rhdOutput *Output, int val); + int (*GetBacklight)(struct rhdOutput *Output); /* to hook in AtomBIOS property callback */ Bool (*WrappedPropertyCallback) (struct rhdOutput *Output, enum rhdPropertyAction Action, enum rhdOutputProperty Property, union rhdPropertyData *val); void *PropertyPrivate; -#endif }; /* @@ -203,10 +205,8 @@ LVDSDebugBacklight(struct rhdOutput *Output) * */ static void -LVDSSetBacklight(struct rhdOutput *Output) +LVDSSetBacklight(struct rhdOutput *Output, int level) { - struct LVDSPrivate *Private = (struct LVDSPrivate *) Output->Private; - int level = Private->BlLevel; RHDPtr rhdPtr = RHDPTRI(Output); xf86DrvMsg(rhdPtr->scrnIndex, X_INFO, @@ -231,6 +231,28 @@ LVDSSetBacklight(struct rhdOutput *Output) /* * */ +static int +LVDSGetBacklight(struct rhdOutput *Output) +{ + RHDPtr rhdPtr = RHDPTRI(Output); + CARD32 level; + + if (rhdPtr->ChipSet >= RHD_RS600) + level = RHDRegRead(rhdPtr, LVTMA_BL_MOD_CNTL); + else + level = RHDRegRead(rhdPtr, LVTMA_BL_MOD_CNTL); + + if ((level & 0x01) != 0x01) + return -1; + + RHDDebug(Output->scrnIndex, "%s: Backlight %i\n",__func__,(level >> 8) & 0xFF); + + return (level >> 8) & 0xFF; +} + +/* + * + */ static Bool LVDSPropertyControl(struct rhdOutput *Output, enum rhdPropertyAction Action, enum rhdOutputProperty Property, union rhdPropertyData *val) @@ -240,9 +262,9 @@ LVDSPropertyControl(struct rhdOutput *Output, enum rhdPropertyAction Action, switch (Action) { case rhdPropertyCheck: switch (Property) { - if (Private->BlLevel < 0) - return FALSE; case RHD_OUTPUT_BACKLIGHT: + if (Private->BlLevel < 0) + return FALSE; return TRUE; default: return FALSE; @@ -250,6 +272,7 @@ LVDSPropertyControl(struct rhdOutput *Output, enum rhdPropertyAction Action, case rhdPropertyGet: switch (Property) { case RHD_OUTPUT_BACKLIGHT: + Private->BlLevel = Private->GetBacklight(Output); if (Private->BlLevel < 0) return FALSE; val->integer = Private->BlLevel; @@ -274,7 +297,7 @@ LVDSPropertyControl(struct rhdOutput *Output, enum rhdPropertyAction Action, case RHD_OUTPUT_BACKLIGHT: if (Private->BlLevel < 0) return FALSE; - LVDSSetBacklight(Output); + Private->SetBacklight(Output, Private->BlLevel); break; default: return FALSE; @@ -430,7 +453,7 @@ LVDSEnable(struct rhdOutput *Output) __func__, i, (int) tmp); } if (Private->BlLevel >= 0) { - LVDSSetBacklight(Output); + Private->SetBacklight(Output, Private->BlLevel); } } @@ -719,10 +742,8 @@ LVDSDestroy(struct rhdOutput *Output) if (!Private) return; -#ifdef NOT_YET if (Private->PropertyPrivate) RhdAtomDestroyBacklightControlProperty(Output, Private->PropertyPrivate); -#endif xfree(Private); Output->Private = NULL; } @@ -1048,6 +1069,7 @@ TMDSBPropertyControl(struct rhdOutput *Output, switch (Property) { case RHD_OUTPUT_COHERENT: case RHD_OUTPUT_HDMI: + case RHD_OUTPUT_AUDIO_WORKAROUND: return TRUE; default: return FALSE; @@ -1060,6 +1082,9 @@ TMDSBPropertyControl(struct rhdOutput *Output, case RHD_OUTPUT_HDMI: val->Bool = Private->HdmiEnabled; return TRUE; + case RHD_OUTPUT_AUDIO_WORKAROUND: + val->Bool = RHDHdmiGetAudioWorkaround(Private->Hdmi); + return TRUE; default: return FALSE; } @@ -1072,6 +1097,9 @@ TMDSBPropertyControl(struct rhdOutput *Output, case RHD_OUTPUT_HDMI: Private->HdmiEnabled = val->Bool; break; + case RHD_OUTPUT_AUDIO_WORKAROUND: + RHDHdmiSetAudioWorkaround(Private->Hdmi, val->Bool); + break; default: return FALSE; } @@ -1083,6 +1111,9 @@ TMDSBPropertyControl(struct rhdOutput *Output, Output->Mode(Output, Private->Mode); Output->Power(Output, RHD_POWER_ON); break; + case RHD_OUTPUT_AUDIO_WORKAROUND: + RHDHdmiCommitAudioWorkaround(Private->Hdmi); + break; default: return FALSE; } @@ -1308,7 +1339,6 @@ TMDSBDestroy(struct rhdOutput *Output) Output->Private = NULL; } -#ifdef NOT_YET static Bool LVDSPropertyWrapper(struct rhdOutput *Output, enum rhdPropertyAction Action, @@ -1327,7 +1357,6 @@ LVDSPropertyWrapper(struct rhdOutput *Output, return ret; } -#endif /* * @@ -1367,17 +1396,33 @@ RHDLVTMAInit(RHDPtr rhdPtr, CARD8 Type) Output->Property = LVDSPropertyControl; Output->Destroy = LVDSDestroy; Output->Private = Private = LVDSInfoRetrieve(rhdPtr); -#ifdef NOT_YET - if (Private->BlLevel < 0) { - Private->BlLevel = RhdAtomSetupBacklightControlProperty(Output, &Private->WrappedPropertyCallback, - &Private->PropertyPrivate); - if (Private->PropertyPrivate) - Output->Property = LVDSPropertyWrapper; - } else -#else - if (Private->BlLevel >= 0) -#endif + + if (Private->BlLevel >= 0) { + Private->SetBacklight = LVDSSetBacklight; + Private->GetBacklight = LVDSGetBacklight; LVDSDebugBacklight(Output); + xf86DrvMsg(Output->scrnIndex,X_INFO, "Native Backlight Control found.\n"); + } else { + Private->BlLevel = RhdACPIGetBacklightControl(Output); + if (Private->BlLevel >= 0) { + xf86DrvMsg(Output->scrnIndex,X_INFO, "ACPI Backlight Control found.\n"); + Private->SetBacklight = RhdACPISetBacklightControl; + Private->GetBacklight = RhdACPIGetBacklightControl; + } +#ifdef ATOM_BIOS + else { + Private->BlLevel = RhdAtomSetupBacklightControlProperty( + Output, + &Private->WrappedPropertyCallback, + &Private->PropertyPrivate); + if (Private->PropertyPrivate) + Output->Property = LVDSPropertyWrapper; + xf86DrvMsg(Output->scrnIndex,X_INFO, + "Falling back to AtomBIOS controlled Backlight.\n"); + } +#endif + } + } else { struct rhdTMDSBPrivate *Private = xnfcalloc(sizeof(struct rhdTMDSBPrivate), 1); diff --git a/driver/xf86-video-radeonhd/src/rhd_mc.c b/driver/xf86-video-radeonhd/src/rhd_mc.c index 540594592..def871b96 100644 --- a/driver/xf86-video-radeonhd/src/rhd_mc.c +++ b/driver/xf86-video-radeonhd/src/rhd_mc.c @@ -61,9 +61,13 @@ #include "xf86.h" #include "rhd.h" +#include "rhd_mc.h" #include "rhd_regs.h" #include "rhd_crtc.h" /* for definition of Crtc->Id */ +#include "r600_reg_auto_r6xx.h" +#include "r600_reg_r6xx.h" + struct rhdMC { int scrnIndex; @@ -319,7 +323,7 @@ RS690MCRestore(struct rhdMC *MC) static Bool RS690MCWaitIdle(struct rhdMC *MC) { - if (RHDReadMC(MC, RS69_MC_SYSTEM_STATUS) & RS6X_MC_SEQUENCER_IDLE) + if (RHDReadMC(MC, RS69_MC_SYSTEM_STATUS) & RS6X_MC_SYSTEM_IDLE) return TRUE; return FALSE; } @@ -391,7 +395,9 @@ R600MCRestore(struct rhdMC *MC) static Bool R600MCWaitIdle(struct rhdMC *MC) { - if (!(RHDRegRead(MC, SRBM_STATUS) & 0x3f00)) + if (!(RHDRegRead(MC, SRBM_STATUS) & + (VMC_BUSY_bit | MCB_BUSY_bit | + MCDZ_BUSY_bit | MCDY_BUSY_bit | MCDX_BUSY_bit | MCDW_BUSY_bit))) return TRUE; return FALSE; } diff --git a/driver/xf86-video-radeonhd/src/rhd_mc.h b/driver/xf86-video-radeonhd/src/rhd_mc.h index 2d2bd18bf..b66aa4ad5 100644 --- a/driver/xf86-video-radeonhd/src/rhd_mc.h +++ b/driver/xf86-video-radeonhd/src/rhd_mc.h @@ -25,6 +25,10 @@ #ifndef RHD_MC_H # define RHD_MC_H +/* to be fixed for good !@#$ */ +#include <stdint.h> +#define CARD64 uint64_t + extern void RHDMCInit(RHDPtr rhdPtr); extern void RHDMCDestroy(RHDPtr rhdPtr); extern void RHDMCSave(RHDPtr rhdPtr); diff --git a/driver/xf86-video-radeonhd/src/rhd_monitor.c b/driver/xf86-video-radeonhd/src/rhd_monitor.c index 5234c7b43..03448e857 100644 --- a/driver/xf86-video-radeonhd/src/rhd_monitor.c +++ b/driver/xf86-video-radeonhd/src/rhd_monitor.c @@ -331,7 +331,7 @@ rhdMonitorPanel(struct rhdConnector *Connector) AtomBiosResult Result; Result = RHDAtomBiosFunc(Connector->scrnIndex, rhdPtr->atomBIOS, - ATOMBIOS_GET_PANEL_MODE, &data); + ATOM_GET_PANEL_MODE, &data); if (Result == ATOM_SUCCESS) { Mode = data.mode; Mode->type |= M_T_PREFERRED; @@ -339,7 +339,7 @@ rhdMonitorPanel(struct rhdConnector *Connector) if (!EDID) { Result = RHDAtomBiosFunc(Connector->scrnIndex, rhdPtr->atomBIOS, - ATOMBIOS_GET_PANEL_EDID, &data); + ATOM_GET_PANEL_EDID, &data); if (Result == ATOM_SUCCESS) EDID = xf86InterpretEDID(Connector->scrnIndex, data.EDIDBlock); @@ -382,6 +382,21 @@ rhdMonitorPanel(struct rhdConnector *Connector) return NULL; } + /* Fixup some broken modes - if we can do so, otherwise we might have no + * chance of driving the panel at all */ + if (Monitor->NativeMode) { + + /* Some Panels have H or VSyncEnd values greater than H or VTotal. */ + if (Monitor->NativeMode->HTotal <= Monitor->NativeMode->HSyncEnd) + Monitor->NativeMode->HTotal = Monitor->NativeMode->CrtcHTotal = Monitor->NativeMode->HSyncEnd + 1; + if (Monitor->NativeMode->VTotal <= Monitor->NativeMode->VSyncEnd) + Monitor->NativeMode->VTotal = Monitor->NativeMode->CrtcVTotal = Monitor->NativeMode->VSyncEnd + 1; + if (Monitor->NativeMode->CrtcHBlankEnd <= Monitor->NativeMode->CrtcHSyncEnd) + Monitor->NativeMode->CrtcHBlankEnd = Monitor->NativeMode->CrtcHSyncEnd + 1; + if (Monitor->NativeMode->CrtcVBlankEnd <= Monitor->NativeMode->CrtcVSyncEnd) + Monitor->NativeMode->CrtcVBlankEnd = Monitor->NativeMode->CrtcVSyncEnd + 1; + } + /* panel should be driven at native resolution only. */ Monitor->UseFixedModes = TRUE; Monitor->ReducedAllowed = TRUE; diff --git a/driver/xf86-video-radeonhd/src/rhd_output.c b/driver/xf86-video-radeonhd/src/rhd_output.c index 7fe2ee9d4..0e33d4e87 100644 --- a/driver/xf86-video-radeonhd/src/rhd_output.c +++ b/driver/xf86-video-radeonhd/src/rhd_output.c @@ -215,11 +215,11 @@ RHDOutputAttachConnector(struct rhdOutput *Output, struct rhdConnector *Connecto RHDPtr rhdPtr = RHDPTRI(Output); if(Output->Connector == Connector) - return; /* output is allready attached to this connector -> nothing todo */ + return; /* output is already attached to this connector -> nothing todo */ Output->Connector = Connector; - if(!Output->Property) /* property controll available? */ + if(!Output->Property) /* property control available? */ return; /* no -> we are done here */ /* yes -> check if we need to set any properties */ @@ -260,4 +260,61 @@ RHDOutputAttachConnector(struct rhdOutput *Output, struct rhdConnector *Connecto if(!Output->Property(Output, rhdPropertySet, RHD_OUTPUT_HDMI, &val)) xf86DrvMsg(rhdPtr->scrnIndex, X_WARNING, "Failed to %s HDMI on %s\n", val.Bool ? "disable" : "enable", Output->Name); } + + /* check config option if we should enable audio workaround */ + if (Output->Property(Output, rhdPropertyCheck, RHD_OUTPUT_AUDIO_WORKAROUND, NULL)) { + union rhdPropertyData val; + switch(RhdParseBooleanOption(&rhdPtr->audioWorkaround, Connector->Name)) { + case RHD_OPTION_NOT_SET: + case RHD_OPTION_OFF: + val.Bool = FALSE; + break; + case RHD_OPTION_ON: + case RHD_OPTION_DEFAULT: + val.Bool = TRUE; + break; + } + if(!Output->Property(Output, rhdPropertySet, RHD_OUTPUT_AUDIO_WORKAROUND, &val)) + xf86DrvMsg(rhdPtr->scrnIndex, X_WARNING, + "Failed to %s audio workaorund on %s\n", + val.Bool ? "disable" : "enable", Output->Name); + } +} + +/* + * Returns the TMDS index of the given output, important for HDMI/Audio setup + */ +int +RHDOutputTmdsIndex(struct rhdOutput *Output) +{ + struct rhdOutput *i = RHDPTRI(Output)->Outputs; + int index; + + switch(Output->Id) { + case RHD_OUTPUT_TMDSA: + case RHD_OUTPUT_UNIPHYA: + index=0; + break; + + case RHD_OUTPUT_LVTMA: + /* special case check if an TMDSA is present */ + index=0; + while(i) { + if(i->Id==RHD_OUTPUT_TMDSA) + index++; + i = i->Next; + } + break; + + case RHD_OUTPUT_UNIPHYB: + case RHD_OUTPUT_KLDSKP_LVTMA: + index=1; + break; + + default: + xf86DrvMsg(Output->scrnIndex, X_ERROR, "%s: unsupported output type\n", __func__); + index=-1; + break; + } + return index; } diff --git a/driver/xf86-video-radeonhd/src/rhd_output.h b/driver/xf86-video-radeonhd/src/rhd_output.h index 22edfe9d0..4862478f7 100644 --- a/driver/xf86-video-radeonhd/src/rhd_output.h +++ b/driver/xf86-video-radeonhd/src/rhd_output.h @@ -59,7 +59,8 @@ typedef enum rhdSensedOutput { enum rhdOutputProperty { RHD_OUTPUT_BACKLIGHT, RHD_OUTPUT_COHERENT, - RHD_OUTPUT_HDMI + RHD_OUTPUT_HDMI, + RHD_OUTPUT_AUDIO_WORKAROUND }; enum rhdOutputAllocation { @@ -115,6 +116,7 @@ void RHDOutputsRestore(RHDPtr rhdPtr); void RHDOutputsDestroy(RHDPtr rhdPtr); void RHDOutputPrintSensedType(struct rhdOutput *Output); void RHDOutputAttachConnector(struct rhdOutput *Output, struct rhdConnector *Connector); +int RHDOutputTmdsIndex(struct rhdOutput *Output); /* output local functions. */ struct rhdOutput *RHDDACAInit(RHDPtr rhdPtr); @@ -123,6 +125,6 @@ struct rhdOutput *RHDTMDSAInit(RHDPtr rhdPtr); struct rhdOutput *RHDLVTMAInit(RHDPtr rhdPtr, CARD8 Type); struct rhdOutput *RHDDIGInit(RHDPtr rhdPtr, enum rhdOutputType outputType, CARD8 ConnectorType); struct rhdOutput *RHDDDIAInit(RHDPtr rhdPtr); -struct rhdOutput *RHDAtomOutputInit(RHDPtr rhdPtr, rhdConnectorType ConnectorType, rhdOutputType OutputType); +struct rhdOutput *RHDAtomOutputInit(RHDPtr rhdPtr, enum rhdConnectorType ConnectorType, enum rhdOutputType OutputType); #endif /* _RHD_OUTPUT_H */ diff --git a/driver/xf86-video-radeonhd/src/rhd_pll.c b/driver/xf86-video-radeonhd/src/rhd_pll.c index 45ab03ad5..6200dda0d 100644 --- a/driver/xf86-video-radeonhd/src/rhd_pll.c +++ b/driver/xf86-video-radeonhd/src/rhd_pll.c @@ -732,9 +732,15 @@ RV620PLL1Power(struct rhdPLL *PLL, int Power) RHDRegMask(PLL, P1PLL_CNTL, 0x01, 0x01); /* Reset */ usleep(2); - RHDRegMask(PLL, P1PLL_CNTL, 0x02, 0x02); /* Power down */ + /* Sometimes we have to keep unused PLL running, see bug #18016 */ + if ((RHDRegRead(PLL, RV620_EXT1_DIFF_POST_DIV_CNTL) & RV62_EXT1_DIFF_DRIVER_ENABLE) == 0) + RHDRegMask(PLL, P1PLL_CNTL, 0x02, 0x02); /* Power down */ + else + xf86DrvMsg(PLL->scrnIndex, X_WARNING, "PHYA differential clock driver not disabled\n"); usleep(200); + RHDRegMask(PLL, P1PLL_CNTL, 0x2000, 0x2000); /* reset anti-glitch */ + return; } } @@ -781,9 +787,15 @@ RV620PLL2Power(struct rhdPLL *PLL, int Power) RHDRegMask(PLL, P2PLL_CNTL, 0x01, 0x01); /* Reset */ usleep(2); - RHDRegMask(PLL, P2PLL_CNTL, 0x02, 0x02); /* Power down */ + /* Sometimes we have to keep unused PLL running, see bug #18016 */ + if ((RHDRegRead(PLL, RV620_EXT2_DIFF_POST_DIV_CNTL) & RV62_EXT2_DIFF_DRIVER_ENABLE) == 0) + RHDRegMask(PLL, P2PLL_CNTL, 0x02, 0x02); /* Power down */ + else + xf86DrvMsg(PLL->scrnIndex, X_WARNING, "PHYB differential clock driver not disabled\n"); usleep(200); + RHDRegMask(PLL, P2PLL_CNTL, 0x2000, 0x2000); /* reset anti-glitch */ + return; } } @@ -1231,13 +1243,13 @@ RHDSetupLimits(RHDPtr rhdPtr, CARD32 *RefClock, *PixMax = RHD_PLL_MAX_DEFAULT; #ifdef ATOM_BIOS - getPLLValuesFromAtomBIOS(rhdPtr, GET_MIN_PIXEL_CLOCK_PLL_OUTPUT, "minimum PLL output", + getPLLValuesFromAtomBIOS(rhdPtr, ATOM_GET_MIN_PIXEL_CLOCK_PLL_OUTPUT, "minimum PLL output", IntMin, PLL_MIN); - getPLLValuesFromAtomBIOS(rhdPtr, GET_MAX_PIXEL_CLOCK_PLL_OUTPUT, "maximum PLL output", + getPLLValuesFromAtomBIOS(rhdPtr, ATOM_GET_MAX_PIXEL_CLOCK_PLL_OUTPUT, "maximum PLL output", IntMax, PLL_MAX); - getPLLValuesFromAtomBIOS(rhdPtr, GET_MAX_PIXEL_CLK, "Pixel Clock", + getPLLValuesFromAtomBIOS(rhdPtr, ATOM_GET_MAX_PIXEL_CLK, "Pixel Clock", PixMax, PLL_MAX); - getPLLValuesFromAtomBIOS(rhdPtr, GET_REF_CLOCK, "reference clock", + getPLLValuesFromAtomBIOS(rhdPtr, ATOM_GET_REF_CLOCK, "reference clock", RefClock, PLL_NONE); if (*IntMax == 0) { if (rhdPtr->ChipSet < RHD_RV620) diff --git a/driver/xf86-video-radeonhd/src/rhd_pm.c b/driver/xf86-video-radeonhd/src/rhd_pm.c new file mode 100644 index 000000000..26433aa87 --- /dev/null +++ b/driver/xf86-video-radeonhd/src/rhd_pm.c @@ -0,0 +1,475 @@ +/* + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation on the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NON-INFRINGEMENT. IN NO EVENT SHALL ATI, VA LINUX SYSTEMS AND/OR + * THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/* + * Authors: + * Yang Zhao <yang@yangman.ca> + * Matthias Hopf <mhopf@suse.de> + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "xf86.h" + +#include "rhd.h" +#include "rhd_pm.h" + +#include "rhd_atombios.h" + +#ifdef ATOM_BIOS + +#define COMPARE_MIN_ENGINE_CLOCK 100000 +#define SAVE_MIN_ENGINE_CLOCK 200000 +#define COMPARE_MAX_ENGINE_CLOCK 3000000 +#define COMPARE_MIN_MEMORY_CLOCK 100000 +#define SAVE_MIN_MEMORY_CLOCK 200000 +#define COMPARE_MAX_MEMORY_CLOCK 3000000 +#define COMPARE_MIN_VOLTAGE 500 +#define COMPARE_MAX_VOLTAGE 2000 + +static char *PmLevels[] = { + "Off", "Idle", "Slow2D", "Fast2D", "Slow3D", "Fast3D", "Max3D", "User" +} ; + + +static void +rhdPmPrint (struct rhdPm *Pm, char *name, struct rhdPowerState *state) +{ + xf86DrvMsg(Pm->scrnIndex, X_INFO, " %-8s %8d kHz / %8d kHz / %6.3f V\n", + name, (int) state->EngineClock, (int) state->MemoryClock, + state->VDDCVoltage / 1000.0); +} + +/* Certain clocks require certain voltage settings */ +/* TODO: So far we only know few safe points. Interpolate? */ +static void rhdPmValidateSetting (struct rhdPm *Pm, struct rhdPowerState *setting, int forceVoltage) +{ + /* CARD32 compare = setting->VDDCVoltage ? setting->VDDCVoltage : Pm->Current.VDDCVoltage; */ + if (! setting->EngineClock) + setting->EngineClock = Pm->Current.EngineClock; + if (setting->EngineClock < Pm->Minimum.EngineClock) + setting->EngineClock = Pm->Minimum.EngineClock; + if (setting->EngineClock < COMPARE_MIN_ENGINE_CLOCK) + setting->EngineClock = SAVE_MIN_ENGINE_CLOCK; + if (setting->EngineClock > Pm->Maximum.EngineClock && Pm->Maximum.EngineClock) + setting->EngineClock = Pm->Maximum.EngineClock; + if (setting->EngineClock > COMPARE_MAX_ENGINE_CLOCK) + setting->EngineClock = Pm->Default.EngineClock; + if (setting->EngineClock > COMPARE_MAX_ENGINE_CLOCK) + setting->EngineClock = 0; + if (! setting->MemoryClock) + setting->MemoryClock = Pm->Current.MemoryClock; + if (setting->MemoryClock < Pm->Minimum.MemoryClock) + setting->MemoryClock = Pm->Minimum.MemoryClock; + if (setting->MemoryClock < COMPARE_MIN_MEMORY_CLOCK) + setting->MemoryClock = SAVE_MIN_MEMORY_CLOCK; + if (setting->MemoryClock > Pm->Maximum.MemoryClock && Pm->Maximum.MemoryClock) + setting->MemoryClock = Pm->Maximum.MemoryClock; + if (setting->MemoryClock > COMPARE_MAX_MEMORY_CLOCK) + setting->MemoryClock = Pm->Default.MemoryClock; + if (setting->MemoryClock > COMPARE_MAX_MEMORY_CLOCK) + setting->MemoryClock = 0; + if (! setting->VDDCVoltage) + setting->VDDCVoltage = Pm->Current.VDDCVoltage; + if (setting->VDDCVoltage < Pm->Minimum.VDDCVoltage) + setting->VDDCVoltage = Pm->Minimum.VDDCVoltage; + if (setting->VDDCVoltage < COMPARE_MIN_VOLTAGE) + setting->VDDCVoltage = Pm->Current.VDDCVoltage; + if (setting->VDDCVoltage < COMPARE_MIN_VOLTAGE) + setting->VDDCVoltage = 0; + if (setting->VDDCVoltage > Pm->Maximum.VDDCVoltage && Pm->Maximum.VDDCVoltage) + setting->VDDCVoltage = Pm->Maximum.VDDCVoltage; + if (setting->VDDCVoltage > COMPARE_MAX_VOLTAGE) + setting->VDDCVoltage = Pm->Default.VDDCVoltage; + if (setting->VDDCVoltage > COMPARE_MAX_VOLTAGE) + setting->VDDCVoltage = 0; + /* TODO: voltage adaption logic missing */ + /* Only set to lower Voltages than compare if 0 */ +} + +static void rhdPmValidateMinMax (struct rhdPm *Pm) +{ + if (Pm->Maximum.EngineClock < Pm->Default.EngineClock) + Pm->Maximum.EngineClock = Pm->Default.EngineClock; + if (Pm->Maximum.MemoryClock < Pm->Default.MemoryClock) + Pm->Maximum.MemoryClock = Pm->Default.MemoryClock; + if (Pm->Maximum.VDDCVoltage < Pm->Default.VDDCVoltage) + Pm->Maximum.VDDCVoltage = Pm->Default.VDDCVoltage; + if (Pm->Maximum.EngineClock < Pm->Current.EngineClock) + Pm->Maximum.EngineClock = Pm->Current.EngineClock; + if (Pm->Maximum.MemoryClock < Pm->Current.MemoryClock) + Pm->Maximum.MemoryClock = Pm->Current.MemoryClock; + if (Pm->Maximum.VDDCVoltage < Pm->Current.VDDCVoltage) + Pm->Maximum.VDDCVoltage = Pm->Current.VDDCVoltage; + if((Pm->Minimum.EngineClock > Pm->Default.EngineClock && Pm->Default.EngineClock) || ! Pm->Minimum.EngineClock) + Pm->Minimum.EngineClock = Pm->Default.EngineClock; + if((Pm->Minimum.MemoryClock > Pm->Default.MemoryClock && Pm->Default.MemoryClock) || ! Pm->Minimum.MemoryClock) + Pm->Minimum.MemoryClock = Pm->Default.MemoryClock; + if((Pm->Minimum.VDDCVoltage > Pm->Default.VDDCVoltage && Pm->Default.VDDCVoltage) || ! Pm->Minimum.VDDCVoltage) + Pm->Minimum.VDDCVoltage = Pm->Default.VDDCVoltage; + if((Pm->Minimum.EngineClock > Pm->Current.EngineClock && Pm->Current.EngineClock) || ! Pm->Minimum.EngineClock) + Pm->Minimum.EngineClock = Pm->Current.EngineClock; + if((Pm->Minimum.MemoryClock > Pm->Current.MemoryClock && Pm->Current.MemoryClock) || ! Pm->Minimum.MemoryClock) + Pm->Minimum.MemoryClock = Pm->Current.MemoryClock; + if((Pm->Minimum.VDDCVoltage > Pm->Current.VDDCVoltage && Pm->Current.VDDCVoltage) || ! Pm->Minimum.VDDCVoltage) + Pm->Minimum.VDDCVoltage = Pm->Current.VDDCVoltage; + rhdPmValidateSetting (Pm, &Pm->Maximum, 1); + rhdPmValidateSetting (Pm, &Pm->Minimum, 1); + rhdPmValidateSetting (Pm, &Pm->Default, 1); + + if (Pm->NumKnown) { + int i; + for (i = 0; i < Pm->NumKnown; i++) { + if (Pm->Maximum.EngineClock < Pm->Known[i].EngineClock) + Pm->Maximum.EngineClock = Pm->Known[i].EngineClock; + if (Pm->Maximum.MemoryClock < Pm->Known[i].MemoryClock) + Pm->Maximum.MemoryClock = Pm->Known[i].MemoryClock; + if (Pm->Maximum.VDDCVoltage < Pm->Known[i].VDDCVoltage) + Pm->Maximum.VDDCVoltage = Pm->Known[i].VDDCVoltage; + if (Pm->Minimum.EngineClock > Pm->Known[i].EngineClock && Pm->Known[i].EngineClock) + Pm->Minimum.EngineClock = Pm->Known[i].EngineClock; + if (Pm->Minimum.MemoryClock > Pm->Known[i].MemoryClock && Pm->Known[i].MemoryClock) + Pm->Minimum.MemoryClock = Pm->Known[i].MemoryClock; + if (Pm->Minimum.VDDCVoltage > Pm->Known[i].VDDCVoltage && Pm->Known[i].VDDCVoltage) + Pm->Minimum.VDDCVoltage = Pm->Known[i].VDDCVoltage; + } + } + + if (Pm->Minimum.VDDCVoltage == Pm->Maximum.VDDCVoltage) + Pm->Minimum.VDDCVoltage = Pm->Maximum.VDDCVoltage = Pm->Default.VDDCVoltage = 0; +} + +/* Some AtomBIOSes provide broken current clocks (esp. memory) */ +static void rhdPmValidateClearSetting (struct rhdPm *Pm, struct rhdPowerState *setting) +{ + if (setting->EngineClock < COMPARE_MIN_ENGINE_CLOCK) + setting->EngineClock = 0; + if (setting->EngineClock > COMPARE_MAX_ENGINE_CLOCK) + setting->EngineClock = 0; + if (setting->MemoryClock < COMPARE_MIN_MEMORY_CLOCK) + setting->MemoryClock = 0; + if (setting->MemoryClock > COMPARE_MAX_MEMORY_CLOCK) + setting->MemoryClock = 0; + if (setting->VDDCVoltage < COMPARE_MIN_VOLTAGE) + setting->VDDCVoltage = 0; + if (setting->VDDCVoltage > COMPARE_MAX_VOLTAGE) + setting->VDDCVoltage = 0; +} + +/* Have: a list of possible power settings, eventual minimum and maximum settings. + * Want: all rhdPowerState_e settings */ +static void rhdPmSelectSettings (RHDPtr rhdPtr) +{ + int i; + struct rhdPm *Pm = rhdPtr->Pm; + + /* Initialize with default; STORED state is special */ + for (i = 0; i < RHD_PM_NUM_STATES; i++) + memcpy (&Pm->States[i], &Pm->Default, sizeof(struct rhdPowerState)); + + /* TODO: This still needs a lot of work */ + + /* RHD_PM_OFF: minimum */ + memcpy (&Pm->States[RHD_PM_OFF], &Pm->Minimum, sizeof (struct rhdPowerState)); + + if (rhdPtr->lowPowerMode.val.bool) { + /* TODO: copy lowest config with default Voltage/Mem setting? */ + if (!rhdPtr->lowPowerModeEngineClock.val.integer) { + Pm->States[RHD_PM_IDLE].EngineClock = Pm->States[RHD_PM_OFF].EngineClock; + xf86DrvMsg(rhdPtr->scrnIndex, X_INFO, + "ForceLowPowerMode: calculated engine clock at %dkHz\n", + (int) Pm->States[RHD_PM_IDLE].EngineClock); + } else { + /* TODO: this should actually set the user mode */ + Pm->States[RHD_PM_IDLE].EngineClock = rhdPtr->lowPowerModeEngineClock.val.integer; + xf86DrvMsg(rhdPtr->scrnIndex, X_INFO, + "ForceLowPowerMode: set idle engine clock to %dkHz\n", + (int) Pm->States[RHD_PM_IDLE].EngineClock); + } + + if (!rhdPtr->lowPowerModeMemoryClock.val.integer) { + Pm->States[RHD_PM_IDLE].MemoryClock = Pm->States[RHD_PM_OFF].MemoryClock; + xf86DrvMsg(rhdPtr->scrnIndex, X_INFO, + "ForceLowPowerMode: calculated memory clock at %dkHz\n", + (int) Pm->States[RHD_PM_IDLE].MemoryClock); + } else { + Pm->States[RHD_PM_IDLE].MemoryClock = rhdPtr->lowPowerModeMemoryClock.val.integer; + xf86DrvMsg(rhdPtr->scrnIndex, X_INFO, + "ForceLowPowerMode: set idle memory clock to %dkHz\n", + (int) Pm->States[RHD_PM_IDLE].MemoryClock); + } + + rhdPmValidateSetting (Pm, &Pm->States[RHD_PM_IDLE], 1); + + if (rhdPtr->lowPowerModeEngineClock.val.integer < 0) { + Pm->States[RHD_PM_IDLE].EngineClock = - rhdPtr->lowPowerModeEngineClock.val.integer; + xf86DrvMsg(rhdPtr->scrnIndex, X_WARNING, + "ForceLowPowerMode: user requested to ignore validation for engine clock\n"); + } + if (rhdPtr->lowPowerModeMemoryClock.val.integer < 0) { + Pm->States[RHD_PM_IDLE].MemoryClock = - rhdPtr->lowPowerModeMemoryClock.val.integer; + xf86DrvMsg(rhdPtr->scrnIndex, X_WARNING, + "ForceLowPowerMode: user requested to ignore validation for memory clock\n"); + } + } + + memcpy (&Pm->States[RHD_PM_MAX_3D], &Pm->Maximum, sizeof (struct rhdPowerState)); + + xf86DrvMsg (rhdPtr->scrnIndex, X_INFO, + "Power Management: Final Levels\n"); + ASSERT (sizeof(PmLevels) / sizeof(char *) == RHD_PM_NUM_STATES); + for (i = 0; i < RHD_PM_NUM_STATES; i++) + rhdPmPrint (Pm, PmLevels[i], &Pm->States[i]); +} + +static void +rhdPmGetRawState (RHDPtr rhdPtr, struct rhdPowerState *state) +{ + union AtomBiosArg data; + + if (RHDAtomBiosFunc (rhdPtr->scrnIndex, rhdPtr->atomBIOS, + ATOM_GET_ENGINE_CLOCK, &data) == ATOM_SUCCESS) + state->EngineClock = data.clockValue; + if (RHDAtomBiosFunc (rhdPtr->scrnIndex, rhdPtr->atomBIOS, + ATOM_GET_MEMORY_CLOCK, &data) == ATOM_SUCCESS) + state->MemoryClock = data.clockValue; + if (RHDAtomBiosFunc (rhdPtr->scrnIndex, rhdPtr->atomBIOS, + ATOM_GET_VOLTAGE, &data) == ATOM_SUCCESS) + state->VDDCVoltage = data.val; +} + +static Bool +rhdPmSetRawState (RHDPtr rhdPtr, struct rhdPowerState *state) +{ + union AtomBiosArg data; + Bool ret = TRUE; + struct rhdPowerState dummy; + + /* TODO: Idle first; find which idles are needed and expose them */ + /* FIXME: Voltage */ + /* FIXME: If Voltage is to be rised, then do that first, then change frequencies. + * If Voltage is to be lowered, do it the other way round. */ + if (state->EngineClock && state->EngineClock != rhdPtr->Pm->Current.EngineClock) { + data.clockValue = state->EngineClock; + if (RHDAtomBiosFunc (rhdPtr->scrnIndex, rhdPtr->atomBIOS, + ATOM_SET_ENGINE_CLOCK, &data) == ATOM_SUCCESS) + rhdPtr->Pm->Current.EngineClock = state->EngineClock; + else + ret = FALSE; + } +#if 0 /* don't do for the moment */ + if (state->MemoryClock && state->MemoryClock != rhdPtr->Pm->Current.MemoryClock) { + data.clockValue = state->MemoryClock; + if (RHDAtomBiosFunc (rhdPtr->scrnIndex, rhdPtr->atomBIOS, + ATOM_SET_MEMORY_CLOCK, &data) != ATOM_SUCCESS) + rhdPtr->Pm->Current.MemoryClock = state->MemoryClock; + else + ret = FALSE; + } +#endif +#if 0 /* don't do for the moment */ + if (state->VDDCVoltage && state->VDDCVoltage != rhdPtr->Pm->Current.VDDCVoltage) { + data.val = state->VDDCVoltage; + if (RHDAtomBiosFunc (rhdPtr->scrnIndex, rhdPtr->atomBIOS, + ATOM_SET_VOLTAGE, &data) != ATOM_SUCCESS) + rhdPtr->Pm->Current.VDDCVoltage = state->VDDCVoltage; + else + ret = FALSE; + } +#endif + + /* AtomBIOS might change values, so that later comparisons would fail, even + * if re-setting wouldn't change the actual values. So don't save real + * state in Current, but update only to current values. */ + rhdPmGetRawState (rhdPtr, &dummy); + return ret; +} + + +/* + * API + */ + +static Bool +rhdPmSelectState (RHDPtr rhdPtr, enum rhdPowerState_e num) +{ + return rhdPmSetRawState (rhdPtr, &rhdPtr->Pm->States[num]); +} + +static Bool +rhdPmDefineState (RHDPtr rhdPtr, enum rhdPowerState_e num, struct rhdPowerState *state) +{ + ASSERT(0); +} + +void RHDPmInit(RHDPtr rhdPtr) +{ + struct rhdPm *Pm = (struct rhdPm *) xnfcalloc(sizeof(struct rhdPm), 1); + union AtomBiosArg data; + RHDFUNC(rhdPtr); + + rhdPtr->Pm = Pm; + + Pm->scrnIndex = rhdPtr->scrnIndex; + Pm->SelectState = rhdPmSelectState; + Pm->DefineState = rhdPmDefineState; + + if (RHDAtomBiosFunc (rhdPtr->scrnIndex, rhdPtr->atomBIOS, + ATOM_GET_CHIP_LIMITS, &data) != ATOM_SUCCESS) { + /* Not getting the information is fatal */ + xfree (Pm); + rhdPtr->Pm = NULL; + return; + } + memcpy (&Pm->Minimum, &data.chipLimits.Minimum, sizeof (struct rhdPowerState)); + memcpy (&Pm->Maximum, &data.chipLimits.Maximum, sizeof (struct rhdPowerState)); + memcpy (&Pm->Default, &data.chipLimits.Default, sizeof (struct rhdPowerState)); + + memcpy (&Pm->Current, &Pm->Default, sizeof (Pm->Default)); + rhdPmGetRawState (rhdPtr, &Pm->Current); + rhdPmValidateClearSetting (Pm, &Pm->Current); + + xf86DrvMsg (rhdPtr->scrnIndex, X_INFO, + "Power Management: used engine clock / memory clock / core (VDDC) voltage (0: ignore)\n"); + xf86DrvMsg (rhdPtr->scrnIndex, X_INFO, "Power Management: Raw Ranges\n"); + rhdPmPrint (Pm, "Minimum", &Pm->Minimum); + rhdPmPrint (Pm, "Maximum", &Pm->Maximum); + rhdPmPrint (Pm, "Default", &Pm->Default); + + if (RHDAtomBiosFunc (rhdPtr->scrnIndex, rhdPtr->atomBIOS, + ATOM_GET_CHIP_CONFIGS, &data) == ATOM_SUCCESS) { + Pm->NumKnown = data.chipConfigs.num; + Pm->Known = data.chipConfigs.Settings; + } else + xf86DrvMsg (rhdPtr->scrnIndex, X_ERROR, + "Power Management: Cannot get known good chip configurations\n"); + + /* Validate */ + if (! Pm->Default.EngineClock || ! Pm->Default.MemoryClock) + memcpy (&Pm->Default, &Pm->Current, sizeof (Pm->Current)); + rhdPmValidateMinMax (Pm); + rhdPmValidateSetting (Pm, &Pm->Current, 0); + + xf86DrvMsg (rhdPtr->scrnIndex, X_INFO, "Power Management: Validated Ranges\n"); + rhdPmPrint (Pm, "Minimum", &Pm->Minimum); + rhdPmPrint (Pm, "Maximum", &Pm->Maximum); + rhdPmPrint (Pm, "Default", &Pm->Default); + + if (Pm->NumKnown) { + int i; + xf86DrvMsg (rhdPtr->scrnIndex, X_INFO, + "Power Management: Known Good Configurations\n"); + for (i = 0; i < Pm->NumKnown; i++) { + char buf[4]; /* number of known entries is 8bit */ + snprintf (buf, 4, "%d", i+1); + rhdPmPrint (Pm, buf, &Pm->Known[i]); + } + } + + rhdPmSelectSettings (rhdPtr); + /* TODO: cleanup function: xfree(): Pm->Known[], Pm */ +} + +#else /* ATOM_BIOS */ + +void +RHDPmInit (RHDPtr rhdPtr) +{ + rhdPtr->Pm = NULL; +} + +#endif /* ATOM_BIOS */ + + +/* + * save current engine clock + */ +void +RHDPmSave (RHDPtr rhdPtr) +{ + struct rhdPm *Pm = rhdPtr->Pm; + RHDFUNC(rhdPtr); + +#ifdef ATOM_BIOS + /* ATM unconditionally enable power management features + * if low power mode requested */ + if (rhdPtr->atomBIOS) { + union AtomBiosArg data; + + data.val = 1; + RHDAtomBiosFunc (rhdPtr->scrnIndex, rhdPtr->atomBIOS, + ATOM_PM_SETUP, &data); + if (rhdPtr->ChipSet < RHD_R600) { + data.val = 1; + RHDAtomBiosFunc (rhdPtr->scrnIndex, rhdPtr->atomBIOS, + ATOM_PM_CLOCKGATING_SETUP, &data); + } + } +#endif + + if (!Pm) return; + + memcpy (&Pm->Stored, &Pm->Default, sizeof (Pm->Default)); + rhdPmGetRawState (rhdPtr, &Pm->Stored); + rhdPmValidateClearSetting (Pm, &Pm->Stored); +} + +/* + * restore saved engine clock + */ +void +RHDPmRestore (RHDPtr rhdPtr) +{ + struct rhdPm *Pm = rhdPtr->Pm; + + RHDFUNC(rhdPtr); + +#ifdef ATOM_BIOS + /* Don't know how to save state yet - unconditionally disable */ + if (rhdPtr->atomBIOS) { + union AtomBiosArg data; + + data.val = 0; + RHDAtomBiosFunc (rhdPtr->scrnIndex, rhdPtr->atomBIOS, + ATOM_PM_SETUP, &data); + if (rhdPtr->ChipSet < RHD_R600) { + data.val = 0; + RHDAtomBiosFunc (rhdPtr->scrnIndex, rhdPtr->atomBIOS, + ATOM_PM_CLOCKGATING_SETUP, &data); + } + } +#endif + + if (!Pm) + return; + + if (! Pm->Stored.EngineClock && ! Pm->Stored.MemoryClock) { + xf86DrvMsg (Pm->scrnIndex, X_ERROR, "%s: trying to restore " + "uninitialized values.\n", __func__); + return; + } + rhdPmSetRawState (rhdPtr, &Pm->Stored); +} + diff --git a/driver/xf86-video-radeonhd/src/rhd_pm.h b/driver/xf86-video-radeonhd/src/rhd_pm.h new file mode 100644 index 000000000..9f7744cb2 --- /dev/null +++ b/driver/xf86-video-radeonhd/src/rhd_pm.h @@ -0,0 +1,78 @@ +/* + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation on the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NON-INFRINGEMENT. IN NO EVENT SHALL ATI, VA LINUX SYSTEMS AND/OR + * THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef _RHD_PM_H +# define _RHD_PM_H + +/* Note about settings: RHD_PM_OFF may always change the memory clock, while + * for the others it remains to be seen whether we can change it without video + * disturbance. */ +/* TODO: forced settings overwrite default settings (Q: in which cases? RHD_PM_OFF?) */ +enum rhdPowerState_e { + /* DPMS off (Q: what about screensavers, what about 3D offscreen rendering apps) */ + RHD_PM_OFF, + /* DPMS on, no activity for some time */ + RHD_PM_IDLE, + /* Simple 2D activity */ + RHD_PM_SLOW_2D, + /* Advanced 2D activity, e.g. video playback */ + RHD_PM_FAST_2D, + /* Simple 3D activity, e.g. compiz (Q: how to select? indirect rendering only? */ + RHD_PM_SLOW_3D, + /* Fast 3D activity, e.g. games. Usually using default AtomBIOS setting. */ + RHD_PM_FAST_3D, + /* Use theoretical chip maximum, maybe beyond default - not selected automatically */ + RHD_PM_MAX_3D, + /* User supplied */ + RHD_PM_USER, + RHD_PM_NUM_STATES +}; + +struct rhdPm { + int scrnIndex; + + /* R/O */ + struct rhdPowerState Default; + struct rhdPowerState Minimum; + struct rhdPowerState Maximum; + /* Known good settings (in addition to Default). May be NULL */ + int NumKnown; + struct rhdPowerState *Known; + + struct rhdPowerState States[RHD_PM_NUM_STATES]; + struct rhdPowerState Current; + struct rhdPowerState Stored; + + Bool (*DefineState) (RHDPtr rhdPtr, enum rhdPowerState_e num, struct rhdPowerState *state); + Bool (*SelectState) (RHDPtr rhdPtr, enum rhdPowerState_e num); +#if 0 /* TODO: expose? */ + Bool (*SetRawState) (RHDPtr rhdPtr, struct rhdPowerState *state); + void (*GetRawState) (RHDPtr rhdPtr, struct rhdPowerState *state); +#endif +}; + +void RHDPmInit(RHDPtr rhdPtr); +void RHDPmSave(RHDPtr rhdPtr); +void RHDPmRestore(RHDPtr rhdPtr); + +#endif /* _RHD_PM_H */ diff --git a/driver/xf86-video-radeonhd/src/rhd_randr.c b/driver/xf86-video-radeonhd/src/rhd_randr.c index 8794f1c6c..956119b81 100644 --- a/driver/xf86-video-radeonhd/src/rhd_randr.c +++ b/driver/xf86-video-radeonhd/src/rhd_randr.c @@ -33,6 +33,10 @@ # include "config.h" #endif +/* The _AtomBIOS property is experimental for now - only enable if needed. + * Beware - there be dragons and crashes */ +#define ENABLE_PROPERTY_ATOMBIOS 0 + /* Xserver interface */ #include "xf86.h" @@ -44,8 +48,13 @@ # include "xf86RandR12.h" # include "xaa.h" # include "exa.h" +#ifdef HAVE_XEXTPROTO_71 +# include "X11/extensions/dpmsconst.h" +#else # define DPMS_SERVER # include "X11/extensions/dpms.h" +#endif + # include "X11/Xatom.h" #endif /* RANDR_12_SUPPORT */ @@ -111,20 +120,25 @@ struct rhdRandrCrtc { } u; }; +#define ATOM_EDID "EDID" +#define ATOM_EDID2 "EDID_DATA" #define ATOM_SIGNAL_FORMAT "SignalFormat" #define ATOM_CONNECTOR_TYPE "ConnectorType" #define ATOM_CONNECTOR_NUMBER "ConnectorNumber" #define ATOM_OUTPUT_NUMBER "_OutputNumber" #define ATOM_PANNING_AREA "_PanningArea" -#define ATOM_BACKLIGHT "_Backlight" +#define ATOM_BACKLIGHT "Backlight" #define ATOM_COHERENT "_Coherent" #define ATOM_HDMI "_HDMI" +#define ATOM_AUDIO_WORKAROUND "_AudioStreamSilence" +#define ATOM_ATOMBIOS "_AtomBIOS" static Atom atom_SignalFormat, atom_ConnectorType, atom_ConnectorNumber, atom_OutputNumber, atom_PanningArea, atom_Backlight, atom_Coherent, - atom_HdmiProperty; + atom_HdmiProperty, atom_AudioWorkaround; static Atom atom_unknown, atom_VGA, atom_TMDS, atom_LVDS, atom_DisplayPort, atom_TV; static Atom atom_DVI, atom_DVII, atom_DVID, atom_DVIA, atom_HDMI, atom_Panel; +static Atom atom_EDID, atom_EDID2, atom_AtomBIOS; /* Get RandR property values */ @@ -473,34 +487,23 @@ rhdRRCrtcCommit(xf86CrtcPtr crtc) RHDDebugRandrState(rhdPtr, rhdCrtc->Name); } -/* - * They just had to do NIH again here: Old X functionality provides a size, a - * list of indices, and a table of RGB unsigned shorts. RandR provides what - * is below. Apart from horribly breaking any attempt at being backwards - * compatible, this also pretty much rules out the usage of indexed colours, as - * each time even a single colour is changed an entirely new table has to be - * uploaded. Just cute. -- libv. - */ static void rhdRRCrtcGammaSet(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue, int size) { struct rhdCrtc *rhdCrtc = ((struct rhdRandrCrtc *)(crtc->driver_private))->rhdCrtc; - int indices[0x100]; /* would RandR use a size larger than 256? */ - LOCO colors[0x100]; - int i; - RHDDebug(rhdCrtc->scrnIndex, "%s: %s.\n", __func__, rhdCrtc->Name); - /* thanks so very much */ - for (i = 0; i < size; i++) { - indices[i] = i; - colors[i].red = red[i] >> 6; - colors[i].green = green[i] >> 6; - colors[i].blue = blue[i] >> 6; + if (size < 256) { + xf86DrvMsg(rhdCrtc->scrnIndex, X_ERROR, + "LUT: only %d rows of LUT given, when 256 expected; aborting", size); + return; + } else if (size > 256) { + xf86DrvMsg(rhdCrtc->scrnIndex, X_WARNING, + "LUT: %d rows of LUT given, when 256 expected; some rows are ignored", size); } - rhdCrtc->LUT->Set(rhdCrtc->LUT, size, indices, colors); + rhdCrtc->LUT->Set(rhdCrtc->LUT, red, green, blue); } /* Dummy, because not tested for NULL */ @@ -538,10 +541,17 @@ rhdRROutputCreateResources(xf86OutputPtr out) CARD32 num; int err; INT32 range[2]; + static xf86OutputPtr first_output = NULL; RHDFUNC(rhdPtr); + if (! first_output) + first_output = out; /* Create atoms for RandR 1.3 properties */ + atom_EDID = MakeAtom(ATOM_EDID, + sizeof(ATOM_EDID)-1, TRUE); + atom_EDID2 = MakeAtom(ATOM_EDID2, + sizeof(ATOM_EDID2)-1, TRUE); atom_SignalFormat = MakeAtom(ATOM_SIGNAL_FORMAT, sizeof(ATOM_SIGNAL_FORMAT)-1, TRUE); atom_ConnectorType = MakeAtom(ATOM_CONNECTOR_TYPE, @@ -552,6 +562,8 @@ rhdRROutputCreateResources(xf86OutputPtr out) sizeof(ATOM_OUTPUT_NUMBER)-1, TRUE); atom_PanningArea = MakeAtom(ATOM_PANNING_AREA, sizeof(ATOM_PANNING_AREA)-1, TRUE); + atom_AtomBIOS = MakeAtom(ATOM_ATOMBIOS, + sizeof(ATOM_ATOMBIOS)-1, TRUE); /* Create atoms for RandR 1.3 property values */ atom_unknown = MakeAtom("unknown", 7, TRUE); @@ -610,13 +622,29 @@ rhdRROutputCreateResources(xf86OutputPtr out) XA_STRING, 8, PropModeReplace, 0, NULL, FALSE, FALSE); +#if ENABLE_PROPERTY_ATOMBIOS + /* AtomBIOS usage */ + /* We don't have per-CRTC or even per-GPU properties; + * so fake this by only applying to first output */ + if (out == first_output) { + char *string; + RRConfigureOutputProperty(out->randr_output, atom_AtomBIOS, + FALSE, FALSE, FALSE, 0, NULL); + string = rhdReturnAtomBIOSUsage(rhdPtr); + RRChangeOutputProperty(out->randr_output, atom_AtomBIOS, + XA_STRING, 8, PropModeReplace, + strlen(string), string, FALSE, FALSE); + free (string); + } +#endif + if (rout->Output->Property) { if (rout->Output->Property(rout->Output, rhdPropertyCheck, RHD_OUTPUT_BACKLIGHT, NULL)) { atom_Backlight = MakeAtom(ATOM_BACKLIGHT, sizeof(ATOM_BACKLIGHT)-1, TRUE); range[0] = 0; - range[1] = 255; + range[1] = RHD_BACKLIGHT_PROPERTY_MAX; err = RRConfigureOutputProperty(out->randr_output, atom_Backlight, FALSE, TRUE, FALSE, 2, range); if (err != 0) @@ -626,7 +654,7 @@ rhdRROutputCreateResources(xf86OutputPtr out) union rhdPropertyData val; if (!rout->Output->Property(rout->Output, rhdPropertyGet, RHD_OUTPUT_BACKLIGHT, &val)) - val.integer = 255; + val.integer = RHD_BACKLIGHT_PROPERTY_MAX; /* max */ err = RRChangeOutputProperty(out->randr_output, atom_Backlight, XA_INTEGER, 32, PropModeReplace, @@ -686,6 +714,30 @@ rhdRROutputCreateResources(xf86OutputPtr out) __func__, err); } } + if (rout->Output->Property(rout->Output, rhdPropertyCheck, RHD_OUTPUT_AUDIO_WORKAROUND, NULL)) { + atom_AudioWorkaround = MakeAtom(ATOM_AUDIO_WORKAROUND, sizeof(ATOM_AUDIO_WORKAROUND)-1, TRUE); + + range[0] = 0; + range[1] = 1; + err = RRConfigureOutputProperty(out->randr_output, atom_AudioWorkaround, + FALSE, TRUE, FALSE, 2, range); + if (err != 0) + xf86DrvMsg(rhdPtr->scrnIndex, X_ERROR, + "RRConfigureOutputProperty error: %d\n", err); + else { + union rhdPropertyData val; + + if (!rout->Output->Property(rout->Output, rhdPropertyGet, RHD_OUTPUT_AUDIO_WORKAROUND, &val)) + val.Bool = 1; + err = RRChangeOutputProperty(out->randr_output, atom_AudioWorkaround, + XA_INTEGER, 32, PropModeReplace, + 1, &val.Bool, FALSE, FALSE); + if (err != 0) + xf86DrvMsg(rhdPtr->scrnIndex, X_ERROR, + "In %s RRChangeOutputProperty error: %d\n", + __func__, err); + } + } } } @@ -1292,9 +1344,16 @@ rhdRROutputSetProperty(xf86OutputPtr out, Atom property, { RHDPtr rhdPtr = RHDPTR(out->scrn); rhdRandrOutputPtr rout = (rhdRandrOutputPtr) out->driver_private; + char buf[256]; RHDFUNC(rhdPtr); + /* Unfortunately, strings are not necessarily 0 terminated */ + if (value->type == XA_STRING && value->format == 8) { + int len = value->size < 255 ? value->size : 255; + memcpy (buf, value->data, len); + buf[len] = 0; + } if (property == atom_PanningArea) { int w = 0, h = 0, x = 0, y = 0; struct rhdCrtc *Crtc = rout->Output->Crtc; @@ -1314,7 +1373,7 @@ rhdRROutputSetProperty(xf86OutputPtr out, Atom property, } if (value->type != XA_STRING || value->format != 8) return FALSE; - switch (sscanf(value->data, "%dx%d+%d+%d", &w, &h, &x, &y)) { + switch (sscanf(buf, "%dx%d+%d+%d", &w, &h, &x, &y)) { case 0: case 2: case 4: @@ -1374,6 +1433,35 @@ rhdRROutputSetProperty(xf86OutputPtr out, Atom property, RHD_OUTPUT_HDMI, NULL); } return FALSE; + } else if (property == atom_AudioWorkaround) { + if (value->type != XA_INTEGER || value->format != 32) { + xf86DrvMsg(rhdPtr->scrnIndex, X_ERROR, "%s: wrong value\n", __func__); + return FALSE; + } + if (rout->Output->Property) { + union rhdPropertyData val; + val.Bool = *(int*)(value->data); + if(rout->Output->Property(rout->Output, rhdPropertySet, + RHD_OUTPUT_AUDIO_WORKAROUND, &val)) + return rout->Output->Property(rout->Output, rhdPropertyCommit, + RHD_OUTPUT_AUDIO_WORKAROUND, NULL); + } + return FALSE; +#if ENABLE_PROPERTY_ATOMBIOS + } else if (property == atom_AtomBIOS) { + if (value->type != XA_STRING || value->format != 8) + return FALSE; + if (rhdUpdateAtomBIOSUsage(rhdPtr, buf)) { + free (value->data); + value->data = rhdReturnAtomBIOSUsage(rhdPtr); + value->size = strlen(value->data); + return TRUE; + } + return FALSE; +#endif + } else if (property == atom_EDID || property == atom_EDID2) { + /* Don't do anything, but allow change */ + return TRUE; } return FALSE; /* Others are not mutable */ @@ -1411,8 +1499,8 @@ rhdRRCrtcShadowAllocate(xf86CrtcPtr crtc, int Width, int Height) return ((char *)rhdPtr->FbBase + rhdRRCrtc->u.MemEXA->offset); } - #endif /* USE_EXA */ + if (rhdPtr->AccelMethod == RHD_ACCEL_XAA) { int Align = (4096 + OctPerPixel - 1) / OctPerPixel; Size = (Size + OctPerPixel - 1) / OctPerPixel; @@ -1501,7 +1589,7 @@ rhdRROutputGetProperty(xf86OutputPtr out, Atom property) int err = BadValue; union rhdPropertyData val; - xf86DrvMsg(rhdPtr->scrnIndex, X_INFO, "In %s\n", __func__); + RHDFUNC(rhdPtr); if (property == atom_Backlight) { if (rout->Output->Property == NULL) @@ -1525,12 +1613,34 @@ rhdRROutputGetProperty(xf86OutputPtr out, Atom property) err = RRChangeOutputProperty(out->randr_output, atom_Coherent, XA_INTEGER, 32, PropModeReplace, 1, &val.Bool, FALSE, FALSE); + } else if (property == atom_HdmiProperty) { + if (rout->Output->Property == NULL) + return FALSE; + + if (!rout->Output->Property(rout->Output, rhdPropertyGet, + RHD_OUTPUT_HDMI, &val)) + return FALSE; + + err = RRChangeOutputProperty(out->randr_output, atom_HdmiProperty, + XA_INTEGER, 32, PropModeReplace, + 1, &val.Bool, FALSE, FALSE); + } else if (property == atom_AudioWorkaround) { + if (rout->Output->Property == NULL) + return FALSE; + + if (!rout->Output->Property(rout->Output, rhdPropertyGet, + RHD_OUTPUT_AUDIO_WORKAROUND, &val)) + return FALSE; + + err = RRChangeOutputProperty(out->randr_output, atom_AudioWorkaround, + XA_INTEGER, 32, PropModeReplace, + 1, &val.Bool, FALSE, FALSE); } - if (err != 0) { - xf86DrvMsg(rhdPtr->scrnIndex, X_ERROR, "In %s RRChangeOutputProperty error: %d\n", __func__, err); + RHDDebug(rhdPtr->scrnIndex, "%s 0x%x returns %d\n", __func__, property, err); + + if (err != 0) return FALSE; - } return TRUE; } @@ -1913,6 +2023,21 @@ RHDRandrPreInit(ScrnInfoPtr pScrn) xfree(RandrOutput); rhdPtr->randr = randr; + /* Unless we're able to shrink/enlarge FB on the fly (GEM etc.), allocate + * large enough (TM) virtual size */ + if (!pScrn->display->virtualX || !pScrn->display->virtualY) { + /* Have at least enough space for double buffering and z Buffer + some textures */ + if (2 * 1920*1920 * ((unsigned)pScrn->bitsPerPixel/8) <= rhdPtr->FbFreeSize / 4) { + /* Fits on 128MB and up */ + pScrn->display->virtualX = 2 * 1920; + pScrn->display->virtualY = 1920; + } else if (2 * 1680*1280 * ((unsigned)pScrn->bitsPerPixel/8) <= rhdPtr->FbFreeSize / 4) { + /* Fits on 64MB and up */ + pScrn->display->virtualX = 2 * 1680; + pScrn->display->virtualY = 1280; + } + } + if (!xf86InitialConfiguration(pScrn, FALSE)) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "RandR: No valid modes. Disabling RandR support.\n"); diff --git a/driver/xf86-video-radeonhd/src/rhd_regs.h b/driver/xf86-video-radeonhd/src/rhd_regs.h index bf74dd3c7..0e75d0693 100644 --- a/driver/xf86-video-radeonhd/src/rhd_regs.h +++ b/driver/xf86-video-radeonhd/src/rhd_regs.h @@ -31,13 +31,19 @@ enum { BUS_CNTL = 0x4C, /* (RW) */ MC_IND_INDEX = 0x70, /* (RW) */ MC_IND_DATA = 0x74, /* (RW) */ + RS600_MC_INDEX = 0x70, + RS600_MC_DATA = 0x74, + RS690_MC_INDEX = 0x78, + RS690_MC_DATA = 0x7c, + RS780_MC_INDEX = 0x28f8, + RS780_MC_DATA = 0x28fc, + + RS60_MC_NB_MC_INDEX = 0x78, + RS60_MC_NB_MC_DATA = 0x7C, CONFIG_CNTL = 0xE0, - /* RS690 ?? */ - RS60_MC_NB_MC_INDEX = 0x78, - RS60_MC_NB_MC_DATA = 0x7C, - RS69_MC_INDEX = 0xE8, - RS69_MC_DATA = 0xEC, - R5XX_CONFIG_MEMSIZE = 0x00F8, + PCIE_RS69_MC_INDEX = 0xE8, + PCIE_RS69_MC_DATA = 0xEC, + R5XX_CONFIG_MEMSIZE = 0x00F8, HDP_FB_LOCATION = 0x0134, @@ -107,8 +113,6 @@ enum { DCCG_DISP_CLK_SRCSEL = 0x0538, /* rv620+ */ - SRBM_STATUS = 0x0E50, - AGP_STATUS = 0x0F5C, R7XX_MC_VM_FB_LOCATION = 0x2024, @@ -512,7 +516,7 @@ enum RV620_EXT1_DIFF_POST_DIV_CNTL_BITS { enum RV620_EXT2_DIFF_POST_DIV_CNTL_BITS { RV62_EXT2_DIFF_POST_DIV_RESET = 1 << 0, RV62_EXT2_DIFF_POST_DIV_SELECT = 1 << 4, - RV62_EXT2_DIFF_DRIVER_ENABLE = 1 << 8 + RV62_EXT2_DIFF_DRIVER_ENABLE = 3 << 8 }; enum RV620_LVTMA_PWRSEQ_CNTL_BITS { @@ -817,8 +821,8 @@ enum RS69_DDIA_PCIE_LINK_CONTROL3_BITS { }; enum RS69_MC_INDEX_BITS { - RS69_MC_IND_ADDR = (0x1 << 0), - RS69_MC_IND_WR_EN = (0x1 << 9) + PCIE_RS69_MC_IND_ADDR = (0x1 << 0), + PCIE_RS69_MC_IND_WR_EN = (0x1 << 9) }; enum RS60_MC_NB_MC_INDEX_BITS { @@ -868,22 +872,45 @@ enum _rs600MCRegs { RS60_NB_FB_LOCATION = 0xa }; +enum RS600_MC_INDEX_BITS { + RS600_MC_INDEX_ADDR_MASK = 0xffff, + RS600_MC_INDEX_SEQ_RBS_0 = (1 << 16), + RS600_MC_INDEX_SEQ_RBS_1 = (1 << 17), + RS600_MC_INDEX_SEQ_RBS_2 = (1 << 18), + RS600_MC_INDEX_SEQ_RBS_3 = (1 << 19), + RS600_MC_INDEX_AIC_RBS = (1 << 20), + RS600_MC_INDEX_CITF_ARB0 = (1 << 21), + RS600_MC_INDEX_CITF_ARB1 = (1 << 22), + RS600_MC_INDEX_WR_EN = (1 << 23) +}; + +enum RS690_MC_INDEX_BITS { + RS690_MC_INDEX_ADDR_MASK = 0x1ff, + RS690_MC_INDEX_WR_EN = (1 << 9), + RS690_MC_INDEX_WR_ACK = 0x7f +}; + +enum RS780_MC_INDEX_BITS { + RS780_MC_INDEX_ADDR_MASK = 0x1ff, + RS780_MC_INDEX_WR_EN = (1 << 9) +}; + enum _rs780NBRegs { - RS78_NB_MC_IND_INDEX = 0x70, - RS78_NB_MC_IND_DATA = 0x74 + PCIE_RS78_NB_MC_IND_INDEX = 0x70, + PCIE_RS78_NB_MC_IND_DATA = 0x74 }; enum RS78_NB_IND_INDEX_BITS { - RS78_NB_MC_IND_INDEX_MASK = (0xffff << 0), - RS78_MC_IND_SEQ_RBS_0 = (0x1 << 16), - RS78_MC_IND_SEQ_RBS_1 = (0x1 << 17), - RS78_MC_IND_SEQ_RBS_2 = (0x1 << 18), - RS78_MC_IND_SEQ_RBS_3 = (0x1 << 19), - RS78_MC_IND_AIC_RBS = (0x1 << 20), - RS78_MC_IND_CITF_ARB0 = (0x1 << 21), - RS78_MC_IND_CITF_ARB1 = (0x1 << 22), - RS78_MC_IND_WR_EN = (0x1 << 23), - RS78_MC_IND_RD_INV = (0x1 << 24) + PCIE_RS78_NB_MC_IND_INDEX_MASK = (0xffff << 0), + PCIE_RS78_MC_IND_SEQ_RBS_0 = (0x1 << 16), + PCIE_RS78_MC_IND_SEQ_RBS_1 = (0x1 << 17), + PCIE_RS78_MC_IND_SEQ_RBS_2 = (0x1 << 18), + PCIE_RS78_MC_IND_SEQ_RBS_3 = (0x1 << 19), + PCIE_RS78_MC_IND_AIC_RBS = (0x1 << 20), + PCIE_RS78_MC_IND_CITF_ARB0 = (0x1 << 21), + PCIE_RS78_MC_IND_CITF_ARB1 = (0x1 << 22), + PCIE_RS78_MC_IND_WR_EN = (0x1 << 23), + PCIE_RS78_MC_IND_RD_INV = (0x1 << 24) }; enum _rs780MCRegs { @@ -1092,6 +1119,7 @@ enum AGP_STATUS_BITS { enum { /* HDMI registers */ HDMI_ENABLE = 0x00, + HDMI_STATUS = 0x04, HDMI_CNTL = 0x08, HDMI_UNKNOWN_0 = 0x0C, HDMI_AUDIOCNTL = 0x10, @@ -1113,7 +1141,10 @@ enum { HDMI_IEC60958_1 = 0xd4, HDMI_IEC60958_2 = 0xd8, HDMI_UNKNOWN_2 = 0xdc, - HDMI_AUDIO_DEBUG = 0xe0 + HDMI_AUDIO_DEBUG_0 = 0xe0, + HDMI_AUDIO_DEBUG_1 = 0xe4, + HDMI_AUDIO_DEBUG_2 = 0xe8, + HDMI_AUDIO_DEBUG_3 = 0xec }; #endif /* _RHD_REGS_H */ diff --git a/driver/xf86-video-radeonhd/src/rhd_tmds.c b/driver/xf86-video-radeonhd/src/rhd_tmds.c index 77529a578..7148ff5ee 100644 --- a/driver/xf86-video-radeonhd/src/rhd_tmds.c +++ b/driver/xf86-video-radeonhd/src/rhd_tmds.c @@ -243,6 +243,7 @@ TMDSAPropertyControl(struct rhdOutput *Output, switch (Property) { case RHD_OUTPUT_COHERENT: case RHD_OUTPUT_HDMI: + case RHD_OUTPUT_AUDIO_WORKAROUND: return TRUE; default: return FALSE; @@ -255,6 +256,9 @@ TMDSAPropertyControl(struct rhdOutput *Output, case RHD_OUTPUT_HDMI: val->Bool = Private->HdmiEnabled; return TRUE; + case RHD_OUTPUT_AUDIO_WORKAROUND: + val->Bool = RHDHdmiGetAudioWorkaround(Private->Hdmi); + return TRUE; default: return FALSE; } @@ -267,6 +271,9 @@ TMDSAPropertyControl(struct rhdOutput *Output, case RHD_OUTPUT_HDMI: Private->HdmiEnabled = val->Bool; break; + case RHD_OUTPUT_AUDIO_WORKAROUND: + RHDHdmiSetAudioWorkaround(Private->Hdmi, val->Bool); + break; default: return FALSE; } @@ -278,6 +285,9 @@ TMDSAPropertyControl(struct rhdOutput *Output, Output->Mode(Output, Private->Mode); Output->Power(Output, RHD_POWER_ON); break; + case RHD_OUTPUT_AUDIO_WORKAROUND: + RHDHdmiCommitAudioWorkaround(Private->Hdmi); + break; default: return FALSE; } diff --git a/driver/xf86-video-radeonhd/src/rhd_video.c b/driver/xf86-video-radeonhd/src/rhd_video.c index 25acc4700..383f926fa 100644 --- a/driver/xf86-video-radeonhd/src/rhd_video.c +++ b/driver/xf86-video-radeonhd/src/rhd_video.c @@ -62,6 +62,8 @@ #include <X11/extensions/Xv.h> #include "fourcc.h" +static Atom xvColorSpace; + #ifdef USE_EXA /* * @@ -193,7 +195,15 @@ rhdSetPortAttribute(ScrnInfoPtr pScrn, INT32 value, pointer data) { - return BadMatch; + /*RHDPtr rhdPtr = RHDPTR(pScrn);*/ + struct RHDPortPriv *pPriv = (struct RHDPortPriv*)data; + + if (attribute == xvColorSpace) + pPriv->color_space = value; + else + return BadMatch; + + return Success; } /* @@ -205,7 +215,15 @@ rhdGetPortAttribute(ScrnInfoPtr pScrn, INT32 *value, pointer data) { - return BadMatch; + /*RHDPtr rhdPtr = RHDPTR(pScrn);*/ + struct RHDPortPriv *pPriv = (struct RHDPortPriv*)data; + + if (attribute == xvColorSpace) + *value = pPriv->color_space; + else + return BadMatch; + + return Success; } /* @@ -875,6 +893,14 @@ static XF86ImageRec Images[NUM_IMAGES] = XVIMAGE_UYVY }; +#define NUM_ATTRIBUTES 1 + +static XF86AttributeRec Attributes[NUM_ATTRIBUTES+1] = +{ + {XvSettable | XvGettable, 0, RHD_XV_NUM_COLOR_SPACE-1, "XV_COLORSPACE"}, + { 0, 0, 0, NULL} /* place holder */ +}; + /* * */ @@ -890,6 +916,9 @@ rhdSetupImageTexturedVideo(ScreenPtr pScreen) RHDFUNC(pScrn); + /* Create attribute atoms */ + xvColorSpace = MakeAtom("XV_COLORSPACE", 13, TRUE); + adapt = xnfcalloc(1, sizeof(XF86VideoAdaptorRec) + num_texture_ports * (sizeof(struct RHDPortPriv) + sizeof(DevUnion))); @@ -914,8 +943,14 @@ rhdSetupImageTexturedVideo(ScreenPtr pScreen) pPortPriv = (struct RHDPortPriv *)(&adapt->pPortPrivates[num_texture_ports]); - adapt->nAttributes = 0; - adapt->pAttributes = NULL; + /* Xv Attributes for r6xx/r7xx only for now */ + if (rhdPtr->ChipSet >= RHD_R600) { + adapt->nAttributes = NUM_ATTRIBUTES; + adapt->pAttributes = Attributes; + } else { + adapt->nAttributes = 0; + adapt->pAttributes = NULL; + } adapt->pImages = Images; adapt->nImages = NUM_IMAGES; adapt->PutVideo = NULL; @@ -936,6 +971,9 @@ rhdSetupImageTexturedVideo(ScreenPtr pScreen) /* gotta uninit this someplace, XXX: shouldn't be necessary for textured */ REGION_NULL(pScreen, &pPriv->clip); + /* Set default attribute values */ + pPriv->color_space = RHD_XV_COLOR_SPACE_AUTODETECT; + adapt->pPortPrivates[i].ptr = (pointer) (pPriv); } @@ -987,5 +1025,4 @@ RHDInitVideo(ScreenPtr pScreen) if (newAdaptors) xfree(newAdaptors); - } diff --git a/driver/xf86-video-radeonhd/src/rhd_video.h b/driver/xf86-video-radeonhd/src/rhd_video.h index aadebc06c..bc45dae7e 100644 --- a/driver/xf86-video-radeonhd/src/rhd_video.h +++ b/driver/xf86-video-radeonhd/src/rhd_video.h @@ -30,6 +30,13 @@ # define uint32_t CARD32 # define uint64_t CARD64 +enum RHDXvColorSpace { + RHD_XV_COLOR_SPACE_AUTODETECT, + RHD_XV_COLOR_SPACE_REC601, + RHD_XV_COLOR_SPACE_REC709, + RHD_XV_NUM_COLOR_SPACE +}; + /* Xvideo port struct */ struct RHDPortPriv { DrawablePtr pDraw; @@ -50,6 +57,8 @@ struct RHDPortPriv { int h; int drw_x; int drw_y; + + enum RHDXvColorSpace color_space; }; extern void RHDRADEONDisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv); diff --git a/driver/xf86-video-radeonhd/utils/conntest/Makefile.am b/driver/xf86-video-radeonhd/utils/conntest/Makefile.am index b7cc322ba..48fafbedc 100644 --- a/driver/xf86-video-radeonhd/utils/conntest/Makefile.am +++ b/driver/xf86-video-radeonhd/utils/conntest/Makefile.am @@ -5,6 +5,11 @@ include $(top_srcdir)/RadeonHD.am EXTRA_DIST = README Imakefile EXTRA_PROGRAMS = rhd_conntest rhd_dump + +if XSERVER_LIBPCIACCESS +noinst_PROGRAMS = rhd_conntest rhd_dump +endif + if HAVE_PCI_PCI_H if HAVE_ZLIB noinst_PROGRAMS = rhd_conntest rhd_dump @@ -24,8 +29,16 @@ AM_CPPFLAGS = -I$(top_srcdir)/src/AtomBios/includes rhd_conntest_SOURCES = rhd_conntest.c nodist_rhd_conntest_SOURCES = git_version.h +if XSERVER_LIBPCIACCESS +rhd_conntest_LDADD = @PCIACCESS_LIBS@ +else rhd_conntest_LDADD = @PCIUTILS_LIBS@ +endif rhd_dump_SOURCES = rhd_dump.c nodist_rhd_dump_SOURCES = git_version.h -rhd_dump_LDADD = @PCIUTILS_LIBS@
\ No newline at end of file +if XSERVER_LIBPCIACCESS +rhd_dump_LDADD = @PCIACCESS_LIBS@ +else +rhd_dump_LDADD = @PCIUTILS_LIBS@ +endif diff --git a/driver/xf86-video-radeonhd/utils/conntest/Makefile.in b/driver/xf86-video-radeonhd/utils/conntest/Makefile.in index 0cebf4ebf..04e1ca8e7 100644 --- a/driver/xf86-video-radeonhd/utils/conntest/Makefile.in +++ b/driver/xf86-video-radeonhd/utils/conntest/Makefile.in @@ -44,12 +44,17 @@ host_triplet = @host@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/RadeonHD.am EXTRA_PROGRAMS = rhd_conntest$(EXEEXT) rhd_dump$(EXEEXT) +@HAVE_PCI_PCI_H_FALSE@@XSERVER_LIBPCIACCESS_TRUE@noinst_PROGRAMS = rhd_conntest$(EXEEXT) \ +@HAVE_PCI_PCI_H_FALSE@@XSERVER_LIBPCIACCESS_TRUE@ rhd_dump$(EXEEXT) @HAVE_PCI_PCI_H_TRUE@@HAVE_ZLIB_TRUE@noinst_PROGRAMS = \ @HAVE_PCI_PCI_H_TRUE@@HAVE_ZLIB_TRUE@ rhd_conntest$(EXEEXT) \ @HAVE_PCI_PCI_H_TRUE@@HAVE_ZLIB_TRUE@ rhd_dump$(EXEEXT) +@HAVE_ZLIB_FALSE@@XSERVER_LIBPCIACCESS_TRUE@noinst_PROGRAMS = rhd_conntest$(EXEEXT) \ +@HAVE_ZLIB_FALSE@@XSERVER_LIBPCIACCESS_TRUE@ rhd_dump$(EXEEXT) subdir = utils/conntest ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(install_sh) -d @@ -88,6 +93,7 @@ ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ +AM_MAKEFLAGS = @AM_MAKEFLAGS@ APP_MAN_DIR = @APP_MAN_DIR@ APP_MAN_SUFFIX = @APP_MAN_SUFFIX@ AR = @AR@ @@ -125,13 +131,17 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ +FC = @FC@ FFLAGS = @FFLAGS@ FILE_MAN_DIR = @FILE_MAN_DIR@ FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@ +GREP = @GREP@ HAVE_PCI_PCI_H_FALSE = @HAVE_PCI_PCI_H_FALSE@ HAVE_PCI_PCI_H_TRUE = @HAVE_PCI_PCI_H_TRUE@ HAVE_SED_WITH_REASONABLE_SUBSTITUTION_FALSE = @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_FALSE@ HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE = @HAVE_SED_WITH_REASONABLE_SUBSTITUTION_TRUE@ +HAVE_XEXTPROTO_71_FALSE = @HAVE_XEXTPROTO_71_FALSE@ +HAVE_XEXTPROTO_71_TRUE = @HAVE_XEXTPROTO_71_TRUE@ HAVE_XF86_ANSIC_H_FALSE = @HAVE_XF86_ANSIC_H_FALSE@ HAVE_XF86_ANSIC_H_TRUE = @HAVE_XF86_ANSIC_H_TRUE@ HAVE_ZLIB_FALSE = @HAVE_ZLIB_FALSE@ @@ -151,10 +161,12 @@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MISC_MAN_DIR = @MISC_MAN_DIR@ MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@ NMEDIT = @NMEDIT@ +OBJC = @OBJC@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ @@ -169,6 +181,7 @@ PCIUTILS_CFLAGS = @PCIUTILS_CFLAGS@ PCIUTILS_LIBS = @PCIUTILS_LIBS@ PEDANTIC_CFLAGS = @PEDANTIC_CFLAGS@ PKG_CONFIG = @PKG_CONFIG@ +Q = @Q@ RANDR_VERSION = @RANDR_VERSION@ RANLIB = @RANLIB@ SED = @SED@ @@ -179,21 +192,18 @@ USE_DRI_FALSE = @USE_DRI_FALSE@ USE_DRI_TRUE = @USE_DRI_TRUE@ USE_EXA_FALSE = @USE_EXA_FALSE@ USE_EXA_TRUE = @USE_EXA_TRUE@ +V = @V@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ +XEXT_CFLAGS = @XEXT_CFLAGS@ +XEXT_LIBS = @XEXT_LIBS@ XORG_CFLAGS = @XORG_CFLAGS@ XORG_LIBS = @XORG_LIBS@ XSERVER_LIBPCIACCESS_FALSE = @XSERVER_LIBPCIACCESS_FALSE@ XSERVER_LIBPCIACCESS_TRUE = @XSERVER_LIBPCIACCESS_TRUE@ -ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ -ac_ct_DSYMUTIL = @ac_ct_DSYMUTIL@ ac_ct_F77 = @ac_ct_F77@ -ac_ct_NMEDIT = @ac_ct_NMEDIT@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ @@ -210,26 +220,34 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ moduledir = @moduledir@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +shavedir = @shavedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @@ -248,10 +266,12 @@ AM_CFLAGS = @XORG_CFLAGS@ @WARN_CFLAGS@ @PCIUTILS_CFLAGS@ AM_CPPFLAGS = -I$(top_srcdir)/src/AtomBios/includes rhd_conntest_SOURCES = rhd_conntest.c nodist_rhd_conntest_SOURCES = git_version.h -rhd_conntest_LDADD = @PCIUTILS_LIBS@ +@XSERVER_LIBPCIACCESS_FALSE@rhd_conntest_LDADD = @PCIUTILS_LIBS@ +@XSERVER_LIBPCIACCESS_TRUE@rhd_conntest_LDADD = @PCIACCESS_LIBS@ rhd_dump_SOURCES = rhd_dump.c nodist_rhd_dump_SOURCES = git_version.h -rhd_dump_LDADD = @PCIUTILS_LIBS@ +@XSERVER_LIBPCIACCESS_FALSE@rhd_dump_LDADD = @PCIUTILS_LIBS@ +@XSERVER_LIBPCIACCESS_TRUE@rhd_dump_LDADD = @PCIACCESS_LIBS@ all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am diff --git a/driver/xf86-video-radeonhd/utils/conntest/git_version.h b/driver/xf86-video-radeonhd/utils/conntest/git_version.h index 03087ff3e..361b633bd 100644 --- a/driver/xf86-video-radeonhd/utils/conntest/git_version.h +++ b/driver/xf86-video-radeonhd/utils/conntest/git_version.h @@ -20,7 +20,7 @@ #define GIT_REPO 1 /* Git SHA ID of last commit */ -#define GIT_SHAID "cb54f48b" +#define GIT_SHAID "8cbff7bf" /* Branch this tree is on */ #define GIT_BRANCH "master" diff --git a/driver/xf86-video-radeonhd/utils/conntest/rhd_conntest.c b/driver/xf86-video-radeonhd/utils/conntest/rhd_conntest.c index 9e9a595ce..f1db55291 100644 --- a/driver/xf86-video-radeonhd/utils/conntest/rhd_conntest.c +++ b/driver/xf86-video-radeonhd/utils/conntest/rhd_conntest.c @@ -35,7 +35,6 @@ #include <errno.h> #include <string.h> #include <sys/mman.h> -#include <pci/pci.h> #include <unistd.h> #include <stdlib.h> @@ -44,6 +43,12 @@ #endif #include "git_version.h" +#ifdef XSERVER_LIBPCIACCESS +#include <pciaccess.h> +#else +#include <pci/pci.h> +#endif + #ifndef ULONG typedef unsigned int ULONG; # define ULONG ULONG @@ -79,6 +84,26 @@ typedef unsigned int CARD32; /* Some register names */ enum { + /* Needed for enable PCI ROM read */ + BUS_CNTL = 0x4C, /* (RW) */ + GPIOPAD_MASK = 0x198, /* (RW) */ + GPIOPAD_A = 0x19C, /* (RW) */ + GPIOPAD_EN = 0x1A0, /* (RW) */ + VIPH_CONTROL = 0xC40, /* (RW) */ + SEPROM_CNTL1 = 0x1C0, /* (RW) */ + + ROM_CNTL = 0x1600, + GENERAL_PWRMGT = 0x0618, + LOW_VID_LOWER_GPIO_CNTL = 0x0724, + MEDIUM_VID_LOWER_GPIO_CNTL = 0x0720, + HIGH_VID_LOWER_GPIO_CNTL = 0x071C, + CTXSW_VID_LOWER_GPIO_CNTL = 0x0718, + LOWER_GPIO_ENABLE = 0x0710, + + VGA_RENDER_CONTROL = 0x0300, + D1VGA_CONTROL = 0x0330, + D2VGA_CONTROL = 0x0338, + /* DAC A */ DACA_ENABLE = 0x7800, DACA_SOURCE_SELECT = 0x7804, @@ -256,6 +281,21 @@ typedef enum dacOutput { DAC_COMPONENT } dacOutput; +/* Some defines needed for getting access to unposted BIOS */ + +#define SCK_PRESCALE (0xff << 24) +#define VIPH_EN (1 << 21) +#define BIOS_ROM_DIS (1 << 2) +#define D1VGA_MODE_ENABLE (1 << 0) +#define D1VGA_TIMING_SELECT (1 << 8) +#define D2VGA_MODE_ENABLE (1 << 0) +#define D2VGA_TIMING_SELECT (1 << 8) +#define VGA_VSTATUS_CNTL (0x3 << 16) +#define SCK_OVERWRITE (1 << 1) +#define SCK_PRESCALE_CRYSTAL_CLK_SHIFT 28 +#define OPEN_DRAIN_PADS (1 << 11) + + /* for RHD_R500/R600/RS690/RV620 */ chipType ChipType; @@ -509,6 +549,8 @@ dprint(unsigned char *start, unsigned long size) /* * */ +#ifndef XSERVER_LIBPCIACCESS +/* Only for libpci use */ static struct pci_dev * DeviceLocate(struct pci_dev *devices, int bus, int dev, int func) { @@ -520,12 +562,17 @@ DeviceLocate(struct pci_dev *devices, int bus, int dev, int func) return device; return NULL; } +#endif /* * */ static struct RHDDevice * +#ifdef XSERVER_LIBPCIACCESS +DeviceMatch(struct pci_device *device) +#else DeviceMatch(struct pci_dev *device) +#endif { int i; @@ -540,6 +587,8 @@ DeviceMatch(struct pci_dev *device) /* * */ +#ifndef XSERVER_LIBPCIACCESS +/* Only for libpci use */ static void * MapBar(struct pci_dev *device, int ioBar, int devMem) { @@ -561,6 +610,7 @@ MapBar(struct pci_dev *device, int ioBar, int devMem) return map; } +#endif /* * @@ -848,10 +898,10 @@ RV620DACLoadDetect(void *map, Bool tv, int dac) RegMask(map, offset + RV620_DACA_CONTROL2, 0x1, 0x1); /* enable r/g/b comparators, disable D/SDET ref */ RegMask(map, offset + RV620_DACA_COMPARATOR_ENABLE, 0x70000, 0x070101); - usleep(100); + //usleep(100); /* check for connection */ RegMask(map, offset + RV620_DACA_AUTODETECT_CONTROL, 0x01, 0xff); - usleep(32); + usleep(50); ret = RegRead(map, offset + RV620_DACA_AUTODETECT_STATUS); @@ -1174,7 +1224,7 @@ R6xxI2CSetupStatus(void *map, int channel) static Bool R6xxI2CStatus(void *map) { - int count = 800; + unsigned int count = 800; CARD32 val = 0; while (--count) { @@ -1352,7 +1402,7 @@ enum _rhdRS69I2CBits { static Bool RS69I2CStatus(void *map) { - int count = 2000; + unsigned int count = 2000; volatile CARD32 val; while (--count) { @@ -1899,7 +1949,7 @@ enum rv620I2CBits { static Bool RV620I2CStatus(void *map) { - int count = 50; + unsigned int count = 50; volatile CARD32 val; while (--count) { @@ -2375,6 +2425,129 @@ FreeVBIOS(unsigned char *rombase, int size) munmap(rombase,size); } + +#ifdef XSERVER_LIBPCIACCESS + +/* Copy BIOS from PCI ROM into memory buffer */ +unsigned char * +GetBIOS_from_PCI(struct RHDDevice *rhdDevice, struct pci_device *dev, void *io, int *size) +{ + unsigned char *rombase = NULL; + int errnum; + + CARD32 save_seprom_cntl1 = 0, + save_gpiopad_a, save_gpiopad_en, save_gpiopad_mask, + save_viph_cntl, + save_bus_cntl, + save_d1vga_control, save_d2vga_control, save_vga_render_control, + save_rom_cntl = 0, + save_gen_pwrmgt = 0, + save_low_vid_lower_gpio_cntl = 0, save_med_vid_lower_gpio_cntl = 0, + save_high_vid_lower_gpio_cntl = 0, save_ctxsw_vid_lower_gpio_cntl = 0, + save_lower_gpio_en = 0; + + /* We have to enable BIOS on an unposted card. But first we save the + state. Much of this code pinched from RHDReadPCIBios() in + rhd_driver.c */ + + if (rhdDevice->type < RHD_R600) + save_seprom_cntl1 = RegRead(io, SEPROM_CNTL1); + save_gpiopad_en = RegRead(io, GPIOPAD_EN); + save_gpiopad_a = RegRead(io, GPIOPAD_A); + save_gpiopad_mask = RegRead(io, GPIOPAD_MASK); + save_viph_cntl = RegRead(io, VIPH_CONTROL); + save_bus_cntl = RegRead(io, BUS_CNTL); + save_d1vga_control = RegRead(io, D1VGA_CONTROL); + save_d2vga_control = RegRead(io, D2VGA_CONTROL); + save_vga_render_control = RegRead(io, VGA_RENDER_CONTROL); + if (rhdDevice->type >= RHD_R600) { + save_rom_cntl = RegRead(io, ROM_CNTL); + save_gen_pwrmgt = RegRead(io, GENERAL_PWRMGT); + save_low_vid_lower_gpio_cntl = RegRead(io, LOW_VID_LOWER_GPIO_CNTL); + save_med_vid_lower_gpio_cntl = RegRead(io, MEDIUM_VID_LOWER_GPIO_CNTL); + save_high_vid_lower_gpio_cntl = RegRead(io, HIGH_VID_LOWER_GPIO_CNTL); + save_ctxsw_vid_lower_gpio_cntl = RegRead(io, CTXSW_VID_LOWER_GPIO_CNTL); + save_lower_gpio_en = RegRead(io, LOWER_GPIO_ENABLE); + } + + /* Set SPI ROM prescale value to change the SCK period */ + if (rhdDevice->type < RHD_R600) + RegMask(io, SEPROM_CNTL1, 0x0C << 24, SCK_PRESCALE); + /* Let chip control GPIO pads - this is the default state after power up */ + RegWrite(io, GPIOPAD_EN, 0); + RegWrite(io, GPIOPAD_A, 0); + /* Put GPIO pads in read mode */ + RegWrite(io, GPIOPAD_MASK, 0); + /* Disable VIP Host port */ + RegMask(io, VIPH_CONTROL, 0, VIPH_EN); + /* Enable BIOS ROM */ + RegMask(io, BUS_CNTL, 0, BIOS_ROM_DIS); + /* Disable VGA and select extended timings */ + RegMask(io, D1VGA_CONTROL, 0, + D1VGA_MODE_ENABLE | D1VGA_TIMING_SELECT); + RegMask(io, D2VGA_CONTROL, 0, + D2VGA_MODE_ENABLE | D2VGA_TIMING_SELECT); + RegMask(io, VGA_RENDER_CONTROL, 0, VGA_VSTATUS_CNTL); + if (rhdDevice->type >= RHD_R600) { + RegMask(io, ROM_CNTL, SCK_OVERWRITE + | 1 << SCK_PRESCALE_CRYSTAL_CLK_SHIFT, + SCK_OVERWRITE + | 1 << SCK_PRESCALE_CRYSTAL_CLK_SHIFT); + RegMask(io, GENERAL_PWRMGT, 0, OPEN_DRAIN_PADS); + RegMask(io, LOW_VID_LOWER_GPIO_CNTL, 0, 0x400); + RegMask(io, MEDIUM_VID_LOWER_GPIO_CNTL, 0, 0x400); + RegMask(io, HIGH_VID_LOWER_GPIO_CNTL, 0, 0x400); + RegMask(io, CTXSW_VID_LOWER_GPIO_CNTL, 0, 0x400); + RegMask(io, LOWER_GPIO_ENABLE, 0x400, 0x400); + } + + /* Read the ROM */ + + *size = (dev->rom_size > 0) ? dev->rom_size : 0x20000; + + rombase = malloc((size_t)*size); + + if ((errnum = pci_device_read_rom(dev, rombase))) { + fprintf(stderr,"Attempt to read ROM from PCI failed: %s.\n", + strerror(errnum)); + free(rombase); + rombase = NULL; + } + + /* Restore the state prior to being called */ + + if (rhdDevice->type < RHD_R600) + RegWrite(io, SEPROM_CNTL1, save_seprom_cntl1); + RegWrite(io, GPIOPAD_EN, save_gpiopad_en); + RegWrite(io, GPIOPAD_A, save_gpiopad_a); + RegWrite(io, GPIOPAD_MASK, save_gpiopad_mask); + RegWrite(io, VIPH_CONTROL, save_viph_cntl); + RegWrite(io, BUS_CNTL, save_bus_cntl); + RegWrite(io, D1VGA_CONTROL, save_d1vga_control); + RegWrite(io, D2VGA_CONTROL, save_d2vga_control); + RegWrite(io, VGA_RENDER_CONTROL, save_vga_render_control); + if (rhdDevice->type >= RHD_R600) { + RegWrite(io, ROM_CNTL, save_rom_cntl); + RegWrite(io, GENERAL_PWRMGT, save_gen_pwrmgt); + RegWrite(io, LOW_VID_LOWER_GPIO_CNTL, save_low_vid_lower_gpio_cntl); + RegWrite(io, MEDIUM_VID_LOWER_GPIO_CNTL, save_med_vid_lower_gpio_cntl); + RegWrite(io, HIGH_VID_LOWER_GPIO_CNTL, save_high_vid_lower_gpio_cntl); + RegWrite(io, CTXSW_VID_LOWER_GPIO_CNTL, save_ctxsw_vid_lower_gpio_cntl); + RegWrite(io, LOWER_GPIO_ENABLE, save_lower_gpio_en); + } + + return rombase; +} + + + +void FreeBIOS_from_PCI(unsigned char *rombase) +{ + if (rombase) free(rombase); +} +#endif + + /* * */ @@ -2478,8 +2651,14 @@ print_help(const char* progname, const char* message, const char* msgarg) fprintf(stderr, "%s %s\n", message, msgarg); fprintf(stderr, "Usage: %s [options] PCI-tag\n" " Options: -d: dumpBios\n" +#ifdef XSERVER_LIBPCIACCESS +# if HAVE_PCI_DEVICE_ENABLE + " -e: enable pci card (not normally needed)\n" +# endif + " -r: only attempt BIOS read via PCI ROM\n" +#endif " -s: scanDDCBus\n" - " -x num: dump num bytes from available i2c channels\n" + " -x num: dump num bytes from available i2c channels\n" " PCI-tag: bus:dev.func\n\n", progname); } @@ -2615,28 +2794,52 @@ InterpretATOMBIOS(unsigned char *base) int main(int argc, char *argv[]) { +#ifdef XSERVER_LIBPCIACCESS + struct pci_device *device = NULL; +# if HAVE_PCI_DEVICE_ENABLE + int enable_device; +# endif +#else struct pci_dev *device = NULL; struct pci_access *pciAccess; - struct RHDDevice *rhdDevice = NULL; int devMem; + int saved_errno; +#endif + struct RHDDevice *rhdDevice = NULL; void *io; int bus, dev, func; int ret; - int saved_errno; Bool deviceSet = FALSE; Bool dumpBios = FALSE, scanDDCBus = FALSE; unsigned long DumpI2CData = 0; int i; unsigned char *rombase; int size; + int using_vbios; printf("%s: v%s, %s\n", "rhd_conntest", PACKAGE_VERSION, GIT_MESSAGE); +#ifdef XSERVER_LIBPCIACCESS + /* Initialise pciaccess */ + if ((i = pci_system_init())) { + fprintf(stderr, "ERROR: pciaccess failed to initialise PCI bus" + " (error %d)\n", i); + return 1; + } + /* Default actions */ +# if HAVE_PCI_DEVICE_ENABLE + enable_device = FALSE; +# endif + using_vbios = TRUE; +#else /* init libpci */ pciAccess = pci_alloc(); pci_init(pciAccess); pci_scan_bus(pciAccess); + /* Default action */ + using_vbios = TRUE; +#endif if (argc < 2) { print_help(argv[0], "Missing argument: please provide a PCI tag\n", @@ -2645,6 +2848,16 @@ main(int argc, char *argv[]) } for (i = 1; i < argc; i++) { +#ifdef XSERVER_LIBPCIACCESS +# if HAVE_PCI_DEVICE_ENABLE + if (!strncmp("-e", argv[i], 3)) { + enable_device = TRUE; + }else +# endif + if (!strncmp("-r", argv[i], 3)) { + using_vbios = FALSE; + }else +#endif if (!strncmp("-d",argv[i],3)) { dumpBios = TRUE; } else if (!strncmp("-s",argv[i],3)) { @@ -2681,14 +2894,35 @@ main(int argc, char *argv[]) } } + if (!using_vbios & !deviceSet) { + /* Not technically an error, but only a right plonker would specify + this combination of command line options. */ + printf("What?!! You want me to do nothing!\n" + "Specify a PCI tag and/or don't specify '-r' for some action.\n"); + return 0; + } + if (deviceSet) { - /* find our toy */ +#ifdef XSERVER_LIBPCIACCESS + /* Find the toy using pciaccess */ + if ((device = pci_device_find_by_slot(0, bus, dev, func)) == NULL) { + fprintf(stderr, "ERROR: Unable to find PCI device at %02X:%02X.%02X.\n", + bus, dev, func); + return 1; + } +# if HAVE_PCI_DEVICE_ENABLE + if (enable_device) + pci_device_enable(device); +# endif +#else + /* find our toy using pci */ device = DeviceLocate(pciAccess->devices, bus, dev, func); if (!device) { fprintf(stderr, "Unable to find PCI device at %02X:%02X.%02X.\n", bus, dev, func); return 1; } +#endif rhdDevice = DeviceMatch(device); if (!rhdDevice) { @@ -2697,43 +2931,82 @@ main(int argc, char *argv[]) device->vendor_id, device->device_id, bus, dev, func); return 1; } - } - rombase = GetVBIOS(&size); - if (!rombase) { - fprintf(stderr, "Cannot get VBIOS. Are we root?\n"); - } else - if (!InterpretATOMBIOS(rombase)) { - fprintf(stderr, "Cannot analyze AtomBIOS\n"); - return 1; +#ifdef XSERVER_LIBPCIACCESS + printf("Found card: %s - %s\n", + pci_device_get_vendor_name(device), + pci_device_get_device_name(device)); +#endif } - if (dumpBios && rombase) { - char name[1024] = "posted.vga.rom"; - - if (deviceSet) { - snprintf(name, 1023, "%04X.%04X.%04X.vga.rom", - device->device_id, - pci_read_word(device, PCI_SUBSYSTEM_VENDOR_ID), - pci_read_word(device, PCI_SUBSYSTEM_ID)); + if (using_vbios) { + /* Attempt to read BIOS from legacy VBIOS. */ + rombase = GetVBIOS(&size); + if (!rombase) { + printf("Cannot get VBIOS. Are we root?\n"); + }else{ + if (!InterpretATOMBIOS(rombase)) { + printf("Cannot analyze AtomBIOS from VBIOS\n"); + rombase = NULL; + } } - WriteToFile(name, rombase, size); + if (dumpBios && rombase) { + char name[1024] = "posted.vga.rom"; + + if (deviceSet) { +#ifdef XSERVER_LIBPCIACCESS + snprintf(name, 1023, "%04X.%04X.%04X.vga.rom", + device->device_id, device->subvendor_id, device->subdevice_id); +#else + snprintf(name, 1023, "%04X.%04X.%04X.vga.rom", + device->device_id, + pci_read_word(device, PCI_SUBSYSTEM_VENDOR_ID), + pci_read_word(device, PCI_SUBSYSTEM_ID)); +#endif + } + WriteToFile(name, rombase, size); + } + }else{ + /* We ain't goin' to read VBIOS - flag that */ + rombase = NULL; } - if (!deviceSet) + /* We reuse the flag using_vbios now to indicate whether we successfully + read the VBIOS (rombase is not suitable for the purpose) */ + using_vbios = rombase ? 1 : 0; + + if (!deviceSet) { + if (! using_vbios) { + fprintf(stderr, "ERROR: Failed to read VBIOS.\n"); + return 1; + } return 0; + } if (rhdDevice->bar > 5) { - fprintf(stderr, "Program error: No acceptable BAR defined for this device.\n"); + fprintf(stderr, "ERROR: No acceptable PCI BAR defined for this device.\n"); return 1; } - printf("Checking connectors on 0x%04X, 0x%04X, 0x%04X (@%02X:%02X:%02X):\n", - device->device_id, pci_read_word(device, PCI_SUBSYSTEM_VENDOR_ID), - pci_read_word(device, PCI_SUBSYSTEM_ID), - device->bus, device->dev, device->func); + /* Map into CPU memory space the required PCI memory */ +#ifdef XSERVER_LIBPCIACCESS + pci_device_probe(device); + + if (device->regions[rhdDevice->bar].base_addr == 0) { + fprintf(stderr, "ERROR: Failed to find required resource on PCI card.\n"); + return 1; + } + + if ((i = pci_device_map_range(device,device->regions[rhdDevice->bar].base_addr, + device->regions[rhdDevice->bar].size, + PCI_DEV_MAP_FLAG_WRITABLE, &io))) { + fprintf(stderr, "ERROR: Couldn't map IO memory: %s.\n", strerror(i)); + return i; + } + +#else /* make sure we can actually read DEV_MEM before we do anything else */ devMem = open(DEV_MEM, O_RDWR); if (devMem < 0) { @@ -2744,11 +3017,50 @@ main(int argc, char *argv[]) io = MapBar(device, rhdDevice->bar, devMem); saved_errno = errno; close (devMem); - if (!io) { + if (io == (void *) -1) { fprintf(stderr, "Unable to map IO memory: %s.\n", strerror(saved_errno)); return 1; } +#endif + +#ifdef XSERVER_LIBPCIACCESS + /* Attempt to get unposted BIOS if failed before */ + + if (! using_vbios) { + printf("Trying to get BIOS from PCI ROM...\n"); + + if ((rombase = GetBIOS_from_PCI(rhdDevice, device, io, &size)) == NULL) { + fprintf(stderr,"ERROR: Fat lot of use that was -- can't read BIOS image\n"); + return 1; + } + + if (!InterpretATOMBIOS(rombase)) { + fprintf(stderr, "ERROR: Cannot analyze AtomBIOS from PCI ROM\n"); + return 1; + } + + if (dumpBios && rombase) { + char name[1024]; + + snprintf(name, 1023, "%04X.%04X.%04X.vga.rom", + device->device_id, device->subvendor_id, device->subdevice_id); + WriteToFile(name, rombase, size); + } + } +#endif + + +#ifdef XSERVER_LIBPCIACCESS + printf("Checking connectors on 0x%04X, 0x%04X, 0x%04X (@%02X:%02X:%02X):\n", + device->device_id, device->subvendor_id, device->subdevice_id, + device->bus, device->dev, device->func); +#else + printf("Checking connectors on 0x%04X, 0x%04X, 0x%04X (@%02X:%02X:%02X):\n", + device->device_id, pci_read_word(device, PCI_SUBSYSTEM_VENDOR_ID), + pci_read_word(device, PCI_SUBSYSTEM_ID), + device->bus, device->dev, device->func); +#endif ChipType = rhdDevice->type; @@ -2760,7 +3072,18 @@ main(int argc, char *argv[]) if (scanDDCBus || DumpI2CData) DDCScanBus(io, DumpI2CData); +#ifdef XSERVER_LIBPCIACCESS + if (using_vbios) { + FreeVBIOS(rombase, size); + }else{ + FreeBIOS_from_PCI(rombase); + } + + pci_device_unmap_range(device, io, device->regions[rhdDevice->bar].size); + pci_system_cleanup(); +#else FreeVBIOS(rombase, size); +#endif return 0; } diff --git a/driver/xf86-video-radeonhd/utils/conntest/rhd_dump.c b/driver/xf86-video-radeonhd/utils/conntest/rhd_dump.c index 7a3902660..c85ed2e7d 100644 --- a/driver/xf86-video-radeonhd/utils/conntest/rhd_dump.c +++ b/driver/xf86-video-radeonhd/utils/conntest/rhd_dump.c @@ -30,16 +30,23 @@ #include <errno.h> #include <string.h> #include <sys/mman.h> + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#ifdef XSERVER_LIBPCIACCESS +#include <pciaccess.h> +#else #include <pci/pci.h> +#endif + #include <unistd.h> #include <stdlib.h> #define DEFAULT_START 0x7200 #define DEFAULT_END 0x7300 -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif #include "git_version.h" #ifndef ULONG @@ -272,6 +279,8 @@ struct RHDDevice { /* * */ +#ifndef XSERVER_LIBPCIACCESS +/* Only for libpci use */ static struct pci_dev * DeviceLocate(struct pci_dev *devices, int bus, int dev, int func) { @@ -283,12 +292,17 @@ DeviceLocate(struct pci_dev *devices, int bus, int dev, int func) return device; return NULL; } +#endif /* * */ static struct RHDDevice * +#ifdef XSERVER_LIBPCIACCESS +DeviceMatch(struct pci_device *device) +#else DeviceMatch(struct pci_dev *device) +#endif { int i; @@ -303,6 +317,8 @@ DeviceMatch(struct pci_dev *device) /* * */ +#ifndef XSERVER_LIBPCIACCESS +/* Only used by pci */ static void * MapBar(struct pci_dev *device, int ioBar, int devMem) { @@ -318,6 +334,7 @@ MapBar(struct pci_dev *device, int ioBar, int devMem) return map; } +#endif /* * @@ -363,7 +380,14 @@ print_help(const char* progname, const char* message, const char* msgarg) { if (message != NULL) fprintf(stderr, "%s %s\n", message, msgarg); - fprintf(stderr, "Usage: %s [-r start,end | -w addr val | -l {0|1}] PCI-tag\n" + fprintf(stderr, "Usage: %s " +#if defined(XSERVER_LIBPCIACCESS) && defined (HAVE_PCI_DEVICE_ENABLE) + "[-e] " +#endif + "[-r start,end | -w addr val | -l {0|1}] PCI-tag\n" +#if defined(XSERVER_LIBPCIACCESS) && defined (HAVE_PCI_DEVICE_ENABLE) + " -e: enable PCI card (not normally needed)\n" +#endif " PCI-tag: bus:dev.func\n\n", progname); } @@ -375,14 +399,21 @@ print_help(const char* progname, const char* message, const char* msgarg) int main(int argc, char *argv[]) { +#ifdef XSERVER_LIBPCIACCESS + struct pci_device *device = NULL; +# if HAVE_PCI_DEVICE_ENABLE + int enable_device = FALSE; +# endif +#else struct pci_dev *device = NULL; struct pci_access *pciAccess; - struct RHDDevice *rhdDevice = NULL; int devMem; + int saved_errno; +#endif + struct RHDDevice *rhdDevice = NULL; void *io; int bus, dev, func; int ret; - int saved_errno; Bool deviceSet = FALSE; CARD32 start = DEFAULT_START, end = DEFAULT_END; CARD32 addr, val; @@ -400,10 +431,20 @@ main(int argc, char *argv[]) printf("%s: v%s, %s\n", "rhd_dump", PACKAGE_VERSION, GIT_MESSAGE); + +#ifdef XSERVER_LIBPCIACCESS + /* Initialise pciaccess */ + if ((i = pci_system_init())) { + fprintf(stderr, "ERROR: pciaccess failed to initialise PCI bus" + " (error %d)\n", i); + return 1; + } +#else /* init libpci */ pciAccess = pci_alloc(); pci_init(pciAccess); pci_scan_bus(pciAccess); +#endif if (argc < 2) { print_help(argv[0], "Missing argument: please provide a PCI tag\n", @@ -412,6 +453,13 @@ main(int argc, char *argv[]) } for (i = 1; i < argc; i++) { +#ifdef XSERVER_LIBPCIACCESS +# if HAVE_PCI_DEVICE_ENABLE + if (!strncmp("-e", argv[i], 3)) { + enable_device = TRUE; + }else +# endif +#endif if (!strncmp("-r",argv[i],3)) { action = READ; @@ -461,7 +509,7 @@ main(int argc, char *argv[]) i--; ret = 0; } - + if (addr > 1) ret = 0; if (ret != 1) { print_help(argv[0], "Invalid LUT id:", argv[i]); @@ -490,13 +538,26 @@ main(int argc, char *argv[]) } if (deviceSet) { - /* find our toy */ +#ifdef XSERVER_LIBPCIACCESS + /* Find the toy using pciaccess */ + if ((device = pci_device_find_by_slot(0, bus, dev, func)) == NULL) { + fprintf(stderr, "ERROR: Unable to find PCI device at %02X:%02X.%02X.\n", + bus, dev, func); + return 1; + } +# if HAVE_PCI_DEVICE_ENABLE + if (enable_device) + pci_device_enable(device); +# endif +#else + /* find our toy using pci */ device = DeviceLocate(pciAccess->devices, bus, dev, func); if (!device) { fprintf(stderr, "Unable to find PCI device at %02X:%02X.%02X.\n", bus, dev, func); return 1; } +#endif rhdDevice = DeviceMatch(device); if (!rhdDevice) { @@ -511,6 +572,24 @@ main(int argc, char *argv[]) return 1; } + /* Map into CPU memory space the required PCI memory */ + +#ifdef XSERVER_LIBPCIACCESS + pci_device_probe(device); + + if (device->regions[rhdDevice->bar].base_addr == 0) { + fprintf(stderr, "ERROR: Failed to find required resource on PCI card.\n"); + return 1; + } + + if ((i = pci_device_map_range(device,device->regions[rhdDevice->bar].base_addr, + device->regions[rhdDevice->bar].size, + PCI_DEV_MAP_FLAG_WRITABLE, &io))) { + fprintf(stderr, "ERROR: Couldn't map IO memory: %s.\n", strerror(i)); + return i; + } + +#else /* make sure we can actually read DEV_MEM before we do anything else */ devMem = open(DEV_MEM, O_RDWR); @@ -522,11 +601,12 @@ main(int argc, char *argv[]) io = MapBar(device, rhdDevice->bar, devMem); saved_errno = errno; close (devMem); - if (!io) { + if (io == (void *) -1) { fprintf(stderr, "Unable to map IO memory: %s.\n", strerror(saved_errno)); return 1; } +#endif ChipType = rhdDevice->type; if (action == READ) { @@ -557,5 +637,10 @@ main(int argc, char *argv[]) } } +#ifdef XSERVER_LIBPCIACCESS + pci_device_unmap_range(device, io, device->regions[rhdDevice->bar].size); + pci_system_cleanup(); +#endif + return 0; } |